Android用のBrickBreakerゲームを作成しようとしていますが、X秒ごとにBrickBreakerView(ボール、パドルなどを含む)を更新できるようにしたいと考えています。現在、UIは、ユーザーが画面に触れたときにのみ更新されます。
更新の合間に、パドル、ブリック、ボールのデータを変更し、onDraw()メソッドが呼び出されたときに(UI更新)、データでビューを更新したいと思います。
現在、私はパドルしか持っておらず、ユーザーが画面に触れて指を動かすと、パドルの位置が更新され、invalidate()が呼び出されます。これが私のコードです:
private Paddle paddle;
private int fingerAdjustor = 75;
public BrickBreakerView(Context context, AttributeSet attrs) {
super(context, attrs);
setBackgroundColor(Color.WHITE);
setOnTouchListener(this);
setOnClickListener(null);
paddle = new Paddle(100, 675, 150,25);
invalidate();
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction() == MotionEvent.ACTION_MOVE) {
int x = (int) event.getX();
paddle.setXPosition(x);
invalidate();
}
return false;
}
@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub
super.onDraw(canvas);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
canvas.drawRect(paddle.getX()-fingerAdjustor, paddle.getY(), paddle.getX() + paddle.getPaddleWidth()-fingerAdjustor, paddle.getY() + paddle.getPaddleHeight(), paint);
}
これには、ある種のタイマーの使用が含まれますか?いくつか例を挙げたり、これをどのように実装するかを教えていただければ、非常にありがたいです。