touchlistener に問題があり、実際には正しく動作しません。
@Override
public boolean onTouchEvent(MotionEvent event) {
touchControll.processTouchEvent(event); //should do everything!
invalidate();
return true;
}
Methode の processTouchevent は、単純にイベント ウォッチを取得して処理します。したがって、タッチがジョイパッド内にある場合は、ジョイパッドの「アクション」を処理します。しかし、hitButton イベントを処理したい場合は、反応しません。
例
public void processHitButtonTouch(MotionEvent event){
int touchPosX = (int) event.getX();
int touchPosY = (int) event.getY();
if(event.getAction() == MotionEvent.ACTION_DOWN)
if(touchPosX > Config.BLOCKSIZE*37 && touchPosY > Config.BLOCKSIZE*3 && touchPosY < Config.BLOCKSIZE*7){
this.hitButton.buttonStatus = Pressed.PRESSED;
}
}
すべての MotionEvent.ACTION_UP で、次のようにすべてをリセットします。
if(event.getAction() == MotionEvent.ACTION_UP){
joyPad.status = Status.IDLE;
charac.setStatus(Status.IDLE);
this.hitButton.buttonStatus = Pressed.UNPRESSED;
}
Loggincat で実際に複数のイベントを処理するかどうかを結びました (2 タッチ 2 回 downevent がログに記録されました!)。しかし、私がここでやったようには機能しません。私は何を間違えましたか?!
助けてくれてありがとう!