0
我是新來的stackoverflow,我希望你能回答我的問題。 我有以下移動代碼。我想要一個條件乘以
public MovementView(Context context) {
super(context);
getHolder().addCallback(this);
circleRadius = circleRadius2 = 50;
circlePaint = new Paint();
circlePaint2 = new Paint();
circlePaint.setColor(Color.GREEN);
circlePaint2.setColor(Color.RED);
xVel = 10;
yVel = 10;
xVel2 = 20;
yVel2 = 20;
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.WHITE);
canvas.drawCircle(xPos, yPos, circleRadius, circlePaint);
canvas.drawCircle(xPos2, yPos2, circleRadius2, circlePaint2);
}
public void updatePhysics() {
xPos += xVel;
yPos += yVel;
if (yPos - circleRadius < 0 || yPos + circleRadius > height) {
if (yPos - circleRadius < 0) {
yPos = circleRadius;
}else{
yPos = height - circleRadius;
}
yVel *= -1;
}
if (xPos - circleRadius < 0 || xPos + circleRadius > width) {
if (xPos - circleRadius < 0) {
xPos = circleRadius;
} else {
xPos = width - circleRadius;
}
xVel *= -1;
}
xPos2 += xVel2;
yPos2 += yVel2;
if (yPos2 - circleRadius2 < 0 || yPos2 + circleRadius2 > height) {
if (yPos2 - circleRadius2 < 0) {
yPos2 = circleRadius2;
}else{
yPos2 = height - circleRadius2;
}
yVel2 *= -1;
}
if (xPos2 - circleRadius2 < 0 || xPos2 + circleRadius2> width) {
if (xPos2 - circleRadius2 < 0) {
xPos2 = circleRadius2;
} else {
xPos2 = width - circleRadius2;
}
xVel2 *= -1;
}
}
public void surfaceCreated(SurfaceHolder holder) {
Rect surfaceFrame = holder.getSurfaceFrame();
width = surfaceFrame.width();
height = surfaceFrame.height();
xPos = xPos2 = width/2;
yPos = yPos2 = circleRadius;
updateThread = new UpdateThread(this);
updateThread.setRunning(true);
updateThread.start();
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
}
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry = true;
updateThread.setRunning(false);
while (retry) {
try {
updateThread.join();
retry = false;
} catch (InterruptedException e) {
}
}
}
這定義了具有特定邊界的兩個圓的運動。現在我想添加更多的圈子,大約10到20.是否可以給一個變量而不是複製代碼(就像我爲兩個圓圈做的那樣)?