Scratch桌上冰球小游戏
2021-08-25
我们在2020年20期“弹跳小球”这个游戏中,完成了小球落下和反弹的物理效果。今天我们改变一下游戏思路做成双人桌上冰球的小游戏,这样两个人可以互相击球,把球推到对方门里即得分,双方需要根据小球的反弹不停地进行防守和反击,最终按照接球数量和失误的次数来判断比赛输赢,互动性特别强。约上你的好朋友一起做个游戏一起玩吧!
1.游戏界面
首先定下桌上冰球的游戏界面:我们选择了黑白像素块,上下用黑色边框封闭,左右两边用两块黑色长方块作为反弹小球的挡板。
2.挡板和边框
接下来为左右挡板编写代码,首先实现控制左右两个挡板的正常移动。挡板只能上下移动不能左右移动,同时不能穿过上下的黑色边框。左边的挡板用W和S键操控,右边的挡板用上下方向键操控。重复执行,每次按下相应按键时Y坐标增加或者减少10。双方成功接到球时,接球次数增加一次。
为了控制挡板不会穿过上下黑色边框,我们设置两个变量:左/右随机数用于记录当前挡板的运动方向(往上时值为+1,往下时值为-1),当挡板碰到黑色区域时自动将Y后退10,Y坐标=-10×(正负1),确保挡板在上下移动过程中不会移出范围,还可以用其他方式实现这个目的,你可以想一想。
3.小球的运动
下面要实现程序最重要的功能——小球运动。对小球編程,设置初始状态,广播“小球移动”。
用一个随机数变量来确定小球的初始方向,设置变量“随机数(1或2)”取值随机1或2,当等于1时,面向90度(左边)重复移动10步,当等于2的时候,面向-90度(右边)重复移动10步。在球运动的过程中我们需要不断对游戏状态做检测,判断小球是否出界,判断小球是否需要反弹,通过双方失误次数判断玩家胜负状况。
当小球碰到左边的挡板的时候,面向0-180度方向进行移动实现反弹,当碰到右边的挡板的时候,面向-180-0度方向进行移动实现反弹,当碰到上面的墙壁时,面向90-180度方向移动,当碰到下面的墙壁时,面向0-90度方向移动。
如果没有接住球,那么失败次数增加1。广播“小球移动”,重新开球。当一方失败的次数超过三次后,系统会自动判断哪一方获胜,并结束游戏。
编程桌面冰球游戏可以提升孩子的逻辑思维能力,因为需要对小球的运动状态进行侦测,并据此判断合适的反馈。并且设计适合的游戏玩法提升游戏的趣味性,也是游戏编程的目标之一。