我们用 Scratch 设计的各种游戏,归结起来,基本有这么几类:
- 射击类的。飞机打飞机,坦克打坦克,战士打僵尸,好人打坏蛋;横着打,竖着打,转圈打,第一人称打,看你想怎么打。

- 平台类的。超级玛丽横着跑,英雄塔楼竖着跳,大家都是在一个平台上跑来跳去,掉在平台外面就Game Over 了。

- 桌面类的。小猫走个迷宫,小鸟砸个猪头,球拍接个弹球,这些都是从桌面游戏的玩法发展出来的。

- 竞速类的。赛车,赛马,赛跑,有时候还需要躲避个障碍啥的。

- 角色扮演类的。勇者斗恶龙,林克救公主,到处打怪升级,翻箱倒柜……

当然还有塔防类啊,音乐类啊,体育类啊,等等,不一而足。
在我们设计这些游戏的时候,都有一个基本的功能要做,就是用键盘控制游戏里的角色。
今天我们就一起来学习一下,有哪些常用的控制方法。
第一种:最简单的控制
难度系数:★☆☆☆☆
如上图。这是最简单的控制方式。按不同的方向键,就让角色朝向不同的方向,只要按键不松开,角色就一直前进。
你可能会碰到角色来回颠倒的情况,只要在角色列表里点击角色左上角的蓝色小 i ,将旋转模式由第一个转圈(任意模式)改为第二个(左右翻转)或第三个(不旋转)就可以了。
但是实际上,这种控制方法在游戏设计当中几乎不可用,因为太不灵活,特别是当你需要角色斜着走的时候,这种方法让你想砸电脑。
不过,这种控制方式也不是完全不可取,特别是当你不想让角色斜着走,就要横平竖直的移动的时候,它就排上用场了,但是要稍微改造一下,不然还是太不灵活。
第二种:贪食蛇控制法
难度系数:★☆☆☆☆
这种控制法最经典的一个应用场景就是《贪食蛇》游戏,Alex 老师管它叫贪食蛇控制法。在贪食蛇游戏里,我们只需要那条蛇横着走,或者竖着走,不能斜着走,但是要一直走。程序如下图。
第一部分是给角色做初始化(确定游戏开始时角色的状态,包括位置、大小、显示与否等等。以后会有专门解释初始化的课);第二部分让角色在程序开始时就开始移动,不需要玩家控制。第三部分用键盘控制方向。
这个时候有些孩子要问了:第一部分和第二部分难道不能连在一起吗?
理论上当然可以,但是我们也要追求一种东西,叫做“程序的可读性”。
什么是“程序的可读性”?就是要让别人一看就能明白。我们把不同功能的代码分成不同的模块分开放置,最好再加上注释,这样我们把代码交给别人,即便别人没有参与代码编写,也很容易看懂。
那孩子又会问了:为什么要强调可读性?为什么要让别人看懂?我自己懂不就行了嘛?
并不是。现在我们编写的程序小,一个人就能搞定,确实自己看懂就行了。但是以后我们写的程序越来越复杂,越来越庞大,一个人根本搞不定,需要很多人来共同完成,“可读性”就特别重要了。所以我们要从现在就开始,养成良好的编程习惯。
第三种:坦克控制法
难度系数:★★☆☆☆
会了前两种控制法的基础,我们就可以玩坦克的控制方法了。(为了降低难度,这里忽略了坦克炮塔的独立控制。以后我们用专门一课做复杂的坦克控制)
坦克是个笨重的大家伙,运动迟缓,原地转圈。为了模拟这个特点,我们可以用左右方向键让坦克旋转,用前后方向键让坦克前进或后退。开做!
首先,我们需要一个坦克。
“哎呦哪来的坦克?角色库里没有啊!”
“没错,这是 Alex 老师自己画的坦克。Scratch 的矢量绘图工具其实能画出挺不错的东西呢。以后开课教你。”
网友评论