これをチェックしてくださいlink次のコードはこのリンクからのものです。私はタッチイベントの数を制限するためにスレッドスリープを使用しなければならないと言う理由はわかりません。 私はタッチイベントによってプッシュされたイベントを処理するsurfaceviewとgamethreadを持っています。この睡眠が必要か、あるいはフレームレートをコントロールすることによって、睡眠をgamethreadで処理する必要がありますか?sleep()onTouchEventまたはSurfaceview(アンドロイド)のコントロールフレームレートを実行します
try {
Thread.sleep(16);
} catch (InterruptedException e) {
}
return true;
}
コード全体
@Override
public boolean onTouchEvent(MotionEvent event) {
// we only care about down actions in this game.
try {
// history first
int hist = event.getHistorySize();
if (hist > 0) {
// add from oldest to newest
for (int i = 0; i < hist; i++) {
InputObject input = inputObjectPool.take();
input.useEventHistory(event, i);
gameThread.feedInput(input);
}
}
// current last
InputObject input = inputObjectPool.take();
input.useEvent(event);
gameThread.feedInput(input);
} catch (InterruptedException e) {
}
// don't allow more than 60 motion events per second
try {
Thread.sleep(16);
} catch (InterruptedException e) {
}
return true;
}