https://www.kidscoding8.com/54578.html
“嘭!”一颗弹球碰到挡板,迅速地反弹起来,撞向空中的砖块!这就是打弹球游戏的画面,那跳动的弹球、左右移动的挡板,让我们乐在其中。今天我们就一起来利用Scratch软件,做一个简化版的打弹球游戏——反弹球!
一、我们的目标
(1)理解碰撞检测技术的使用方法。
(2)掌握角色坐标与鼠标坐标的关联方法。
二、我们的任务
1.剧本设计
主题:“会反弹”的小球
舞台:草地
角色:小球、反弹板
故事:小球和反弹板在草地上玩游戏,小球碰到边缘就会反弹,落向地面时,反弹板会跟随鼠标指针快速地左右移动,将小球反弹起来。如果小球掉到地上,游戏就结束啦,如图1所示。
图1 界面设计
2.程序设计
三、我们的活动
1.新建背景
从“背景库”中选择“户外”主题中的你喜欢的图片,作为新舞台背景。
2.新建角色
(1)添加角色
从“角色库”中选择“运动”分类中的球型图片或自己绘制一个球,作为新角色。适当调整球的大小,放置在舞台中间。我们可以将角色名称改为“小球”。
(2)绘制角色
如图2所示,单击“绘制新角色”按钮,打开“绘图编辑器”。
图2 打开“绘图编辑器”
这时,可以利用“绘图编辑器”绘制“反弹板”角色,如图3所示。角色绘制好后,我们还需要调整它在“舞台区”中的位置,并且将它的名称改为“反弹板”。
图3 绘制反弹板
Tips
在开始绘制造型之前,先将视图调整为100%,以视图的中心点为原点绘制造型,以便精确定位角色在舞台中的坐标。
3.搭建程序
(1)反弹板角色程序
根据剧本的要求,我们发现,反弹板能够跟随鼠标的指针左右移动。通过“动作”模块中的和“侦测”模块中的组合指令来设定反弹板的x坐标,如图4所示。
图4 反弹板程序
Tips
我们把设定反弹板x坐标的动作放在重复执行的指令中,是为了不断地捕捉鼠标的x坐标值,及时更新反弹板的x坐标。想一想,如果没有这个循环结构,“反弹板”能否跟随鼠标指针移动?
(2)小球角色程序
为了能够实现剧本故事的创意效果,我们首先对小球角色的运动轨迹进行分析,小球角色的运动方式分为三种。
①起始运动方式:小球角色每次从“舞台区”的中心点处开始,在-70度70度之间随机选择一个角度后做直线运动;
②“碰到边缘反弹”运动方式:这种运动方式由系统自动处理,小球碰到“边缘”就会自然反弹;
③碰到“反弹板”后的运动方式:当小球遇到反弹板后,就会以一个设定的随机角度进行反弹。具体程序可以参考图5所示的程序。
其实,“反弹”效果的方式还有几种方式,我们可以将“起始运动”与“反弹运动”两种方式进行个性的设计与创意。如将“起始运动”方式改为自由向下或以一定角度向下的方式做直线运动;将“反弹运动”也改为以“碰到边缘”方式运动等。
图5 小球程序
另外,在“侦测”模块中一共有三个碰撞指令,都是用作分支结构中的条件。
为了让程序有理想的执行效果,我们还可以不断地对程序进行修改与调试。同时,也不要忘记对程序进行保存与分享哦!
四、我们的探索
(1)如果让小球发生碰撞时加入音效,是不是更酷呢?(见下面的附图程序)
(2)在舞台上部加入1个或多个砖块,小球碰到砖块时,砖块消失,同时生成新的砖块。
(3)设计一个计分系统,将小球碰撞反弹板一次加一分;或者打砖块计分。随着分数的增加,怎样让球的运动速度变快呢?
(4)能否将鼠标控制改为键盘控制呢?
(5)能否设计成两人对战的模式呢(提示:类似的,在舞台上方放置第二块挡板,改为用键盘控制挡板的移动,并增加计分系统)
(6)你能做到将小球的运动轨迹绘制出来吗?
你还有更好的点子吗?(附上一个简单版的程序,包含了音效、打砖块、计分、运动轨迹,程序还不是很完善,你能将其完善吗?)
附图1 球的程序
附图2 砖块的程序
如果本文对您有帮助,请推荐给您的朋友,您的支持就是我的动力~