Привет, я разрабатываю игру в android, для этого у меня есть 8 * 8 прямоугольников с использованием метода canvas.drawRect(), теперь мне нужно, когда пользователь касается любого из прямых, его цвет должен измениться. Для этого я сделал следующее.Обновление Canvas Preserving Old Canvas Details
public boolean onTouchEvent(final MotionEvent event) {
handleTouches(event.getX(), event.getY());
return false;
}
public void handleTouches(float x, float y) {
xLocTouch = (int) x;
yLocTouched = (int) y;
outerLoop: for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
if (GameView.tiles[i][j].rect.contains(xLocTouch, yLocTouched)) {
touched = true;
xTouched = i;
yTouched = j;
break outerLoop;
}
}
}
}
protected void onDraw(Canvas canvas) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
canvas.drawRect(tiles[i][j].rect, paint);
canvas.drawRect(tiles[i][j].rect, p);
if(touched && i==xTouched && j == yTouched) {
Paint touchedColor = new Paint();
touchedColor.setColor(Color.BLUE);
canvas.drawRect(tiles[i][j].rect, touchedColor);
}
}
}
Этот код работает правильно, но проблема в том, когда я касаюсь в первый раз, что изменения цвета Rect, но для второго прикосновения он стирает старые позиции прикасаются. Мне нужно, чтобы все коснувшиеся прямые были разными. Есть ли способ для этого?
thanx.this работает – programr