Создание простой игры, в которой я нажимаю на экран, и ракета движется слева направо из-за щелчка.Он получает свою позицию y от mouseY, когда я щелкаю, и имеет инициализированный x, который начинает меняться после щелчка.Проблема заключается в простом перемещении мыши, когда объект движется, что приводит к его остановке, а другая проблема, связанная с удерживанием левой кнопки мыши, заставляет y постоянно менять мышью Y, чего я не хочу.Повторное нажатие заставляет объект перемещаться из положения х, где он остановился, и переходит к новой мыши Y.Я хочу, чтобы Y был установлен после первого клика.Как бы я исправить эти проблемы?заранее большое спасибо за любую помощь.
Я действительно не знаю, что попробовать, потому что не знаю, что заставляет его перестать двигаться.
Класс ракеты
class Rocket
{
int x = -100;
int y;
void render()
{
fill(153,153,153);
rect(x,y,40,10); //rocket body
fill(255,0,0);
triangle(x+60,y+5,x+40,y-5,x+40,y+15); //rocket head
triangle(x+10,y+10,x,y+15,x,y+10); //bottom fin
triangle(x+10,y,x,y,x,y-5); //top fin
fill(226,56,34);
stroke(226,56,34);
triangle(x-40,y+5,x,y,x,y+10); //fire
fill(226,120,34);
stroke(226,120,34);
triangle(x-20,y+5,x,y,x,y+10); //fire
}
void mouseClicked()
{
if (mouseButton == LEFT)
{
y = mouseY;
this.x = x+5;
}
}
void update()
{
render();
mouseClicked();
}
}
Основной эскиз
ArrayList<Alien> aliens = new ArrayList<Alien>();
Rocket rocket;
void setup()
{
size(1200,900);
for (int i = 0; i < 5; i++)
{
aliens.add(new Alien());
}
rocket = new Rocket();
}
void draw()
{
background(0);
moon();
for (int i = aliens.size()-1; i >= 0; i--)
{
aliens.get(i).update();
if (aliens.get(i).CheckHit())
{
aliens.remove(i);
}
}
rocket.update();
}