如果我随后移动鼠标,则在鼠标单击后触发移动的对象停止移动

制作一个简单的游戏,我点击屏幕,火箭由于点击而从左向右移动。当我单击时,它从鼠标Y获得其y位置,并具有初始化的x,该x在单击后开始更改。问题是简单地移动鼠标,而对象正在移动,导致它停止,另一个问题是按住鼠标左键使y与moeY不断变化,我不想要。再次单击会使对象从其离开的 x 位置移动,并跳转到新的 mouseY。我希望在第一次单击后设置 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();

}


婷婷同学_
浏览 42回答 1
1回答

繁华开满天机

添加一个声明火箭启动时间的属性,并向类中添加一个更改 y 坐标并启动火箭的方法:Rocketclass Rocket{&nbsp; &nbsp; boolean started = false;&nbsp; &nbsp; // [...]&nbsp; &nbsp; void setY(int newY) {&nbsp; &nbsp; &nbsp; &nbsp; this.y = newY;&nbsp; &nbsp; &nbsp; &nbsp; started = true;&nbsp; &nbsp; }&nbsp; &nbsp; void mouseClicked() {&nbsp; &nbsp; &nbsp; &nbsp; if (started) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; this.x = x+5;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; }}&nbsp;实现鼠标按下,它在对象上设置 y 坐标:rocketvoid mousePressed() {&nbsp; &nbsp; if (mouseButton == LEFT) {4&nbsp; &nbsp; &nbsp; &nbsp; rocket.setY(mouseY);&nbsp;&nbsp;&nbsp; &nbsp; }}&nbsp; &nbsp;请注意,该事件仅在按下鼠标按钮时发生一次。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java