My full code here나는 안드로이드 개발을 배우고 내가 간단한 단어 검색 게임을 만들려고 해요
내 사용자 지정 구성 요소에 onTouchEvent를 설정하는 방법. 먼저 LetterTile 클래스를 만들었습니다.이 클래스는 화면에 문자 하나를 표시하며이 클래스는 자체적으로 그릴 메서드를 가지고 있습니다.
그런 다음 LetterTile의 행렬 인 LetterMap 클래스를 만들었습니다 (LetterMap (6, 6)을 사용하는 경우 LetterTile의 6x6 행렬을 화면에 그립니다).
이제 LetterTile 개체 중 하나를 만질 때 뭔가 할 수 있습니다. 이 순간, MainGamePanel에서 LetterTile 객체가 아닌 LetterMap 객체를 초기화하기 때문에 그렇게 할 수 없습니다.
당신은 내가 LetterTile 개체를 초기화하면, 난 그냥 문제를 처리하기 위해 onTouchEvent를 사용하는 것이 내 코드에서 볼 수 있지만, 지금은 내가 뭘 잘못 했 LetterMap
으로 수행하는 방법을 몰라? 또는이 게임에 대한 내 접근 방식이 올바르지 않습니까?
도움을 주시면 감사하겠습니다. 감사!
귀하의 코드를 이해할 수 있는지 모르겠지만 귀하의 문제는 표면보기의 onTouchEvent()가 귀하의 LetterTile의 onTouchEvent를 재정의한다고 생각합니다. 이 경우 surfaceView의 onInterceptTouch() 메서드를 재정의합니다. 아래 링크를 참조하십시오. http://stackoverflow.com/questions/16191914/set-touchlistener-to-root-view-without-overriding-touchevents-of-child-view. 그렇지 않으면 LetterTile을 만질 때 일어나는 일에 대해 더 많은 정보를 제공하고 디버깅을 시도하고 점프하고 중단 할 브레이크 포인트를 찾으십시오. – owe
내가 정의한 LetterTile 및 LetterMap은 아직보기가 아닙니다. LetterTile은 캔버스에 자신을 그리는 메소드가있는 클래스 (보기가 아님)이며, LetterMap은 LetterTile을 결합한 객체 (클래스)이며 LetterMap의 그리기 메소드는 각 LetterTile의 그리기 메소드를 간단하게 호출합니다. 그리고 SurfaceView의 onDraw 메소드에서, LetterMap은 스크린에 그려집니다 (따라서 LetterTile의 매트릭스를 그립니다). LetterTile을 만졌을 때, 나는 단지 빛나기를 원 했었습니다. (중요하지 않다고 생각합니다.) 중요하지만, LetterMap 전체가 아니라 각 LetterTile을 어떻게 만질 수 있습니까? –
LetterMap을 만질 수 있습니까? 이게 옳은 거니? 귀하의 코드를 볼 때 귀하의 letterMap에 대한 TouchEvent를 볼 수 없습니다. 또 다른 질문 : 뷰를 사용하지 않는 이유는 무엇입니까? 이것이 이유가 있습니까? – owe