Я новичок в 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. Возможно ли дать переменную вместо копирования кода (как и для двух кругов)?