2013-01-08 2 views
0

레벨 도우미와 SpriteHelper를 사용하여 스프라이트, 이미지, 레벨 및 더 중요한 애니메이션과 물리를 만듭니다.Sprite가 물리를 업데이트하지 않습니다.

물리학에 따르면, 충돌 탐지에 사용되는 시뮬레이터에서 볼 수있는 디버그 드로를 의미합니다.

저는 수영을하고 이것에 물리학을 추가했습니다. 물리학자가 움직일 때 수영장 주변의 수영을 따라갈 수 있도록 코드를 작성하십시오. 이제 저는 수영 선수를 움직이게하고 다리를 걷어차는 등의 작업을했습니다. 이제 게임을로드하고 애니메이션의 첫 번째 스프라이트 만 물리학을위한 윤곽입니다. 그래서 나는 수영 선수를 향해 걷어차는 다리를 볼 수 있지만 물리학의 디버그 메쉬는 움직이지 않습니다. 이제는 예를 들어 수영자가 다리를 잃기 전까지는 문제가되지 않습니다 (이상한 게임). 다리가없는 수영 선수에게 애니메이션을 바꿉니다. 그러나 물리 메쉬는 여전히 다리를 보여줍니다. 그래서 물건과의 충돌은 다리가있는 곳에서 여전히 발생하지만 그들은 피해야합니다. 이게 말이 되니?

새로운 애니메이션에서 물리를 업데이트 할 수있는 방법이 있습니까? 아니면 전체 수영 선수를 제거하고 새로운 선수를 그릴 필요가 있습니까?

도움이된다면 도움이 될 것입니다. 감사합니다

+0

상자 2쪽에는 수영 선수의 다리를위한 별도의 메쉬가 있습니다 ? 당신은 그들을 제거해야합니다/신체의 나머지 부분에서 그들을 분리 – yannicuLar

+0

안녕, 아니, 난 그냥 시작에서 전체 수영의 애니메이션의 첫 번째 스프 라이트의 하나의 메쉬 있습니다. – Alexj17

+0

좋아, 그 다음에 cocos2d 쪽에서 "다리를 자르려면"어떻게해야합니까? 다리가없는 다른 애니메이션으로 업데이트 하시겠습니까? 또는 다리에 별도의 어린이 스프 라이트가 있습니까? – yannicuLar

답변

0

당신의 스프 라이트가 두 상태 모두에서 동일한 box2d 메시를 사용하기 때문에 이것은 의미가 있습니다. Sprite를 변경 한 후에 다른 충돌 동작을 원할 경우 다른 (더 작은) 메쉬 본문을 지정해야합니다.

cocos2d 측에서도 스프라이트에는 새로운 애니메이션이있는 동일한 컨테이너 상자가 있습니다.

SpriteHelper 기능을 계속 사용하려면 2 개의 다른 스프라이트 바디 세트를 만들어야합니다. 하나는 풀 바디로, "사고 후"는 다리없는 스프라이트로 교체하십시오.

지금, 게임 플레이 와이즈, 제 의견으로는 어쨌든 다리 충돌이 없어야합니다. 그들이 움직이기 때문에 플레이어는 충돌하지 않도록 이상한 것을 발견하지 못할 것입니다. 다리가없는 메쉬 몸체를 사용하여 두 스프라이트에 사용할 수 있습니다. 게임 플레이 기능과 다른 충돌을 원한다면 (작은 동굴 등에 들어가기 위해 다리를 자르도록 선택하는 것과 같이)

관련 문제