在我的项目中,我有自己的主角。只要屏幕被按下,我希望它在y轴上向下移动。我用
试了一下public boolean touchUp(int screenX, int screenY, int pointer, int button) {
jetski.applyForce(new Vector2(0,-1000), jetski.getWorldCenter(), true);
return true;
}
但这只做了一次。
答案 0 :(得分:1)
我认为你的项目中有一个主循环,因为它看起来像你正在开发一个游戏。通常使用flag(-s)来表示用户输入。假设我们有一个标志isTouched
。因此,当用户首次触摸显示屏时,isTouched = true
。然后,当用户不再触摸显示屏时,isTouched = false
。最后,在主循环if (isTouched) applyForce();
中。 Android API或libgdx(从标签判断)应该能够为onTouch
和onTouchRelease
事件提供侦听器。请注意,他们可能被称为不同的东西。
答案 1 :(得分:1)
试试这个:
boolean isTouched = false;
public boolean touchDown(int screenX, int screenY, int pointer, int button) {
isTouched = true;
return true;
}
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
isTouched = false;
return true;
}
public void update(float delta) {
// update other stuff
if (isTouched) {
jetski.applyForce(new Vector2(0,-1000), jetski.getWorldCenter(), true);
}
// update other stuff
}
您可能希望将-1000更改为更低的值,因为它将每帧添加-1000力,并且可能会添加限制。另外,根据力(-1000)来判断我猜测你没有扩展世界,所以物理学可能无法按预期工作。