ゲーム作るときには必須の処理だと思います。
onTouch(View v, MotionEvent me)の中でボタンが押されたら(DOWN)リピートフラグをtrueにする。ボタンが離されたら(UP)リピートフラグをfalseにする。
メインループであるonDrawFrame(GL10 gl)の中でキーリピートしているときにコールバックされるオブジェクトを登録する。
private Runnable mLongPressAction = new Runnable() {
public void run() {//コールバックされる
//ここにキーリピートされたときの処理を書く
}
};
private boolean repeat = false;
public boolean onTouch(View v, MotionEvent me) {
if(me.getAction() == me.ACTION_DOWN) {
repeat = true;
}
if(me.getAction() == me.ACTION_UP) {
repeat = false;
}
return false;
}
private int LONG_PRESS_DELAY = 1;//ミリ秒
private Handler mHandler = new Handler();
public void onDrawFrame(GL10 gl) {//毎回呼ばれる
if(repeat)
{//キーリピートされているあいだは毎回コールバックされるオブジェクトを登録
mHandler.postDelayed(mLongPressAction, LONG_PRESS_DELAY);
}
}
0 件のコメント:
コメントを投稿