鲸鱼的冒险-Scratch运动游戏

游戏创作说明

本次要创作的Scratch作品是《鲸鱼的冒险》,游戏中的主角虎鲸在海洋中捕食猎物,它的猎物有鲑鱼和海豹,但同时也需要时刻注意躲避海洋垃圾,一旦碰到海洋垃圾就会死亡,游戏结束。

游戏的操作方式非常简单,玩家可以使用方向键“↑”、“↓”、“←”、“→”来控制着虎鲸移动,每吃掉一条鲑鱼就得2分,而吃掉一头海豹则得5分,碰到海洋垃圾就结束游戏。

完整的效果如视频所示:

鲸鱼的冒险作品效果

编程思路

游戏一共有4个角色,它们分别是鲸鱼、鲑鱼、海豹和海洋垃圾,我们可以分角色逐个来编程实现。4个角色都和运动有关,因此本作品的核心是如何实现角色的运动编程,其中鲑鱼和海豹还涉及到克隆技术。

程序设计

打开Scratch编程软件,将默认的小猫角色删除掉,并导入相应的舞台背景和4个角色。

1.虎鲸的上下左右移动

虎鲸是一种智商极高的动物,情感丰富,语言系统强大。有时虎鲸甚至会捕食其它鲸鱼或鲨鱼,是当之无愧的海中霸王。

角色初始化

在Scratch编程中,我们要养成初始化的习惯,即对角色进行一些初始设置,确保游戏有一个明确稳定的初始状态,常见的初始化设置包括角色的位置、方向、大小、造型和旋转方式等。

这里,我们只需要对位置、方向、旋转方式进行设置即可,如图所示:

虎鲸角色初始化代码
虎鲸角色初始化代码

四个方向自由移动

在Scratch中,要实现角色的运动,有三种方式:

  • 使用在1秒内移动到(x,y)或1秒移动到某角色位置
  • 使用面向方向 + 移动10步指令
  • 使用将x坐标增加或者将y坐标增加指令

其中,第二种和第三种方式都需要结合循环来实现,我们要根据实际需要来选择使用哪种方式,如果角色只是左右移动或者上下移动,使用第三种方式,也就是改变坐标的方式最为简单。

由于我们是在按下方向键的时候,虎鲸才运动,所以需要使用按键侦测指令来检测是否按下方向键了,编写代码如下:

按键实现虎鲸上下左右移动
按键实现虎鲸上下左右移动

针对这段程序,需要注意两点:

  • 在Scratch中,没有将x坐标减小和将y坐标减小指令,不过我们可以使用负数来解决这个问题,增加一个负数,比如-10,就相当于是减少了,这样可以节省不少指令,非常的灵活。
  • 在左移和右移的时候,还设置了方向,这是确保虎鲸的造型和运动方向是一致的,不至于出现往后退的情况,同时由于造型翻转了,必须要将旋转方式设置为左右翻转,否则就可能出现倒着走或者根本不翻转的奇怪现象,所以在初始化时加入了将旋转方式设置为左右翻转指令。

2.鲑鱼

鲑鱼,又称三文鱼,常见生活在太平洋、大西洋,属溯河洄游性鱼类。溯河产卵洄游,需要经过长途跋涉,才能到达产卵场产卵,也是虎鲸比较喜欢的食物。

鉴于这里的鲑鱼有很多条,我们需要考虑如何让舞台上同时出现多个相同的角色呢,一般来说方法有两种:

  • 复制多个角色
  • 使用克隆机制

两种方法都可以实现我们想要的结果,很显然,使用克隆更为简单一些,因此,我们使用克隆来实现鲑鱼的功能,克隆分两步机进行,分别是生成克隆体,然后在对克隆体进行编程。

生成克隆体的代码如下:

克隆鲑鱼角色
克隆鲑鱼角色

有了克隆体,还需要对克隆体进行编程,从而让克隆体动起来,这里仍然使用改变坐标的方式来实现鲑鱼角色的运动,编写代码如下:

鲑鱼克隆体的运动代码
鲑鱼克隆体的运动代码

这里使用了一个小技巧,就是先对克隆体的位置进行随机,再判断其位置是在舞台的左边还是右边,如果是左边,那就从舞台最左边开始运动到舞台右边,反之就从舞台最右边移动到最左边,当到达对面舞台边缘的时候,就删除克隆体。

3.海豹

海豹,有着蓝黑色斑点,头近圆形,眼大而圆,是虎鲸喜欢的食物。

海豹角色的效果和鲑鱼基本上是一样的,可以直接将鲑鱼角色的代码复制过来,如下所示:

海豹角色代码-鲸鱼的冒险
海豹角色代码

4.海洋垃圾

虎鲸作为海洋中的霸王,它们所面对的危险不是更强大的猎手,而是人类垃圾对海洋的污染,一定要将垃圾分类扔进垃圾桶哦。

我们这里使用塑料瓶子来表示海洋垃圾,这里只设置了一只塑料瓶子,所以不需要克隆,其运动实现方式和鲑鱼类似,因此可以借鉴鲑鱼角色的实现方式,编写代码如下:

塑料瓶角色代码-鲸鱼的冒险
塑料瓶角色代码

5.计分功能及结束机制

4个角色的运动效果都有了,接下来需要添加计分功能了,这里设定每吃掉一条鲑鱼得2分,吃掉一头海豹得5分,首先建立一个全局变量,将其命名为分数,同时对分数进行初始化,将其放在虎鲸角色的绿旗指令下方即可,如图:

变量初始化
变量初始

然后在鲑鱼中添加代码如下:

吃到鲑鱼得分代码
吃到鲑鱼得分代码

注意,这里使用了等待条件指令,而不是循环指令嵌套条件指令,针对这种只需要判断满足条件的情况,使用等待条件指令更为简单。

同理,在海豹角色中编写代码如下:

吃到海豹得分代码
吃到海豹得分代码

当鲸鱼碰到塑料瓶时,游戏结束,切换到虎鲸角色,添加代码段如下:

结束机制代码实现
结束机制代码实现

6.添加背景音乐

最后,我们给整个游戏添加一个背景音乐,切换到舞台背景,先添加一个音效,比如cave,再添加代码块如下:

背景音乐代码实现
背景音乐代码实现

创作总结

本次的Scratch游戏创作到这里就结束了,整个作品代码量为110左右,不算很难,重点注意如下两点:

  1. 实现角色的运动有3种方式,尽量使用最简单的方式来实现
  2. 针对只需要一次判断的情况,优先使用等待条件指令,简化代码,这样就不需要使用重复指令嵌套条件指令了,非常好用。

针对本作品,你还可以添加更多的鱼类,比如鲨鱼,也可以充分发挥自己的创意,进行二次创作。有需要源代码的读者,可以联系本作者。

© 版权声明
THE END
喜欢就支持一下吧
点赞14赞赏
分享
评论 抢沙发
diamondwang的头像-51scratch

昵称

取消
昵称表情代码图片