【发布时间】:2017-01-31 07:37:57
【问题描述】:
我的 LibGDX 游戏中有这个 if 语句。问题是我的球员向左看,他向左移动,这是正确的,但如果他向右看,他还是会向左移动。我该如何解决这个问题?
public boolean keyUp(int keycode) {
if (keycode == Input.Keys.A && player.b2body.getLinearVelocity().x >=-0.5) {
SpinDashleft();
return true;
}
else if (keycode == Input.Keys.A && player.b2body.getLinearVelocity().x <=0.5) {
SpinDashright();
return true;
}
return false;
}
public void SpinDashleft() {
player.b2body.applyLinearImpulse(new Vector2(-7.1f, 0), player.b2body.getWorldCenter(),true);
}
public void SpinDashright() {
player.b2body.applyLinearImpulse(new Vector2(7.00f, 0), player.b2body.getWorldCenter(),true);
}
【问题讨论】:
-
问题解决了!它需要像这样 public void SpinDash() { if ((player.b2body.getLinearVelocity().x=-0.5 ) && player.region.isFlipX()){ player.b2body.applyLinearImpulse(new Vector2(-0.9f, 0), player.b2body.getWorldCenter (),真的); } }
-
您正在使用纹理区域(资产)来存储玩家状态?我建议你避免这样做——这是意大利面条代码。
-
我现在不太擅长它并使用教程,所以这就是我的代码这样的原因。
-
没关系,只是一个建议。先学习基础知识,然后再阅读良好做法。
标签: java android-studio if-statement libgdx