-1

我正在学习游戏编程。我正在尝试制作类似于 Pacman 的游戏。我用 x[] 和 y[] 制作了一个网格(不使用平铺)。当精灵在特定网格中时,我想销毁它的食物项目,这是网格内的图像,并加 1 得分。我尝试使用 image.destroy(); 方法,但没有奏效。

我试过了,而不是破坏图像来改变它的位置。

image.drawImage(图像,x+25,y+25); 只要我在特定网格内,它就只会创建一个新对象。
游戏循环不会让我破坏图像或将其移出屏幕。

我也试过

如果(精灵在网格中){score=score+1;}

所以一旦精灵在网格中,分数就会不断增加。一旦我的精灵在特定的网格中,我只想增加“1”。

任何帮助将不胜感激。谢谢。

4

1 回答 1

0

通常你grid[y][x]会包含指示那里有什么的值?这可以是一个enum值为 EMPTY、WALL 或 FRUIT 的值。

因此,当玩家进入带有 的单元格时grid[player.getY()][player.getX()] == FRUIT,将该单元格清除为 EMPTY,将分数加 1,并使屏幕上的网格矩形无效。

然后 render() 方法将检查 grid[],发现它是空的......并且没有绘制任何水果。

您应该有一个水果图像或 ImageBuffer——它没有任何特定位置,但充当 render() 函数的屏幕外源,以便在需要的地方绘制它。这不代表任何一个水果,所以它不会被破坏——也没有位置。

与精灵不同(对于怪物/玩家等),水果不会被单独动画/放置在屏幕周围。

于 2013-07-28T02:51:21.207 回答