创建可点击的网格正方形



我想要一些关于我正在创建的"战舰"类型游戏的帮助。我有一个7x7的白色方块网格,我把它放在点击代码下面,这样当我点击方块时,就会出现一张图片。我已经使用if语句,例如if(mx>xxx && mx<xxx && my>xxx &my<xxx)等。主要问题发生在这里:

我试图在网格顶部添加其他白色方块,这样当我点击这些方块时,我在画布上记录的分数变量就会上升。因此,当我点击一个随机放置在其他网格正方形顶部的正方形时,分数会上升10分,无论它值多少。我一点击它,分数就会上升,然后我的战列舰就会出现,就好像它被点击了一样。我想知道如何用4艘不同的战列船来做到这一点,它们使用网格中的一个正方形来显示。

此外,我想知道,一旦我的"鸭子"——我为战列舰替补的鸭子——全部找到,该如何结束比赛。。。

这是我的想法:

while(ducks == not found){
REDO GAME   
}
if(ducks == found){
display(“Congratulations”,100,100,100,100)
ctx.drawImage(rain, 0,0,0,0)
}

请帮忙!提前谢谢!

我建议创建一个单独的变量game_state来保存当前游戏状态。

例如,这个game_state可以是一个有三个值的整数:

0-设置;1-正在播放;2-完成

或者任何你觉得有用的东西。稍后您可以查找&将integer更改为enum。

在处理点击结束时检查获胜条件。如果满足条件,则将状态更改为"已完成",并显示获胜消息。

您可以检查状态"正在播放"&跳过处理任何点击,直到游戏状态再次更改为"正在玩",例如可以通过"新游戏"的其他按钮来完成。

希望能有所帮助。

最新更新