概述:

FXGL 是一个基于 Java 的开源游戏引擎,专为快速开发 2D 和 3D 游戏而设计。它提供了丰富的功能,包括物理引擎、音频处理、动画、用户界面和人工智能等,帮助开发者快速构建高性能的游戏。FXGL 兼容 JavaFX,允许开发者使用 JavaFX 的图形和 UI 功能来创建游戏界面,并支持多种平台的发布。

Github开源链接:https://github.com/AlmasB/FXGL

Maven:

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

基本示例:

public class MainApp extends GameApplication {
    //窗体初始化
    @Override
    protected void initSettings(GameSettings gameSettings) {
        gameSettings.setTitle("GamePlane");
        gameSettings.setWidth(400);
        gameSettings.setHeight(800);
        gameSettings.setAppIcon("planet.png");
        gameSettings.setVersion("0.1");
    }

    //实体
    private Entity hero;

    //重写游戏初始化时,构建实体
    @Override
    protected void initGame() {
        //如果构建实体的view需要一个图片,图片要在项目中创建指定目录:
        //assets 是所有资源的父目录;textures 是下属子目录专门用于存储图片的目录
        hero = FXGL.entityBuilder().at(230, 420)
                                   //.view("hero.png")
                                   .view(new Rectangle(60,60,Color.BLUE))
                                   .buildAndAttach();
    }

    // 初始化UI用户界面
     @Override
    protected void initUI() {
        
    }

    // 更新游戏逻辑
    @Override
    protected void onUpdate(double tpf) {
        
    }  
  
    public static void main(String[] args) {
        launch(args);
    }
}

FXGL引擎简化了开发一些基本操作,例如实体的创建,只要用Entity声明即可。

引擎构建了很多写好的方法,每个方法模块都单独负责不同的事情,例如创建窗体、游戏初始构建实体、UI的初始化与构建、游戏中一些全局变量的初始化、更新渲染等等,用到时重写即可

以上就是一个基于FXGL引擎最简单的小程序骨架

核心类

GameApplication

GameWorld

Entity

Component

GameScene

AssetLoader

Input

PhysicsWorld

FXGL

Service