2010-12-15 4 views
3

충돌 감지 기능을 사용하여 애니메이션을 설정하는 가장 좋은 방법을 찾지 못했습니다. 핸들러와 onDraw()를 사용하여 행에 대한 사각형과 비트 맵 볼을 그리는 완전한 기능 버전의 폴드 다운 (인기있는 계산기 게임)을 가지고 있습니다. 그러나이 애니메이션은 건너 뜁니다 (느리게 보임). 따라서 애니메이션을 트윈 애니메이션으로 전환하려고합니다.충돌 감지 애니메이션?

내 질문은 개념적 문제입니다. 애니메이션 중간에서 어떻게 충돌을 감지합니까? 옆쪽 애니메이션이 두 경로 중 하나를 선택하는 것으로 보입니다. a) 아주 작은 단계로 움직입니다. 그러나, 나는 이것이 현재의 애니메이션 셋업만큼 나쁠 것이라고 생각한다. b) 애니메이션을 화면의 왼쪽이나 오른쪽 끝까지 설정했지만 애니메이션의 모든 단계에서 볼이 행을 통과하지 않는지 확인합니다.

볼의 아래쪽 움직임과 비슷한 문제가 있습니다. 끊임없이 공 (정수로 저장 됨)의 위치에 액세스/업데이트하고 무언가와 충돌하는 경우 애니메이션을 짧게자를 수 있습니까? 행의 일부분 위에 있지 않은 경우에만 공이 아래쪽으로 움직 이도록 할 수 있습니까? 애니메이션 내부의 충돌을 감지 할 수있는 방법이 있어야하지만 어떻게해야할지 모르겠다.

편집 : 애니메이션 클래스가 게임에 적합하지 않은 경우 내 게임에 어떻게 애니메이션을 적용해야합니까? 내가 말했듯이, 내가 가지고있는 핸들러 - 온 드로우 시스템은 지연을 1 밀리 초로 설정하더라도 공이 건너 뛴다.

+2

Animation 클래스 및 android-manifest.xml 정의 애니메이션은 모든 종류의 게임 사용에 적합하지 않습니다. 그들은 GUI에서 물건을 움직일뿐입니다. –

+0

gamedev.stackexchange.com에서 게임 특정 질문에 대한 답변을 찾을 수 있습니다. –

+0

마크가 맞다. 애니메이션을 사용하지 말아야한다. – Snailer

답변

2

UI 캔버스 그리기 방법을위한 하나의 스레드와 UI 이외의 Game Logic/Anything을위한 하나의 스레드.

하나의 스레드가 개체 위치 등을 업데이트하고 다른 UI 스레드가 화면에 그려줍니다.

게임 논리 스레드가 연속적이며 모든 경로에서 X, Y 위치를 업데이트하고 충돌 감지 등을 처리합니다. 그리기 스레드는 업데이트 된 X, Y 위치를 가져 와서 비트 맵을 캔버스에 그립니다.

비트 맵/이미지/스프라이트 컬렉션을 그리는 캔버스로 SurfaceView를 사용할 수 있습니다. Google에서 제공하는 수많은 Android 게임의 예를 살펴볼 수 있습니다. 어떻게 완료 되었는가를 빠르고 간단하게 살펴볼 수 있지만 일반적으로 위에 설명한 방법과 같습니다.

+0

언급 된 예제 링크를 클릭하십시오. – ezaspi