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" 的时候就可以显示游戏币数量了。
===========================================================================
关注公众号,阅读更多文章。