applyForce 只要显示被按下
applyForce as long as display is pressed
在我的项目中,我有我的主角body。只要按下屏幕,我希望它在 y-axis 上向下移动。我用
试过了
public boolean touchUp(int screenX, int screenY, int pointer, int button) {
jetski.applyForce(new Vector2(0,-1000), jetski.getWorldCenter(), true);
return true;
}
但这只做了一次。
我假设您的项目中有一个主循环,因为看起来您正在开发游戏。通常使用 flag(-s) 来表示用户输入。假设我们有一个标志 isTouched
。因此,当用户第一次触摸显示屏时,isTouched = true
。然后当用户不再触摸显示器时,isTouched = false
。最后,在你的主循环中 if (isTouched) applyForce();
。 Android API 或 libgdx(从标签判断)应该能够为 onTouch
和 onTouchRelease
事件提供侦听器。请注意,它们可能被称为不同的东西。
试试这个:
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) 判断,我猜你没有缩放世界,所以物理学可能无法按预期工作。
在我的项目中,我有我的主角body。只要按下屏幕,我希望它在 y-axis 上向下移动。我用
试过了public boolean touchUp(int screenX, int screenY, int pointer, int button) {
jetski.applyForce(new Vector2(0,-1000), jetski.getWorldCenter(), true);
return true;
}
但这只做了一次。
我假设您的项目中有一个主循环,因为看起来您正在开发游戏。通常使用 flag(-s) 来表示用户输入。假设我们有一个标志 isTouched
。因此,当用户第一次触摸显示屏时,isTouched = true
。然后当用户不再触摸显示器时,isTouched = false
。最后,在你的主循环中 if (isTouched) applyForce();
。 Android API 或 libgdx(从标签判断)应该能够为 onTouch
和 onTouchRelease
事件提供侦听器。请注意,它们可能被称为不同的东西。
试试这个:
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) 判断,我猜你没有缩放世界,所以物理学可能无法按预期工作。