我正在尝试为 Android 编写 BrickBreaker 游戏,并且我希望能够每 X 秒更新我的 BrickBreakerView(包含球、桨等)。目前,UI 仅在用户触摸屏幕时更新。
在更新之间,我将更改桨、砖和球的数据,当调用 onDraw() 方法(UI 更新)时,我想用数据更新视图。
目前,我只有一个 paddle,当用户触摸屏幕并移动手指时,paddle 的位置会更新,并调用 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);
}
这会涉及使用某种计时器吗?如果你能给我一些例子或告诉我将如何实现它,我将非常感激。