이것을 확인하시기 바랍니다 link. 다음 코드는이 링크에 있습니다. 터치 이벤트의 수를 제한하기 위해 스레드 수면을 사용해야한다는 이유가 확실하지 않습니다. 터치 이벤트로 푸시 된 이벤트를 처리하는 표면보기 및 gamethread가 있습니다. 이 수면이 필요한지 아니면 대신 프레임 속도를 조절하여 gamethread에서 수면을 처리해야합니까?onTouchEvent 또는 표면보기 (안드로이드)에서 제어 프레임 속도를 실행하십시오
try {
Thread.sleep(16);
} catch (InterruptedException e) {
}
return true;
}
전체 코드 2009에 게시 된 기사에
@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;
}