libgdx的基础讲解
今天讲解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的精灵和相机