我做了一场2D游戏。当我触摸一列时,2或3个单元格正在变化,而不是1。
如果我一直触摸屏幕,onTouch方法一直工作,直到我抬起手指。 但是我不想要这个,我希望onTouch方法每次触摸工作一次。 我怎么能这样做?
这是我的代码的一部分:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_customer);
MyView a = new MyView(this);
setContentView(a);
a.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View view, MotionEvent motionEvent) {
float mX = motionEvent.getX();
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (board[0][j].getterCellType() == '.') {
if (mX > board[i][j].getterxPos()-50 && mX < board[i][j].getterxPos() + 50) {
playColumn = board[i][j].getterColumn();
play();
return true;
}
}
}
}
return true;
}
});
}
答案 0 :(得分:0)
如果您只想执行一次,那么您应该检测ACTION_DOWN
。每onTouch
,MotionEvent.ACTION_MOVE
和MotionEvent.ACTION_DOWN
都会调用MotionEvent.UP
方法。
public boolean onTouch(View view, MotionEvent motionEvent) {
if(motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
//code code code
}
}