System 到 System
目前我正在开发CharacterSystem, GunSystem,BulletSystem使用 ashley 框架。我的问题是我不知道这是否是与system其他人交谈的正确方式system。
我使用的CharacterSystem方法onProcessEntity在character attack触发时使用,getEngine().getSystem(GunSystem.class).trigger(true)并且在里面GunSystem我有一个方法是Bullet. 当BulletSystem手柄在相机外时释放身体。
子问题Bullet class使用 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只是一个想法.
题
目标
目前我正在使用 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)
样本健康条