FXGL游戏开发-游戏变量

FXGL 是一个 JavaFX 游戏开发的框架,使用 FXGL 无需安装和设置,开箱即用,支持多平台打包,UI 基于 JavaFX,非常容易上手。

除了 【FXGL游戏开发-游戏初始化】 提到的 initGame() 初始化游戏,以及 【FXGL游戏开发-键盘输入事件处理】中的 initInput() 初始化输入事件。

FXGL 的 GameApplication 还提供了 initUI() 和 initGameVars(..) 分别用于初始化 UI 和游戏中使用到的变量值。

下面的例子,按 "F1" 可以增加游戏币数量:

public class VarsGameApp extends GameApplication {

    @Override
    protected void initSettings(GameSettings settings) {
        settings.setTitle("Hi IT青年 Game");
        settings.setWidth(480);
        settings.setHeight(320);
        settings.setVersion("0.1");
    }

    @Override
    protected void initGameVars(Map<String, Object> vars) {
        vars.put("icon", 0);
    }

    @Override
    protected void initInput() {
        FXGL.onKeyDown(KeyCode.F1, () -> FXGL.inc("icon", 1));
    }

    @Override
    protected void initUI() {
        Text icon = FXGL.getUIFactoryService().newText("", Color.BLACK, 16.0);
        icon.setTranslateX(100);
        icon.setTranslateY(100);
        icon.textProperty().bind(FXGL.getWorldProperties().intProperty("icon").asString("游戏币: %d个"));
        FXGL.getGameScene().addUINode(icon);
    }

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

运行效果:

通过按 "F1" ,增加游戏币的数量。

例子中,在 initGameVars(..) 中设置了一个变量 "icon" :

protected void initGameVars(Map<String, Object> vars) {
   vars.put("icon", 0);
}

变量值可以是任意类型,这里使用的是整形,然后监听 "F1" 键,当键盘按下 "F1" 的时候,让变量 "icon" 执行 +1 操作。

界面上文本的显示是在 initUI 的时候加入到游戏场景中的,通过 getWorldProperties() 将数据绑定到 UI 上。

icon.textProperty().bind(FXGL.getWorldProperties().intProperty("icon").asString("游戏币: %d个"));

这样,当键盘按下 "F1" 的时候就可以显示游戏币数量了。

===========================================================================
HiIT青年
关注公众号,阅读更多文章。

posted @ 2022-10-23 22:12  HiIT青年  阅读(326)  评论(0编辑  收藏  举报