Scratch海底世界小游戏开发入门

一.说明

本文小游戏《海底世界》的题材是针对小学三年级(及更高年级)小朋友学习Scratch编程入门而准备的。

尽管网络上(甚至是官方)的解释是,Scratch适合于6岁及以上小朋友编程。但是,根据本人的初步试教,感觉这个结论有些牵强。假设小朋友6岁上一年级,那么我们知道,一年级的数学大纲要求是学完20以内加减法。至于以内加减法,则等到二级结束后才学完。因此,对于数轴、坐标及正负数概念,一、二年级小学生根本没有认识,这使得针对他们的Scratch教学提出了严峻挑战。对于正负数,你可以勉强解释说,正数向某个方向(例如右边)越来越大,而负数则朝着相反方向越来越小。但是,如果涉及到坐标(一对实数)及角度概念,则实在难以找出生动形象的适合他们理解的例子。

如果仅针对一年级施教Scratch,建议以增、删、改角色,以及较细致的卡通绘制为主要教学内容。

针对三年级及以上小朋友,在试教本文《海底世界》小游戏时效果很令人满意(我把这一个内容当作他们这个层次的小朋友学习Scratch编程的第一次试听课)。从他们的数学背景知识来讲,三年级及以上小朋友都有了良好的数轴、坐标系、正负数及角度的概念(当然,与初中的平面直接角标系及三角函数知识深度还不能相提并论)。因此,施教起来,颇感得心应手。

二、游戏情景描述

因为是入门级设计,本游戏仍然设计得极其简单。在花花绿绿的深海处,有一群形形色色的小鱼游来游去。水母和海星也跑来凑热闹。但是,胆小的海星每当碰到水母又怪又长的触角,只能尖叫着跑得远远的。但是,贪玩的小海星一会儿就会忘记这个茬,再一次一次地凑到水母的附近……憨厚的水母倒是不和她一般见识。小玩家也可以通过按下键盘上的上下左右四个箭头键来向这四个相应方向移动水母,从而躲开玩皮的小海星一次次烦人的叫嚷……每当小海星碰到一次水母,游戏面板上的得分加1。游戏就这样一直进行下去。严格来说,这远远不够一个游戏级别,但是作为第一次试听课,其涉及的知识点实在不少,同时又能增加小朋友对学习Scratch编程的信心与兴趣。一如既往,我们先给出本小游戏运行的两幅截图。

小海星遭遇到可怕的水母即将掉头跑快照移动水母位置及海星碰到右边缘时快照

三、游戏设计

(一)角色设计

本游戏中仅有4个角色,它们分别是小鱼1、小鱼2、水母、小海星。因为这些角色都来自于Scratch自带的角色库,所以在此不再列举(见上面截图),其对应的造型当解释代码时再作介绍。

(二)变量设计

本游戏只有一个变量“得分”,用于记录当小海星碰到水母的触角时加分时使用(每碰到一次加1分)。

(三)碰撞检测

碰撞检测几乎是多角色游戏中经常使用到的技巧。Scratch3.6在这方面提供了非常丰富的支持(以后的文章中我们会专门探讨这个问题)。本游戏中的碰撞检测非常简单,即只有当小海星移动中碰到水母这一种情形。为简单起见,小鱼与水母相接触、小鱼与海星相接触等碰撞检测我们暂不预考虑。

三、角色编程

下面,我们按照代码由简单到复杂的顺序来介绍各角色对应的代码片断。

(一)舞台的代码

给舞台增加代码是游戏系统初始化的最合适的位置。本游戏中,初始化只有一项任务,即把“得分”变量设置为0,如下图所示。

游戏开始之初“得分”变量设置为0

(二)小鱼1的代码

本游戏中,小鱼只是表现为时断时续地在海底随机位置游来游去。所以,代码非常简单,如下图所示:

小鱼在海底随机位置出现并游动的代码

小鱼2的代码与小鱼1的代码完全相同,在此不再列举。

(三)水母的代码

其实,从系统角色库中导入的水母自带了四种造型,我们的设计中仅使用了两种,即随着玩家按下键盘上的上下左右箭头键切换造型1与造型2,并相应地修改水母的坐标。在此一并给出这四个方向对应代码,如图所示。

按下键盘上箭头键移动水母的代码

(四)海星的代码

海星的编程有两部分代码。首先,在游戏开始后调整海星的方向,并设置旋转方式为“左右旋转”。然后,朝着对应的仅作水平方向移动,有关代码如下图所示。

海星左右方向移动及遇到边缘反向运动

注意,在此我们还使用了一种特殊的“运动”类积木——碰到边缘就反弹。本来向右运动,一碰到右边舞台墙壁,便改成沿相反方向(即向左)水平运动。有关方向的概念及更为复杂的方向编程,我们将在后续文章中作深入探讨。

第二部分代码使用到了碰撞检测技术,有关代码如下图所示。

海星重复运动及遭遇到水母时的代码

程序中,我们使用一个无限循环来一直检测海星是否与水母相撞,如果发生碰撞,则发生如下几个事情:

游戏积分加1海星改变成另一种造型(以示害怕)播放尖叫声方向改变度(模仿掉头就跑的情形)相应地修改海星的水平坐标位置滞留1秒(模拟惊魂未定)再切换成原来造型(再次镇定下来——胆子又大起来)四、小结

作为一次针对增强小学三年级(及更高年级)小朋友学习Scratch编程兴趣而设计的游戏案例,我感觉到这种题材及深度的案例的学习还是非常合适的。麻雀虽小,五脏俱全。本游戏中涉及的知识点并不少,包括:运动积木、事件积木、变量积木、声音积木、控制积木,等等。

但是,由于只是一种诱导,而且受时间限制,游戏中自然还有一些更有趣和更好玩的情节没有添加到其中。有兴趣的小朋友,可以在此基础上参考下面一些内容作进一步修改与扩展:

借助于克隆积木再增加一些游动的小鱼儿对小鱼儿与海星及水母的接触也设计碰撞检测动画并添加声效让一忍再忍的水母有时候也发怒,例如结合水母的四种造型并使用增大与还原体形的方式实现改变海星旋转的方向为“任意旋转”,等等



转载请注明地址:http://www.maquef.com/ylfz/11202.html
  • 上一篇文章:
  • 下一篇文章: