2013-10-14 6 views
-1

AS3을 사용하여 플래시 게임을 만들려고합니다. 나는 프로그래밍의 초보자입니다. 내가 겪고있는 문제는 게임이 중력 역학을 뛰어 넘는 것과 관련이 있습니다.(게임) 점핑 및 중력 역학

현재 Up 키를 누르면 문자가 아래쪽으로 이동하면서 위쪽으로 이동합니다 (20 픽셀/프레임 속도). 업 키가 내려지지 않으면 글자가 위쪽으로 움직이지 않습니다. 캐릭터가 땅에서 떨어지면 중력도 작용합니다. 캐릭터가 지상에서 벗어나면 중력 변수 (원래 0)는 모든 프레임마다 (1.5) 씩 증가합니다. 중력 변수는 캐릭터가지면에 닿을 때까지 캐릭터를 방해합니다. 지상에서 중력 변수는 0으로 되돌아갑니다.

이것은 꽤 잘 작동합니다. 그러나 매끄럽고 곡선과 같은 점프는 업 키를 항상 누르는 경우에만 가능합니다. 그렇지 않으면 Up Key를 놓으면 정말 빨리 넘어집니다. 보류 키 점프에서 온 탭 키 점프로 점프를 변경하여이 문제를 해결할 수 있음을 알고 있습니다. 그러나, 나는 그것을하고 싶지 않다.

TL 나는 완벽한 파라볼 릭 점프를 원한다!

+0

방금 ​​생각했습니다. Up Key를 얼마나 오래 누르고 있을지 측정하는 방법이 있다면 위쪽 움직임의 속도 요소로 사용할 수 있습니다. – LaPXL8R

답변

2

이것은 광범위하고 복잡한 질문입니다. 물리학을 게임에 적용하는 것에 대해 올바른 방향으로 가고있는 것은 아니라고 생각됩니다. 당신이 일정한 가속도를해야 이미 addEventListener(Event.ENTER_FRAME, frame);

  • 중력 아닙니다 항상 당신의 성격에 영향을 미칠 경우 게임

    • 업데이트 모든 프레임을 : 여기에 보일 것 몇 가지 개념입니다. const GRAVITY:Number = 9.8; // or whatever value
    • 캐릭터와 땅 사이의 충돌을 확인해야합니다. 그들이 충돌 할 때 캐릭터의 위치를 ​​땅의 위치로 설정합니다 (그래서 넘어지지 않습니다).
    • 캐릭터가 점프하면 시작 속도를 설정할 수 있습니다. ENTER_FRAME에서 이벤트 중력은 그 속도에 적용되어 캐릭터가 서서히 속도를 줄인 다음 떨어지기 시작해야합니다.
    • 모션을 계산하는 간단한 방법은 SUVAT 수학 방정식을보십시오. link

    직접 프로그래밍하지 않고도 물리, 충돌 감지 등을 원하면 this이 가장 좋습니다.