当玩家击中食物时让它消失

When the player hits the food make it disapear

我是编程的新手,所以请大声笑。我们的老师给了我们一个游戏,我们需要在其中添加一些元素。在这个游戏中,我们有一个玩家、一些敌人和一些用长方形做成的食物。如果玩家击中食物,我希望食物在 window 的其他地方生成。这是我试图实现它的代码:

 private void updateFood(){
     for(int i = 0; i < food.length; ++i)
    {
      //Should we follow or move randomly?
      //2 out of 3 we will follow..
      if(rnd.nextInt(3) < 2)
      {
        //We follow
        int dx = player.getX() - food[i].getX();
        int dy = player.getY() - food[i].getY();
        if(abs(dx) > abs(dy))
        {
          if(dx > 0)
          {
            //Player is to the right - opiste
            food[i].moveLeft();
          }
          else
          {
            //Player is to the left - opiste
            food[i].moveRight();
          }
        }
        else if(dy > 0)
        {
          //Player is down; - opiste
          food[i].moveUp();
        }
        else
        {//Player is up; - opiste
          food[i].moveDown();
        }
      }
      else
      {
        //We move randomly
        int move = rnd.nextInt(4);
        if(move == 0)
        {
          //Move right
          food[i].moveRight();
        }
        else if(move == 1)
        {
          //Move left
          food[i].moveLeft();
        }
        else if(move == 2)
        {
          //Move up
          food[i].moveUp();
        }
        else if(move == 3)
        {
          //Move down
          food[i].moveDown();
        }
      }
      if(food[i].getX() == player.getX() && food[i].getY() == player.getY()){
        food[i].getX() = random(0,width);
food[i].getY() = random(0,height);


      }
    }
  
    
  }

最后 10 行(左右)是我遇到问题的地方。

    if(food[i].getX() == player.getX() && food[i].getY() == player.getY()){
        food[i].getX() = random(0,width);

food[i].getY() = random(0,height);

关于您的 food[index] 对象具有哪些方法的信息有限,我猜测 .getX() 是 read-only,这意味着您无法为其设置值。要么找到一个 .setX(number) 方法,要么使用现有的 .moveLeft/Right/Up/Down(number) 和一些数学。