我是新來的Java和Android。我最近一直在嘗試使用LibGDX爲Android創建遊戲。這個遊戲的一個方面涉及一個人從屏幕的一側移動到另一側(水平)。這是我的代碼:`即時速度變化LibGDX
public class Man {
private static final int SP = 10;
private static final int NSP = -10;
private Vector3 position;
private Vector3 velocity;
private Texture man;
public Man(int x, int y){
position = new Vector3(x, y, 0);
velocity = new Vector3(0, 0, 0);
man = new Texture ("person.png");
}
public void update(float dt){
if (position.x > 2560) {
velocity.add(NSP, 0, 0);
}
else {
velocity.add(SP, 0, 0);
}
velocity.add(SP, 0, 0);
velocity.scl(dt);
position.add(velocity.x, 0, 0);
velocity.scl(1/dt);
}
public Texture getTexture() {
return man;
}
public Vector3 getPosition() {
return position;
}
public void dispose(){
man.dispose();
}
}
我仍然不習慣弄清楚這樣的問題。當我運行這段代碼時,這個人從屏幕的一側(左側)走過屏幕的另一側(右側,離開視野)。過了一兩秒鐘後,這個人回到了視野(從右側)並轉到屏幕的另一側(到左側,留在視野中)。這個過程然後重複。而且,當這個人開始移動時,他需要一秒才能全速前進。我嘗試刪除if else語句,並創建2個不同速度的人(一個帶有正數,另一個帶負數),以創建這個人立即改變速度的幻覺(通過移除一個人併產生另一個人),但我沒有能夠做到這一點。
我想知道我該如何讓人立即達到全速,在屏幕另一側立即改變速度,並在循環中繼續此過程。任何幫助將非常感激。 謝謝。
謝謝!!!!!! –