2016-02-06 5 views
0

Я пытаюсь создать игру, в которой игрок иногда должен вращаться, но я не могу понять, как заставить его вращаться больше каждый раз, вот что у меня есть: Graphics2D g2d = (Graphics2D) g;Вращающееся изображение в java

AffineTransform at = new AffineTransform(); 

    at.translate(300, Main.height - 115); 

    if(rotateright) { 
     at.rotate(Math.PI/15); 
    } else if(rotateleft) { 
     at.rotate(Math.PI/15); 

    } 

    at.scale(0.125, 0.125); 

    at.translate(-texture.getWidth()/2, -texture.getHeight()/2); 

    g2d.drawImage(texture, at, null); 

Этот метод позволяет вращать просто отлично, но я не могу найти способ, чтобы сделать его вращаться каждый раз, так что этот метод в значительной степени только вращается, но только один раз, а затем он просто останавливается. Есть ли способ добавить к вращению или что-то еще?

+0

Отслеживайте текущее значение вращения, основанное на скорости вращения и времени, в течение которого объект вращался, а затем просто визуализируйте объект под своим текущим углом. Что-то вроде [этого] (http://stackoverflow.com/questions/26005726/rotate-an-animated-gif-imageicon-using-affinetransform/26006540#26006540) – MadProgrammer

ответ

2

Вы всегда начинаете с изображения при нормальном вращении (0 град./RAD повернули), а затем излучаете его PI/15 RAD. если вы хотите, чтобы он вращался со временем, вам нужно будет умножить PI/15 со значением, которое будет меняться в течение продолжительности вашей анимации.

+0

Большое вам спасибо, это решило мою проблему! – ItzBenteThePig