我正在学习游戏编程。我正在尝试制作类似Pacman的游戏。我用x []和y []制作了一个网格(不使用平铺)。当精灵在一个特定的网格中时,我想要破坏它的食物项目,这是一个网格内的图像,并加1得分。我试着用image.destroy();方法,但它没有奏效。
我试过,而不是破坏图像来改变它的位置。
image.drawImage(图像中,x + 25,y + 25); 只要我在特定的网格中,它只会创建一个新对象 游戏循环不会让我破坏图像或将其移出屏幕。
我也试过
if(精灵在网格中){score = score + 1;}
因此,一旦精灵在网格中,分数就会继续递增。一旦我的精灵在特定网格中,我只想增加“1”。
任何帮助都将受到高度赞赏。感谢。
答案 0 :(得分:0)
通常您的grid[y][x]
会包含表明其中的值的值?这可以是enum
,其值为EMPTY,WALL或FRUIT。
因此,当玩家进入grid[player.getY()][player.getX()] == FRUIT
的单元格时,将单元格清除为EMPTY,将1添加到分数,并使屏幕上的网格矩形无效。
然后render()方法将检查grid [],发现它是空的..而不是绘制任何水果。
你应该有一个水果图像或ImageBuffer - 它没有任何特定的位置,但作为一个离屏源,render()函数可以在需要时绘制它。这并不代表任何单一的水果,因此它不会被破坏 - 它也没有位置。
与精灵(对于怪物/玩家等)不同,水果不会在屏幕上单独动画/定位。