2012-02-17 3 views
1

나는이 질문을 이해하기 위해 게임을 설명해야한다고 생각합니다. 공이 화면 아래로 떨어지고 볼을 클릭하면 유형에 따라 다른 공으로 바뀝니다. 예를 들어, 한 볼을 클릭하면 주변 볼이 잠시 동안 고정됩니다. 일부는 폭발하여 주변의 다른 사람들을 파괴 할 것입니다.개체가 움직이지 않을 때 어떻게 충돌을 감지 할 수 있습니까?

고정 된 볼 (body.setType(BodyType.STATIC))이 있고 그 옆에있는 다른 볼이 폭발하면 (운동 공이 큰 정적 공으로 설정된 경우) 충돌이 감지되지 않습니다.

정적 바디의 충돌을 감지하려면 어떻게해야합니까? 제 말은, 그렇습니다. 그들은 움직이지 않아서 충돌하지 않아야합니다. 그러나 여러분은 정적 인 물체를 가지고 있습니다. 그리고 다음 순간에, 여러분은 다른 정적 인 물체를 만지기 때문에, 무언가를 고려하지 않아야합니까?

더 많은 설명이 필요하면 알려주세요.

업데이트 : 나는 생각할 수있는 아이디어가 있지만, 알아낼 수없는 일을해야합니다. 역동적 인 몸체를 정적 인 몸체처럼 동작하게 만들려면 어떻게해야합니까? 중력이나 충돌에 영향을받지 않는 역동적 인 신체의 위치를 ​​갖는 것입니까?

답변

0

API를 파고 들자 마침내 나를 도울 수있는 방법을 발견했습니다. 아래는 문제를 해결하는 코드입니다.

-1

IIUC 당신은 폭발하는 공이 더 큰 반경 (폭발의 영향을받는 영역과 동등 함)이라고 생각할 수 있습니다. 그러면 영향을받는 주변 공은 더 큰 원형 영역과 교차하는 공입니다.

+0

분명히하기 위해 볼 상호 작용이 작동하는 방법에 대한 게임 논리는 모두 ContactListener를 통해 수행됩니다. 물론 다른 방법이 있지만 코드를 엉망으로 만들 것입니다. –

0

그래서 나는 (비록 그것을 테스트하지 않았다)이 작업을 수행하는 두 가지 방법이 있다고 생각합니다 :

먼저 센서입니다. 고정 된 정적 바디에 센서를 추가하면 바디 자체가 정적 임에도 불구하고 센서는 다른 정적 객체와의 충돌을 감지해야합니다.

두 번째 가능성은 '고정 된'몸체를 정적 모양 대신 운동 학적 모양으로 만드는 것입니다. 그들은 여전히 ​​충돌을 감지하고, 다른 물리 객체로부터 반응하지 않으면 서 사용자가 설정 한 속도를 가질 수 있다는 장점이 있습니다. 그러나 운동 학적 모양이 정적 시체와 접촉점을 생성하는지 확실하지 않습니다.

+0

문서에서 이것을 찾았습니다 : "고정 된 몸체의 고정물은 동적 몸체와 만 충돌 할 수 있습니다.기구 학적 몸체의 고정물은 동적 몸체에만 충돌 할 수 있습니다." 그것은 두 번째를 배제합니다. –

+0

센서에서 본 것부터는 효과가 있지만 그렇지 않습니다. 정적 객체 중 하나를 센서에 설정했지만'beginContact'는 두 정적 객체의 접촉을 제공하지 않습니다. –

관련 문제