FXGL Java游戏引擎教学实战06:手把手教你定制地图加载器(为妹子打造专属家园)- 实操篇
最编程
2024-07-23 21:56:14
...
整体的代码实现很简单,首先我们现在最早的工厂中增加wall对象
GameEntityFactory.java
@Spawns("wall")
public Entity newWall(SpawnData data) {
Entity build = FXGL
.entityBuilder(data)
.bbox(new HitBox(BoundingShape.box(data.<Integer>get("width"), data.<Integer>get("height"))) )
.collidable()
.with(new PhysicsComponent())
.build();
return build;
}
然后再app的init阶段注入该工厂
@Override
protected void initGame() {
FXGL.getGameWorld().addEntityFactory(new GameEntityFactory());
//加载地图的方法
setLevel();
Entity entity = CustomerEntityFactory.createEntity(EntityType.PLANE);
//绑定视角 固定视角
FXGL.getGameWorld().addEntity(entity);
Viewport viewport = FXGL.getGameScene().getViewport();
viewport.setBounds(-10000,-10000,250 *70,10000);
viewport.bindToEntity(entity, FXGL.getAppWidth() / 2, FXGL.getAppHeight() / 2);
}
然后就是加载地图方法
private void setLevel() {
//首先移除全部的实体
FXGL.getGameWorld().getEntitiesCopy().forEach(t -> t.removeFromWorld());
//加载地图
FXGL.setLevelFromMap("tmx/obj_test.tmx");
}
让我们运行一下,真不错。
当然,这还是一个很简单的游戏框架,但是已经能够制作很简单rpggame了。
这里是本期的git代码
回主目录
上一篇: FXGL游戏制作中的动画设计与实现
下一篇: 如何在FXGL游戏中处理键盘输入事件