上一篇文章讲了一个简单的大鱼吃小鱼游戏,实现了小鱼的游动,以及大鱼碰到小鱼就吃掉它。
那今天难度升级一下,加上比我们更大的鱼,碰到就结束游戏。
然后我们再加上得分,每吃一条鱼就加一分,超过10分代表游戏胜利。
我们要从角色库选择一条鱼作为大的鱼,我选的是鲨鱼。
还要添加三个背景,一个海底的背景,用于游戏过程中,还有一个胜利、一个失败的背景,分别用于两种不同的情况结束游戏。
首先大鱼的移动和小鱼很相似,我们可以调整一个和小鱼不同的面向方向,也可以调整移动的步数。
然后大鱼如果碰到自己的鱼,那就直接游戏结束,我们用一个如果那么的判断,如果碰到了自己的鱼,那么就切换一个背景,表示游戏失败,并且我们要结束掉全部的程序。
我们有了背景的切换,那每次开始程序就需要把我们设定好的海底的背景换回来,不然会一直在失败页面。
那我们的得分怎么实现呢?
得分是一个变化的量,一分、两分、三分。。。
所以我们用一个变量来表示,所以接下来建立一个适用于所有角色的变量,起名叫做“得分”(变量的建立在之前的文章讲过,这里就不赘述了)。
那我们什么时候得分会变化呢?肯定是我们自己的鱼吃掉了小鱼以后,就加一分,我们之前吃到鱼发过一次消息,那我们还是在接收到这个消息以后让得分加一。
那得分的增加有了,我们还需要对胜利进行一个判断,如果得分大于10分了,那么就切换成胜利的背景,并且也是结束所有程序。
这一段程序写给哪个角色都可以,因为我们的设置的变量是所有角色都可以操作的,我把这一段写给了我们自己的鱼。
胜利有了,但是我们如果重玩一局,那得分还是之前的得分,我们需要每次开始游戏都把得分清零,方便我们游玩,用变量里的“将得分设为0”就可以实现。
到现在为止我们的任务就完成了。
但是之前的任务有一个小细节忘了说,那就是我们在吃到小鱼的时候,小鱼会隐藏,我们如果在小鱼隐藏的时候结束游戏,那么小鱼就不会再出现了,所以每次开始程序,我们都让小鱼显示出来。
所以我们最终的程序如下图:
那其实大鱼吃小鱼还可以再好玩一些,那就是我们得分每增加10分,就让我们的鱼变模样,并且可以吃之前只比自己大一点的鱼,这样就更接近我们玩过的大鱼吃小鱼了,有兴趣的可以尝试一下。