2013-07-12 3 views
0

저는 안드로이드 게임을 제작하고 있습니다. 이것은 모범 사례와 성능 질문 이상의 것입니다.안드로이드 게임 전용 비트 맵

사용자가 상호 작용하는 비트 맵의 ​​경우 이미지 뷰에 배치하고 개별적으로 onTouchListener를 설정해야합니다. 그렇지 않으면 캔버스에 그려야하며 사용자 정의보기의 onTouch 메서드를 사용해야합니다. 터치의 x와 y를 확인하고 터치를 감지하기 위해 비트 맵의 ​​범위에 속하는지 확인합니다.

내 사용자 지정보기가 전체 화면을 차지하고 캔버스를 사용하여 화면에 이미지 뷰를 그릴 수있는 경우 어떻게해야할지 모르겠다. 이제는 onTouch 메서드 만 사용합니다.

어떤 통찰력에도 감사드립니다.

답변

0

당신의 비트 맵 렌더링이 얼마나 동적 인 지에 따라 GLSurfaceView 나 SurfaceView 중 하나를 선택해야합니다. 비트 맵처럼 단순한 경우 SurfaceView를 캔버스를 얻을 수있는 "렌더러"로 사용하는 것이 좋습니다. 화면 크기가 화면 크기와 일치하면 전체 화면을 그릴 수 있습니다.

TouchListener는 독자적인 청취자에서 완전히 분리되어 캡슐화를 촉진하고 수행하려는 응용 프로그램을위한 코드를 다시 사용해야합니다. 이 조용한 도움이 발견 된 마지막 게임에 대한 도움이 표면 렌더링을 렌더러로 asingning 및 그냥 매개 변수로 캔버스 및 자체 드로잉 개체를 만드는 개체를 만들었습니다. 당신이 계산에 걸릴 수있는 유일한 것은 비트 맵 자원 관리, 그러나 당신이 풀어 놓을주의 깊게 그 (것)들을 창조하는 경우에, 아무 문제도 있어야하지 않는다. ...

감사합니다!

+0

응답 해 주셔서 감사합니다. 나는 그래픽을 렌더링하기 위해 surfaceView를 사용한다. 그것은 전체 화면을 차지하지 않으며 나는 canvas.drawBitmap 메서드를 사용하여 모든 비트 맵을 그립니다. 이것이 그 일을하는 길인지 궁금 해서요. 아니면 surfaceView 받아 2/3의 화면을 누른 다음 relativelayout 또는 뭔가를 어디에 내가 imageview를 구현하고 각 이미지에 대한 수신기를 만들 수 있습니다. 그러나 나는 그것이 옳다고 생각하지 않는다. – CBaker

+0

이 작업을 수행하는 데 좋은 방법이 있습니다. 리스너에서 X 및 Y 위치 만 가져올 수 있고 Rects로 그려진 비트 맵을 추적 할 수 있습니다. rect에 "contains"메서드를 사용하여 이벤트가 있는지 그 비트 맵 직사각형 내부는 간단하고 성능 친화적입니다 ... –

+0

아, 그 말이 맞습니다. 그래서 그것이 올바른 방법입니다. 비트 맵을 그린 다음 뷰에서 onTouch 메서드를 구현하고 X 및 Y를 가져온 다음 x 및 y가 이미지의 경계에 있고이를 터치했는지 여부를 확인합니다. 각 비트 맵에 대한 이미지 뷰를 만들지 않고 각 imageViews에 대해 개별 onTouchListener를 설정합니까? – CBaker