Scratch在做简单的2D平面小游戏时非常方便。格斗游戏是其中一大类,而人物的移动又是基本的要素。本篇要做到能够控制人物左右移动、原地跳跃和蹲下的基本动作。
首先开启Scratch,在下方角色栏点击上传角色档案,将五个基本动作图都汇入。(Scratch的好处为中文档名不会有乱码,且当汇入GIF时,在造型区会列出该图的连续动作图片,非常方便。)
接下来进入到程序区,定位起始点,选择角色区里的等待,拖曳角色至左下角适当的位置,点选动作,并将X、Y坐标勾选,便可看到该图片的坐标位置,最后放入程序积木,概念是:执行程序时,显示角色并移到起始位置,后面的四个动作图片也以同样的方式放入程序(图1)。
接着要让图片先在原地动起来,除了等待外,其他四张图片分别在按上、下、左、右键时能动起来。在背景里的程序区定义四个动作的变量并设为0,按下特定按键讓特定动作的变数变为1。然后在角色里的程序区设定变量为1就换「下一个造型」(图2)。
再来让我们的角色能够往前移动,加入「移动10步」(后退则「移动-10步」),并放入IF…ELSE设定在接近边缘时,将X坐标设为200,这样可以做到不超出边缘的效果(图3)。
到这里会发生一个问题,也就是当同时按下两个按键时会有分身的情况,要解决这个问题,需将条件设定严格一点「如果其中一个变量为1且其他变量为0时,才显示造型」,背景程序区也要更改为「按下按键时,该变量为1,其他为0」。
在等待的设定,人物不动的时候显示等待,如果前进、后退、蹲下、跳跃才隐藏。前进和后退都会改变图片的位置,所以当前进或是后退时,等待的图片都要移到该位置才行。最后,跳跃的设定较为特殊(图4),因为当单击按键时,就要播放完整的跳跃动画,而在这过程当中,跳跃变量都要设为1,直到动画结束才将变量设为0。
到这里您的人物已经可以前进、后退、跳跃、蹲下了!