您好我在屏幕上移动球有一点问题,我也很困惑为什么我不能将公共类double x = 0, y = 16, muvx = 0, muvy = 0;
中的这些变量MainActivity
更改为局部变量而且我不知道#39;知道如何将计时器设置为0.5秒。 Timer t = new Timer(this, 5);
这也向我显示了这一行的错误。以下是代码,请向我解释导致错误的原因以及如何让球移动。
public class MainActivity extends Activity {
static int F_WIDTH = 800;
static int F_HEIGHT = 600;
static int MIN_X = 0; // left - ball
static int MIN_Y = 16; // up - ball
static int MAX_X = 742; // right - ball
static int MAX_Y = 521; // down - ball
static int BALL_SIZE_X = 100;
static int BALL_SIZE_Y = 100;
Timer t = new Timer();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new ArcView(this));
RelativeLayout rlayout = (RelativeLayout) findViewById(R.id.main_layout);
rlayout.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
right(); // <---- this is the error
}
});
}
static class ArcView extends View {
Paint paint;
Path path;
RectF rect;
public ArcView(Context context) {
super(context);
rect = new RectF(50, 50, BALL_SIZE_X, BALL_SIZE_Y);
paint = new Paint(Paint.FILTER_BITMAP_FLAG);
paint.setStyle(Paint.Style.STROKE);
paint.setColor(Color.CYAN);
paint.setStrokeWidth(30);
path = new Path();
path.addArc(rect, 360, 360);
setBackgroundColor(Color.WHITE);
}
float x = 0, y = 16, muvx = 0, muvy = 0;
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(x,y,40, paint);
}
public void right() {
muvx = 2;
muvy = 0;
}
public void actionPerformed() {
invalidate();
x += muvx;
y += muvy;
if (x < MIN_X) {
x = MIN_X;
}
if (x > MAX_X) {
x = MAX_X;
}
if (y < MIN_Y) {
y = MIN_Y;
}
if (y > MAX_Y) {
y = MAX_Y;
}
}
}}