当对象进入网格时,销毁网格中存在的图像对象

时间:2013-07-18 11:00:23

标签: java slick2d

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

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

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

我也试过

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

因此,一旦精灵在网格中,分数就会继续递增。一旦我的精灵在特定网格中,我只想增加“1”。

任何帮助都将受到高度赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

通常您的grid[y][x]会包含表明其中的值的值?这可以是enum,其值为EMPTY,WALL或FRUIT。

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

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

你应该有一个水果图像或ImageBuffer - 它没有任何特定的位置,但作为一个离屏源,render()函数可以在需要时绘制它。这并不代表任何单一的水果,因此它不会被破坏 - 它也没有位置。

与精灵(对于怪物/玩家等)不同,水果不会在屏幕上单独动画/定位。