当玩家击中食物时让它消失
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)
和一些数学。
我是编程的新手,所以请大声笑。我们的老师给了我们一个游戏,我们需要在其中添加一些元素。在这个游戏中,我们有一个玩家、一些敌人和一些用长方形做成的食物。如果玩家击中食物,我希望食物在 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)
和一些数学。