前言

  开发一款游戏,我相信很多人在学习开发之前都有这么一个想法,但是学完java之后都滚去搞后台、大数据、、、。有时候也回望初心,也想做点东西搞搞却无从下手,毕竟在游戏开发领域,java并不出众,资料也相对较少,所以在此呢也分享一下我采坑的经验,抛砖引玉。最后说一下,以目前的环境来说,java并不适合做游戏,如果想要从事游戏行业的最好还是去学C/C++,亦或者C#,lua..

开发环境

编辑器:IntelliJ IDEA 2021.3.2
jdk:java17
Maven:3.8.1
游戏引擎:FXGL 17
GUI:javaFX

启程 Hello World

Maven

<dependency>
    <groupId>com.github.almasb</groupId>
    <artifactId>fxgl</artifactId>
    <version>17</version>
</dependency>

启动类 HelloWorldApp

首先我们需要创建一个启动类 HelloWorldApp 继承 GameApplication 并实现 initSettings 方法来引入FXGL引擎

public class HelloWorldApp extends GameApplication{
	@Override
    protected void initSettings(GameSettings settings) {

    }
}

创建一个600 x 600,标题为"Hello world"的窗体

	@Override
    protected void initSettings(GameSettings settings) {
    	settings.setTitle("Hello world");
        settings.setWidth(600);
        settings.setHeight(600);
    }

main

此时程序还不能运行,我们需要创建一个main方法来启动程序,调用FX的launch方法即可启动程序

	public static void main(String[] args) {
        launch(args);
    }

运行效果

FXGL

完整代码

import com.almasb.fxgl.app.GameApplication;
import com.almasb.fxgl.app.GameSettings;

/**
 * @author lhDream
 */
public class HelloWorldApp extends GameApplication {

    @Override
    protected void initSettings(GameSettings settings) {
        settings.setTitle("Hello world");
        settings.setWidth(600);
        settings.setHeight(600);
    }

    /**
     * main 程序的开始
     * @param args 参数
     */
    public static void main(String[] args) {
        launch(args);
    }
}

完整项目

https://github.com/lhDream/lhDreamGameDemo/tree/master/HelloWorld

本系列其他文章

java游戏开发入门(一) - HelloWorld
java游戏开发入门(二) - 菜单
java游戏开发入门(三) - 实体
java游戏开发入门(四) - 输入or控制
java游戏开发入门(五) - 碰撞机制
java游戏开发入门(六) - 变量 & UI
java游戏开发入门(七) - 计时器
java游戏开发入门(八) -图像
java游戏开发入门(九) -音效
java游戏开发入门(十) -粒子特效

淡淡的心,回味的情