次のコードがあります。
public boolean onTouchEvent(MotionEvent event) {
fingerSize = event.getSize();
fingerPosX = event.getX();
fingerPosY = event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
start = true;
break;
}
}
return true;
}
3 つの変数 fingerSize、fingerPosX、fingerPosY を使用して円を描画します。
canvas.drawCircle(fingerPosX, fingerPosY, fingerSize
* fingersizeCorrection, paint);
つまり、基本的に、指で画面を移動すると、円が指に追従します。問題は、指を追おうとする円の動きが非常に途切れ途切れであることです。
これをより流暢にするにはどうすれば改善できますか?
これはすべてSurfaceViewで発生します。次のようなfpsリミッターも追加しました:
int FRAMES_PER_SECOND = 60;
int SKIP_TICKS = 1000/FRAMES_PER_SECOND;
long next_game_tick = timer.getElapsedTimeMil();
int sleep_time = 0;
next_game_tick += SKIP_TICKS;
sleep_time = (int) (next_game_tick-timer.getElapsedTimeMil());
if(sleep_time >= 0){
try {
Thread.sleep(sleep_time);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else{
}