2009-07-05 3 views
1

나는 Popcap의 Atomica와 거의 동일한 게임을 만들었습니다. (http://www.popcap.com/gamepopup.php?theGame=atomica)어디서나 사용자 이동을 차단하십시오.

하나의 중요한 기능을 제외하면 거의 끝났습니다. 어디서나 움직이는 분야에서 사용자를 차단합니다. 마찬가지로, 사용자가 이동하려는 영역과 사용자가 이동하려고 시도하는 영역 사이에 다른 구체의 벽이있는 경우 사용자는이를 이동할 수 없어야합니다.

다차원 배열 [x-loc, y-loc]에 "e"가 비어 있거나 "s"sphere 인 모든 필드와 구체를 저장했습니다. 루프를 실행하여 찾았습니다. 두 필드 사이에 명확한 도로가있는 경우에는 제외되지만 아무 것도 작동하지 않습니다.

누구든지이 문제를 해결할 수있는 방법을 알려주시겠습니까?

+0

는 이러한 경로 찾기에 대한 질문을 참조하십시오 http://stackoverflow.com/search?q=collision+ 감지 그런 다음 더 구체적인 문제로 다시 시도하십시오. 또는 코드를 게시하면 작동하지 않는 부분을 알려 드리겠습니다. –

+0

데이터를 문자열/문자로 저장하지 마십시오. 그것을 열거 형으로 저장하십시오. –

+0

찰리 : 왜요? 이 방법이 더 쉽습니다. 구체가 다른 색상 일 수 있기 때문입니다. 빨간색 영역의 경우 'sr', 파란색 영역의 경우 'sb'와 같습니다. – Phoexo

답변

0

Floyd-Warshall과 같은 경로 알고리즘을 실행해야합니다. 행렬에서 유효하지 않은 메모와 가장자리를 생략해야합니다 (즉, 볼 수있는 그래프는 구가없는 모든 노드의 하위 그래프입니다) 오직 법적 조치. 그런 다음 Floyd-Warshall과 같은 경로 알고리즘은 모든 "합법적 인"동작을 제공합니다. http://stackoverflow.com/search?q=path+finding 그리고 충돌 감지에 이러한 질문 :

관련 문제