小编ron*_*ipt的帖子

libgdx (Ashley Framework ECS) - 将系统与另一个系统对话的正确方法是什么?

SystemSystem

目前我正在开发CharacterSystem, GunSystem,BulletSystem使用 ashley 框架。我的问题是我不知道这是否是与system其他人交谈的正确方式system

我使用的CharacterSystem方法onProcessEntitycharacter attack触发时使用,getEngine().getSystem(GunSystem.class).trigger(true)并且在里面GunSystem我有一个方法是Bullet. 当BulletSystem手柄在相机外时释放身体。

子问题Bullet class使用 ECS 框架创建的正确方法是什么?

java box2d libgdx

2
推荐指数
1
解决办法
1799
查看次数

libgdx ashley - 如何以正确的方式控制玩家(ECS框架)?

我尝试过 在选项1中,我创建了PlayerControlled类来控制一个玩家(它正常工作).但我不希望我控制这样的球员的方式,我怀疑这不是正确的方式.

// Option 1
class PlayerComponent implements Component {
     // player data here
}

class PlayerSystem extends IteratingSystem {
     // player logic here
}

class PlayerControlledComponent implements Component{
     // Player entity
}
class PlayerControlledSystem extends IteratingSystem {
     // Keyboard Input
     // Player entity
}

// Option 2
engine.getSystem(PlayerSystem.class).attack()

// Option 3
class PlayerController {

     PlayerConroller(Player player) {

     }

} 
Run Code Online (Sandbox Code Playgroud)

选项1和2都经过测试和工作,选项3只是一个想法.

  • 哪个选项是控制播放器的正确方法?
  • 是否有其他选项可以使用ECS框架控制播放器?

java 2d amazon-ecs libgdx

0
推荐指数
1
解决办法
1674
查看次数

动态更新像素图的充分方法是什么?

目标

  • 在更新条宽的同时使健康条的执行速度更快。
  • 在缩放时保持其质量(像素与米的比率)。

目前我正在使用 libgdxPixmap创建一个健康栏,但是当我将drawLine参数更改为新值时,突然仍然没有任何更改。在下面的代码中是我当前的工作代码,我不确定这是否是Pixmap动态绘制的足够方法。

// This code is working when written all in update method

Pixmap frame = new Pixmap(32, 3, Pixmap.Format.RGBA8888);
frame.drawRectangle(...);
frame.drawLine(...);

Texture texture = new Texture(frame);
frame.dispose();

batch.begin();
batch.draw(texture ...);
batch.end();
Run Code Online (Sandbox Code Playgroud)

样本健康条

在此处输入图片说明

java pixmap libgdx

0
推荐指数
1
解决办法
280
查看次数

标签 统计

java ×3

libgdx ×3

2d ×1

amazon-ecs ×1

box2d ×1

pixmap ×1