2014-12-27 1 views
3

저는 LibGdx Engine과 Java로 작성된 새로운 게임을 만들고 있습니다. 이 게임의 일부 물리학에 문제가 있습니다.LibGdx 활과 화살 게임 물리학

나는 화살 탄도탄 (화난 조류 스타일) 에서 화살을 쏘고 싶은데 방정식을 찾을 수 없습니다.

나는이 속도 방정식을 사용하고 있습니다 :

float velx = (float) (Math.cos(rotation) * spd); 
    float vely = (float) (Math.sin(rotation) * spd); 

나는이 현재의 위치와 한 방향의 화살표 촬영에 추가 - 바로.

로테이션을 변경하면 내가 원하는 것을 얻을 수 있다고 생각했습니다 (탄도 경로).

도움이되지만 궤도 또한 갖고 싶습니다.

나는 누군가가 이미 게시하는이 ProjectileEquation 클래스를 보았다하지만 작동하는 방법을 알고하지 않았다 : 나는 도움을 찾고 있어요

public class ProjectileEquation 
{ 

    public float gravity; 
    public Vector2 startVelocity = new Vector2(); 
    public Vector2 startPoint = new Vector2(); 
    public Vector2 gravityVec = new Vector2(0,-10f); 

    public float getX(float n) { 
     return startVelocity.x * (n) + startPoint.x; 
    } 

    public float getY(float n) { 
     float t = n; 
     return 0.5f * gravity * t * t + startVelocity.y * t + startPoint.y; 
    } 

}

날이 클래스를 사용하는 데 도움이 탄도 궤적. 내가 그것을 사용하여 시도하는 방법

은 다음과 같습니다

for(int i =0;i<30;i++) 
      { 
       Texture f = ResData.Square_1; 
       ProjectileEquation e= new ProjectileEquation(); 
       e.gravity = 1; 
       e.startPoint = new Vector2(bow.getX(),bow.getY());//new Vector2(-bow.getX(),-bow.getY()); //My bow is opposite so it suppose to work fine 
       e.startVelocity = getVelocityOf(bow.getRotation()); 
       Vector3 touchpos = new Vector3(); 

       s.draw(f,e.getX(i) ,e.getX(i),5,5); 

      } 
+0

무엇이 필요합니까? 나는 충분히 이해하지 못했다. 궤도를 렌더링해야합니까? – nikoliazekter

+0

예,이 클래스를 사용하여 그것을 수행 할 수 없습니다. –

+0

공기 저항이 없다면 궤도는 간단한 포물선입니다. 방정식 http://upload.wikimedia.org/math/6/0/5/605184454f022e69b228699e8983c9c3.png – nikoliazekter

답변

0

당신은 당신이 시간이어야한다에 전달하는 X 및 시간 델타 주어진 Y 위치 때문에 부동 소수점을 계산하는 것 같은 외모를 게시 ProjectileEquation 클래스 델타 당신이 화살표를 움직이기 시작한 이후 (초 단위).

그 코드는 화살표의 각도를 알려주지 않습니다. 이를 찾으려면 이전 X와 Y를 유지하고 Math.atan2()를 사용하여 이전 XY와 현재 XY를 기준으로 각도를 계산할 수 있습니다. Google atan2에서 사용 방법에 대한 정보를 얻을 수 있습니다.

그러나 이렇게하는 가장 좋은 방법은 Box2d를 사용하고 장면을 올바르게 모델링하는 것입니다. 그렇다면 수학에 전혀 개입하지 않아도됩니다. Angry Birds가 사용하는 곳이라고 읽었습니다. 이러한 종류의 물리 게임을 모델링 할 때 탁월한 선택입니다.

게임이 잘되기를 바랍니다.