저는 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 명의 사람들을 만들어서 사람이 속도를 즉시 변경한다는 것을 알기 위해 노력했습니다 (한 사람을 제거하고 다른 사람을 산란 시킴). 이것을 할 수있다.
나는 사람을 즉시 최고 속도로 올릴 수 있었고, 화면의 반대편에서 즉시 속도를 변경하고 루프에서이 과정을 계속 진행할 수 있었으면합니다. 어떤 도움이라도 대단히 감사 할 것입니다. 감사합니다. .
감사합니다 !!!!!! –