2014-06-23 11 views
0

나는 팩맨 스타일의 미로 게임을 만들고 있습니다. 나는 임펄스를 적용 할 수 있으며 영웅에게 원하는대로 수직 또는 수평 방향으로 제한 할 수 있습니다.Spritekit 끄지 않는 방법

그러나 벽에 물리물 스프라이트를 추가하면 이상하게 보입니다. 영웅 물리학 본문과 벽이 튀어 오르지 않도록 설정했습니다.

벽에 머리를 올려 놓으면 예상대로 죽지 않습니다. 그러나 내가 방향을 바꾸고 벽을 따라 움직인다면 나는 벽으로부터 약간 기울어 져 떨어져 나간다. 이 문제의 원인은 무엇이며 어떻게 피할 수 있습니까? 세로 및 가로 직선으로 만 이동하고 싶습니다.

+1

영웅 노드를 움직이기보다는 물리를 사용하여 운동에 얼마나 중요합니까? – webbcode

+0

나는 당신이 말하는 것을 얻지 만, 나는 다른 방향을 가르키거나 벽을 치고 멈출 때까지 한 방향으로 움직여야한다. – uchuugaka

답변

0

그래, 여기 해결책은 약간 직관적입니다. applyForce : 또는 applyImpulse : physicsBody에서 메서드 모음을 사용하는 대신 sprite 자체에서 runAction : forKey :를 사용하십시오. 방향이 변경된 경우, 직각을 유지하기 위해 runAction : forKey :를 호출하기 직전에 removeAction : forKey :를 호출하십시오. (그렇지 않으면 짧은 각 운동이 있습니다)

다른 트릭은 거리에 적절한 속도를 찾는 것입니다. 너무 빠르면 벽을 통해 날아갑니다. (버그?) 그런 다음 장면의 크기에 따라 배율로 속도와 거리를 적용하십시오. 총 거리는 모든 방향에서 가능한 한 커야합니다. 그것은 물건이 벽을 치거나 다른 방향으로 움직일 때까지 계속 움직입니다.

정말 잘 작동합니다.

물리 운동을 사용하면 중력이있는 플랫폼 상황에 가장 적합하게 보입니다.

위에서 아래로보기에는 일반적으로 중력이 없습니다. (스프라이트에 중력을 가하여 무언가를 빨아 들이고 싶을 수도 있음)

관련 문제