我有GunSystem class
这个系统处理我的玩家武器的处理。
class GunSystem extends IteratingSystem implements Gun{
super(Family.all(GunComponent.class, ...).get());
@Override
protected void processEntity(Entity entity, float deltaTime) {
updateGun();
onReload();
onFire();
}
private void updateGun() {
// Textures, Position, Size ..
}
}
默认情况下,当Gun
附加到Player
时,枪会自动重新加载。所以玩家可以立即开枪。
Gun gun = new Gun();
Player player = new Player();
player.setWeapon(gun)
// class:Player, method:onFire()
Gun gun = player.getWeapon();
gun.fire() // or gun.trigger();
// class:GunSystem, method:onReload();
gun.reload(); // reload the gun for half a second, before the gun can be fired again.
关注
因为我使用libGDX - Ashley ECS(实体组件系统)框架,所以我想完全使用它的类。目前我主要担心的是GunSystem
,它扩展了摘要IteratingSystem
。在重新加载扳机之前,你们怎么建议如何锁定枪,然后再扳回扳机。
我尝试了什么
// onReload
if(gun.reload) {
if (timer < 0.5f) {
timer += deltaTime;
} else {
gun.reload(spatialX, spatialY);
gun.reload = false;
}
}
// onFire
if(gun.triggered){
gun.fire();
gun.triggered = false;
gun.reload = true;
}
问题
在第二次玩家触摸时,即使onFire
仍然忙,也会调用onReload
方法。
目标