Как повернуть движущееся изображение в андроиде

Я разрабатываю игру для Android. В этой игре некоторые поезда движутся по рельсам. Я могу перемещать поезда по горизонтали и вертикали, используя два изображения поезда для горизонтального поезда и вертикального поезда отдельно.

Теперь я хочу переместить поезд, который идет по горизонтальному пути, на вертикальный, я хочу визуализировать его, когда он поворачивает и движется по вертикальному пути.

как я могу это сделать, мне нужно использовать так много изображений для каждого поворотного пикселя, или есть другой способ повернуть поезд.

Пожалуйста, предложите Спасибо.

Изменить:

я использую рисование для рисования() изображения и обновление() для изменения его положения.

public void draw(Canvas canvas) {
        canvas.drawBitmap(bitmap, x - (bitmap.getWidth() / 2), y - (bitmap.getHeight() /2), null);
    }

public void update() {
        if (!touched && !paused && !isDrag) {
            x += (speed.getXv() * speed.getxDirection()); 
            y += (speed.getYv() * speed.getyDirection());
        }

        if (!touched && !paused && isDrag) {
            x += (speed.getXv() * speed.getxDirection())* 2; 
            y += (speed.getYv() * speed.getyDirection())* 2;
        }
    }

person Romi    schedule 13.12.2011    source источник


Ответы (1)


Вероятно, ваш вопрос принадлежит http://gamedev.stackexchange.com.

Но, предполагая, что вы используете какой-то Canvas, у него есть метод, который применяет вращение вокруг определенной точки. http://developer.android.com/reference/android/graphics/Canvas.html#rotate%28float%29

person Gunslinger    schedule 13.12.2011
comment
Я попробовал Canvas.rotate(), но он не работает :(, пожалуйста, посмотрите на мое редактирование, я добавляю код - person Romi; 13.12.2011
comment
Не работал как? Вы вращались вокруг центра поезда? Если вы используете метод rotate(float angle), он вращается вокруг (0,0). gamedev.stackexchange.com/questions/15933/ - person Gunslinger; 13.12.2011
comment
поэтому используйте: rotate(90, train.getX(), train.getY()) вместо этого. - person Gunslinger; 14.12.2011