Я новичок в том, что касается Java, и я столкнулся с проблемой, решение которой пока не нашел.Дело в том, что у меня есть рабочие методы для рисования буквы, а также для ее вращения - когда я устанавливаю вращение, оно работает так, как должно.Однако я хотел бы сделать это немного более интерактивным, в школе нам дали базовую основу для этого - я смог создать кнопку, которая при нажатии на нее меняет угол буквы и правильно перерисовывается.Но я бы хотел сделать это анимацией, например, если вы нажмете кнопку, и в течение 10 секунд (или до тех пор, пока вы не нажмете кнопку снова), буква будет вращаться.
В интернете я нашел способ выполнить действие через определенный промежуток времени, и я подумал, что буду использовать это.Я хотел добавить угол и перерисовать изображение, скажем, через 1 секунду, затем оно повторилось бы - я думал, что это заставит его выглядеть как анимированный.Но я был неправ.Я попробовал так много способов сделать это, лучше всего было то, что после нескольких секунд, которые я установил, я хочу, чтобы анимация работала, она меняла угол и перерисовывал, к сожалению, это было конечное состояние, и оно не рисовало состояния междусоздать анимацию.И этот последний код даже не делает этого, программа просто зависает.
int animation = 0;
int steps = 0;
public void G_draw() {
graphic.clear();
if (animace==1)
{
animation();
}
letter('a', G_Color.G_cBlack, 2, 2);//drawing an letter
}
public void G_mousePressed(G_Button button, int x, int y) {
if (button.equals(G_Button.B_LEFT)&&x>700&&x<750&&y>500&&y<520){
animation=1;
G_draw();
}
}
public void animation() {
long start = System.currentTimeMillis();
long end = start + 2 * 1000;
while (System.currentTimeMillis() < end) {
}
langle+=30; // adding an angle
steps++;
G_repaint();
G_draw();
if (steps<4) animace();
}