这一次我们设计一个射击小游戏《后羿射日》。操作鼠标控制箭的方向,按下键盘上的“F”键,发射箭。当键击中太阳时,太阳落地。如果太阳都被射中落地,提示空发射箭。后羿射太阳,射掉一个太阳,天气就会凉快一点儿。注意太阳被射下来是加速落地的。体验重力加速度。
【知识技能】
条件判断指令的应用。
循环控制指令的应用。
侦测指令的应用。
数字和逻辑运算指令的应用。
新建变量及其应用。
广播与接收的应用。
外观指令的综合应用。
效果如下:
下面来看一下编写的过程。
1.变量
太阳数量:用来记录天空中太阳的数量。
在手上:适用于角色箭的变量,记录在后羿手上的箭的数量;
Y速度:适用于角色太阳的变量,记录太阳掉落的速度;
2.背景
这里选择两张图片作为背景,它们会在游戏不同的状态下切换显示。
背景有两段脚本,当绿色旗帜被点击时,设置背景虚像特效值为100,播放开场音乐,换成背景1,虚像特效值是100时,我们还是看不到背景的,所以,在代码中重复执行100次,每次将虚像特效值减去1,使得背景逐渐的在屏幕中显示出来。
然后按下空格键,换成山的背景,广播“开始游戏”。
当接收到广播“开始游戏”时,将变量“太阳数量”设为10,将亮度特效设为40(亮度数值越大就越亮,到100背景就全白),应用亮度特效,实现每射掉一个太阳,天气会凉快一点,天色会暗一点的效果。重复执行以下代码,当太阳数量
大于0时,将亮度特效设为太阳的数量乘于4,否则亮度特效为-100,背景全黑。
3.角色
这个游戏共有12个角色,后羿、箭、10个太阳。下面来依次介绍。
第1个角色:后羿
当点击绿色旗帜,角色隐藏。
当接收到广播“开始游戏”,说两段话。
当接收到广播“开始游戏”,显示角色,重复执行以下脚本,如果按下f键,广播“射箭”,如果太阳数量大于0,将角色的亮度特效设为太阳的数量乘于4,否则亮度特效为-100,角色全黑。
当接收到广播“少了一个太阳”,如果太阳数量大于0,说:“射死一个太阳了,哈”2秒,否则,说:“我擦,搞错了,没有太阳了,呜呜呜呜”5秒。
第2个角色:箭
当点击绿色旗帜,角色隐藏。
当接收到广播“开始游戏”,将变量“在手上”设为1,角色箭移到最前面,显示角色,重复执行以下代码,如果“在手上”等于1,那么,将箭移到后羿的手上(后羿的x坐标+36,后羿的y坐标-35),然后让角色随着鼠标方向转动,如果太阳数量大于0,将角色的亮度特效设为太阳的数量乘于4,否则亮度特效为-100,角色全黑。
当接收到“射箭”广播,将“在手上”设为0,播放声音“射箭声小”,角色随着鼠标方向转动,重复执行“移动20步”直到角色碰到舞台边缘,隐藏角色。
然后等待1秒,箭立即回到后羿的手中并显示。
第3个角色:太阳1
当点击绿色旗帜,角色隐藏。
当接收到广播”开始游戏“,显示角色,将“Y速度”设为0,初始化太阳位置,换成造型1(微笑造型),重复执行以下脚本,如果角色碰到箭,广播消息“少了一个太阳”,将太阳数量增加-1,换成造型2(难过造型),重复执行以下脚本,将变量“Y速度”增加-1,将y坐标增加“Y速度”的数值,这里是模拟自由落体的效果。
然后,隐藏角色,并停止当前的脚本。
其他9个太阳的脚本和第1个太阳一样,除了初始化位置,这里就不再赘述了。