2014-04-19 2 views
0

안녕하세요, 내 프로그램에서 중력을 구현하는 가장 좋은 방법은 단순히 공을 튀기는 것입니다. 이 프로그램은 초당 50 번 (gametimer가 틱하는 속도)이라는 메서드를 사용하며이 메서드에서는 중력 메서드를 호출합니다. 중력 방법 나는 현재 내 코드와모든 게임 틱을 새로 고치는 Java Ball Bouncing 프로그램의 중력

public void Gravity(){ 
    this.currentPositionY = this.currentPositionY + 9; 
    if (this.currentPositionY >= 581){ 
     this.currentPositionY=581; 
    } 
} 

문제가 : 중력의 속도가 일정하지에서는 시간에 따라 변화하지만, 나는 중력 메소드가 너무 자주 호출되는 시간을 구현하는 방법에 확신입니다. 또한 현재 공이 581에 멈춰 화면을 통과하지 못하게했습니다. 공이 떨어질 때 공이 더 오랫동안 떨어질 때 더 높은 바운스를 어떻게 구현합니까? 시간 내 줘서 고마워!

답변

0

y- 속도에 대해 메서드 외부에 변수가 있습니다. 모든 진드기는 중력에 대한 속도를 증가시킵니다.
공이 경계를 넘은 경우 경계로 설정하고 속도를 -1 * 속도로 설정하여 다른 방향으로 "튀게"만드십시오. 이 같은

아마 뭔가 : 당신의 응답을

private int currentVelocityY = 0; 
private int gravity = 3; 
public void Gravity(){ 
    this.currentPositionY = this.currentPositionY + this.currentVelocityY; 
    if (this.currentPositionY >= 581){ 
     this.currentPositionY=581; 
     this.currentVelocityY = -1 * this.currentVelocityY; 
    } 
    currentVelocityY = currentVelocityY + gravity; 
} 
+1

감사합니다! 나는 이것을 버렸지 만 게임에서 s 버튼을 클릭하면 볼의 높이가 증가하기 때문에 시간이 경과하면 게임 틱에서 벗어날 수 없으므로 누군가 프로그램을 잠시 실행 한 채로두고 높이를 높이려면 버튼을 클릭하고 게임이 너무 오래 실행 되었기 때문에 공은 너무 빨리 떨어질 것입니다. – Rain

+0

높이를 늘리거나 속도를 재설정하거나 최대 속도에 마개를 넣는 방법을 사용할 수도 있습니다. – Jake

+0

알았어요. 정말 고마워요. – Rain

관련 문제