第8课 在Scratch中使用摇杆――猴子接香蕉
小猴子最喜欢吃香蕉。可是这次,它遇到了麻烦,调皮的香蕉被施了魔法,会随机地出现在不同的地方;让我们使用传感器板上的摇杆,帮助小猴子接香蕉,让它在规定时间内得到更多的香蕉。
模块与指令
要完成本课的创意构思,需要了解以下的新知识、使用以下的新指令:
摇杆
单击此处或者扫描下方二维码可以观看相关的视频。
摇杆可以前、后、左、右四个方向拨动,接收用户位移的数据,可以非常方便地控制角色在Scratch舞台上移动。
“读取摇杆X”指令:
读取传感器板上摇杆的X轴数值,取值范围(0,1023)。
“读取摇杆Y”指令:
读取传感器板上摇杆的Y轴数值,取值范围(0,1023)。
试一试
登录“好好搭搭”网站,连接传感器板,根据下表的要求操作,观察舞台上显示的摇杆数值,将不同状态下的摇杆数值记录下来。
单击此处或者扫描下方二维码可以观看相关的视频。
作品制作
作品制作
要完成本课范例,可以先添加舞台、角色,设置舞台和角色的初始状态,然后让香蕉随机地出现在舞台上,同时通过用户拨动摇杆,控制猴子在舞台上移动。如果猴子接到香蕉,会累积成绩,还可以设置游戏的持续时间,在规定的时间内接到的香蕉越多成绩越好。
第一步:设置舞台背景与角色
单击此处或者扫描下方二维码可以观看相关的视频。
1.通过“背景库”对话框添加“lake”图片作为舞台背景;再通过“角色库”对话框添加猴子(Monkey2)、香蕉(Bananas)角色;调整这两个角色的大小、将它们拖动到舞台的合适位置。
2.隐藏舞台上除“摇杆X”和“摇杆Y”以外,其它无关的传感器数值。
第二步:编写香蕉角色脚本
单击此处或者扫描下方二维码可以观看相关的视频。
香蕉是由程序自动控制、随机出现在舞台上,考虑到猴子都是在树林中活动,因此香蕉角色出现的位置应该只是舞台上的树木区域。当“香蕉”角色碰到“猴子”角色、或者停留一定的时间后自动消失,然后重新在新的位置出现。
想一想
范例程序中香蕉只有一支,如何使用“克隆”指令,让舞台上能够出现多支香蕉?
单击此处或者扫描下方二维码可以观看相关的视频。
第三步:编写猴子角色脚本
单击此处或者扫描下方二维码可以观看相关的视频。
猴子角色的脚本共有三段。其中第一段脚本通过检测摇杆的值,控制猴子在舞台上移动。
编写这段脚本时要注意:摇杆在不操作时,数值也会在一定的范围内变化,这属于正常的数据漂移现象。为了调试方便,实际编程时,具体的摇杆数值可以取整十、整百的近似数。
第一段脚本如下图所示:
这段脚本先设置猴子的初始位置和大小,然后使用重复执行和4个判断指令,通过读取当前摇杆的数值,并且与不操作摇杆时的数值进行比较,从而决定猴子的移动方向:如果摇杆X大于X轴数据漂移的最大值,猴子向右移动;如果摇杆X小于X轴数据漂移的最小值,猴子向左移动;如果摇杆Y大于Y轴数据漂移的最大值,猴子向上移动;如果摇杆Y小于Y轴数据漂移的最小值,猴子向下移动。
试一试
请根据你所使用的传感器板上摇杆的数据漂移区间,选择合适的值,完成用摇杆控制猴子在舞台上移动的程序脚本。
第二段脚本是进行成绩统计。先添加一个变量“成绩”,并设置这个变量的初始值是“0”,用来保存接到香蕉的个数;然后判断猴子是否碰到香蕉,如果碰到,那么“成绩”变量值加1、播放“猴子”角色自带的声音、同时说出当前所接到的香蕉数量。
第三段是通过“猴子”角色的造型切换,让游戏更好玩。
试一试
以上代码实现了用摇杆控制猴子自由移动,但是在移动过程中猴子的速度是固定不变的,你能否在此基础上,让猴子能够有加速移动的功能?也就是摇杆数值变化越大,猴子的移动速度越快。
单击此处或者扫描下方二维码可以观看相关的视频。
第四步:编写舞台背景脚本
单击此处或者扫描下方二维码可以观看相关的视频。
舞台背景脚本是对游戏时间进行控制。先添加一个“时间”变量,并设置这个变量的初始值是“30”,也就是倒计时30秒;然后每过一秒,“时间”变量值减少“1”,一直重复执行到“时间”变量值为“0”;最后停止全部角色脚本。
练一练
在以上介绍的基础上再进一步完善程序,比如增加舞台背景、添加其它角色、编写奖励和惩罚的脚本,从而使游戏更好玩。
拓展思考
摇杆在各类游戏中的应用非常广泛,可以灵活地控制角色在舞台上移动。请你思考一下,利用摇杆还可以设计一个怎样的游戏?
Last updated