
今天我们用Scratch制作一个简易的抓娃娃游戏机。
首先准备角色与背景,在舞台上方用一条黑色线条来充当娃娃机上的轨道,左下角的黑色长方体用来放置抓到的娃娃,剩下只要准备爪子角色与公仔角色即可。

爪子的造型要绘制开合两个不同的图案,分别代表抓取前和抓取后的效果。从角色库中选些小动物作为娃娃机中的娃娃公仔,公仔的大小、位置和数量需要灵活设置。公仔数量先不要太多,以免到时候一抓就能抓一大把,减少游戏的趣味性。


接下来实现抓取娃娃的过程,确定游戏玩法:键盘上的A和D用来控制爪子的左右移动,按下S键放下爪子抓取娃娃。抓到娃娃之后,娃娃会随着爪子回到起点,爪子将娃娃投入到黑色篮筐中。当程序运行之后游戏中的爪子可以一直进行抓取公仔的操作,所以我们所有的程序肯定都是写在一个循环中的,当我们按下A键时,我们可以判断爪子的X坐标是否大于我们设定的数值范围,这个数值来自爪子的宽度,将X坐标减少5,同理当我们按下D键时,X坐标增加5。
爪子左右移动很简单,这个游戏难点在爪子抓取公仔时的动画过程中有一个绳子。按下S键,将画笔工具调整成和爪子一样的粗细和颜色,循环35次,爪子向下移动(Y坐标减小),移动到预定位置后,切换为爪子收缩的造型。等待一秒钟后,爪子回归(Y坐标增加)。
爪子回归到轨道高度之后,继续将爪子移动回初始位置,然后将爪子切换为造型1。这一过程中需要注意调整画笔的颜色与粗细,以免看起来不协调。
娃娃公仔用克隆方式,先设定3个娃娃(数量先少一点),当克隆体启动时,将这些娃娃随机移动到舞台中,当爪子触碰到娃娃后,等到1秒,娃娃跟随爪子移动(移动到爪子的X、Y坐标),最终掉落到黑色的篮筐中。

通过Scratch我们制作了一个简易的抓娃娃机,真实的娃娃机的玄机还没有体现出来,就是移动途中控制爪子的开合力度。如何实现这个效果你可以自己动手试试看。