libgdx的基础讲解

发布时间 2023-12-25 16:40:06作者: 过移

今天讲解libgdx的示例代码知识
SpriteBatch 用于绘制 2D 图像
Texture 资源的实体类
music 长音乐如背景音乐
sound 短音乐,如一个物体触发的短时间音乐
代码:

package com.mygdx.game;

import com.badlogic.gdx.ApplicationAdapter;
import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import com.badlogic.gdx.utils.ScreenUtils;

public class MyGdxGame extends ApplicationAdapter {
	SpriteBatch batch;
	Texture img;
	
	@Override
	public void create () {
		batch = new SpriteBatch();
		img = new Texture("badlogic.jpg");
	}

	@Override
	public void render () {
		ScreenUtils.clear(1, 0, 0, 1);
		batch.begin();
		batch.draw(img, 0, 0);
		batch.end();
	}
	
	@Override
	public void dispose () {
		batch.dispose();
		img.dispose();
	}
}

以上代码描述:dispose 方法是用来关闭资源的,render 是每次刷新的时候干的动作,这个类就是单纯的展示一个图片。
主类:

package com.mygdx.game;

import com.badlogic.gdx.backends.lwjgl3.Lwjgl3Application;
import com.badlogic.gdx.backends.lwjgl3.Lwjgl3ApplicationConfiguration;
import com.mygdx.game.MyGdxGame;

// Please note that on macOS your application needs to be started with the -XstartOnFirstThread JVM argument
public class DesktopLauncher {
	public static void main (String[] arg) {
		Lwjgl3ApplicationConfiguration config = new Lwjgl3ApplicationConfiguration();
		config.setForegroundFPS(60);
		config.setTitle("My GDX Game");
		new Lwjgl3Application(new MyGdxGame(), config);
	}
}

以上代码描述,config.setForegroundFPS(60);设置每秒刷新的帧数,config.setTitle("My GDX Game");设置标题,这里并没有设置屏幕的长宽,因为它有默认的值


可以看到上面的assets为资源文件目录,而core为核心代码目录,学过gradle的应该都懂。相互的依赖都用api即可。
都说了,javaweb是java中最简单的入门阶段(也是市场最广的),但貌似也是最“无聊的”。
接下来我们换张图,就是简单的改一下img = new Texture("badlogic.jpg");
搞张图放到assets资源文件目录,然后改下路径即可。当然也要看一下图片的长宽,然后进行更改,不然的话图片展不开的,这里展示一下错误操作。

我们更据图片做一下长宽的更改:

	config.setWindowedMode(474,842);


然后就是Music。让我们打开游戏的时候发出音乐吧。
只有在前面声明一下Music music;
然后在create ()方法里面创建music对象music= Gdx.audio.newMusic(Gdx.files.internal("郭顶-凄美地.mp3"));
然后在每次刷新的render ()方法里面进行music.play();即可实现。

虽然你们感觉不到,但是我这里确实已经发出音乐了。
接下来谈论sound
也是一样的做法,在前面声明一下Sound sound;
然后在create ()方法里面创建sound对象Sound = Gdx.audio.newSound(Gdx.files.internal("drop.wav"));
然后在某个特殊的场景下发出这种声音,所以这个不应该放到render ()方法里面。
下一章开始讲解libgdx的精灵和相机