【scratch】class_3_打砖块小游戏

一、游戏说明
实现一个打砖块的小游戏,基本元素包括小球,挡板,砖块,终点线,分数,背景自选 。
二、需求分析 1. 小球2. 挡板3. 砖块4. 分数5. 终点线三、设计说明 1. 小球2. 挡板3. 砖块4. 分数5. 终点线四、代码实现 第一步,选择适当背景;选择‘Ball’作为角色,可以给它改名为‘球’;游戏开始时将小球放在屏幕中间,大小调成50,面向40°方向,重复向前移动,碰到边缘反弹 。
至此实现了小球的基本运动,效果如图
第二步,选择‘挡板’为角色,放在坐标(0,-140)处,循环,把它的横坐标设置为鼠标的横坐标,这样它就会在水平方向上随着鼠标移动 。
效果如图
【【scratch】class_3_打砖块小游戏】第三步,当小球碰到挡板时,要使小球反弹,且遵循反射定律,先看反射的示意图

【scratch】class_3_打砖块小游戏

文章插图
反过来也是一样的
所以小球撞到挡板后反射需要转过的角度=180° - 方向x2,在小球的代码中添加内容
效果图
第四步,添加砖块(难点) 首先添加一个长方体的模型当做砖块,把它放在屏幕左上角的位置并适当调整大小 。
我们计划排列30个砖块,排成3行,每行10个;由于我们不会去添加30个砖块角色,虽然也能实现,但是非常繁琐 。所以我们要用到‘克隆’来实现这个功能,将一个砖块克隆30次就可以了 。
【scratch】class_3_打砖块小游戏

文章插图
执行后会发现没有变化,是因为克隆是在“原地”执行的,也就是说克隆出来的30个砖块都叠加在一起了 。所以我们要想办法把它们分开,当然不能手动拖拽 。
我们需要建立两个变量,‘砖块数量’和‘砖块编号’ 。砖块数量用来记录画面内砖块的数量,适用于所有角色;砖块编号表示每个克隆出来的砖块的编号,仅适用于当前角色 。
注意:克隆功能神奇的地方在于,当克隆体被启动时,它就自动拥有了被克隆对象的所有代码;如果建立的变量‘仅适用于当前角色’,那它被克隆体使用时,也将仅适用于此克隆体,而对其它克隆体没影响 。我们接下来会举例说明
为了查看每个砖块的编号是否准确,我们设置点击砖块时显示砖块编号,这样可以方便我们看到效果
可以看到砖块都被编号了 。那如果砖块编号不是‘仅适用于当前角色’会怎么样呢?会变成这个样子:
可以看到每个砖块的编号都是30,这是因为我们把砖块编号变成了‘适用于所有角色’,然后把它设置为了砖块数量,而砖块最后的数量就是30 。也可以这样理解