2013-09-29 3 views
0

2D 환경에서 충돌의 개념을 파악하는 데 문제가있어 사이트를 처음 사용하고 계정을 만들기로 결정했습니다.2D Sprite 객체와 수학과의 충돌

내가 가진 것은 위에서 아래로 바라본 도로 스프리트 세트이며, 플레이어가 길을 가면 게임을 끝낼 수 있도록 충돌 규칙을 설정하려고합니다. .

지금까지 난 당신이 여기에서 볼 수있는 직선 도로, 장소에 설정된 규칙이 : 기본적으로

if ((*it)->getType() == ST_RoadStraight) 
    { 
     Road* road = (Road*)*it; 
     // Check to see if the road sprite is within 16 pixels of the bucket either way 
     int dx = road->getPosition().x - Pos.x; 
     if (dx < 0) dx = -dx; 
     if (dx > 200) 
     { 
      outOfBounds = true; 
     } 
    } 

를, 내가 말할 그 플레이어는 그 x 축에 일정한 거리를 어느쪽으로가는 경우 게임을 끝내 겠어. 위, 아래 또는 왼쪽 및 오른쪽으로가는 직선 도로는 y 축을 변경할 수 있기 때문에 괜찮습니다. 그러나 곡선 도로가 있습니다.

스트레이트 : http://i.imgur.com/bNHYwZO.png

곡선 다음은 자산처럼 무엇의 생각 기본적으로 http://i.imgur.com/ppPw7ED.png

가, 나는 길이나 허용 곳을 가로 질러 아래로 갈 수 있도록 플레이어를 필요로하지만, 경우 그는 그가 길을 떠나 갈 가장자리를 때렸다. 나는 그렇게 말할 필요가있다. 직선 도로는 쉽지만 구부러진 도로에있는 플레이어의 위치에 따라 Y의 30 픽셀 높이가 도로의 특정 부분에서는 괜찮을 수 있지만 다른 곳에서는 괜찮지 않을 수 있습니다.

필자는 본질적으로 게임에서 정확하게 표현할 수있는 방정식을 찾고 있습니다.

도움을 주시면 감사하겠습니다.

답변

0

Sprite Kit을 사용할 수없는 이유가 있습니까?

+0

저는 현재 마말레이드 SDK를 사용하여이 게임을 작성 중이므로 iPhone 및 Android 기기에서 사용할 수 있습니다. xcode/objective-c 프로그래밍에 대한 느낌입니다. 그러나, 내가 찾고있는 충돌의 종류를 제공하는 키트는 고맙게 여겨 질 것이고, 이것이 여전히 나에게 유용하다면, 나는 그것에 대해 조사 할 것이다. – user2829016

+0

Windows의 Visual Studio에서도이 문제를 언급해야한다고 생각합니다. – user2829016

+0

SpriteKit은 Box2D의 포트입니다. 따라서 마말레이드와 함께 작동하는 Box2D의 다른 포트를 찾을 수 있다면 Sprite Kit만큼이나 좋을 것입니다. Cocos 2D는 Box2D의 또 다른 포트이지만 iOS라고 생각합니다. Box2D 웹 사이트 http://box2d.org – WolfLink

0

음 2 차원 충돌 감지에 대해서는 Box2D 물리 엔진을 사용하는 것이 좋습니다. 마말레이드에 설치하기 쉽고 정확한 결과를 제공합니다. 나는 많은 마멀레이드 게임에서 그것을 사용했다. marmalade's github account에 box2D 확장자가 있습니다. 그것을보십시오.