

需要的可以获取:
https://pan.quark.cn/s/7debee2dd971
要用 Scratch 制作俄罗斯方块彩色高级版,可以参考以下步骤和原理:
角色背景绘制与背景格的生成:
-
创建一个 “底板格” 角色,其大小为 24x24。它有三个造型,分别是绿色和黄色填充的相同大小格子造型,以及一条横线造型,轮廓粗细约为 10。
-
定义两个函数,一个是 “行” 函数:换成 “底板格” 绿底背造型,图章一次后将 x 坐标增加 24,重复 10 次,因为背景的一行有 10 个格子。
-
“游戏背景” 函数:每次开始游戏时,需删除上次游戏的图章部分。给 “底板格” 一个起始坐标值,并隐藏该角色(只需看到图章部分)。然后执行 “行” 函数生成一排格子,接着回到 x 轴原点,将 y 轴增加 - 24,与 “行” 函数一起重复执行 15 次,生成 10x15 大小的背景格。
-
点击绿旗后执行 “游戏背景” 函数,瞬间生成背景。绘制背景时,注意背景竖立的黄色线和底部横线颜色要与 “方块” 角色颜色相同,这三段线主要用于给生成的背景格做边框,以及为 “方块” 角色控制左右移动和旋转时做判断、到底部图章判断。
角色控制与运动以及判断输赢:
-
新建三个全局变量,分别为 “造型”“游戏控制”“分数”。
-
“方块” 角色的功能是在舞台上方正中间向下掉落,掉落的造型是 “下一步” 显示的造型,利用键盘方向键控制其左右移动以及水平翻转。具体实现原理为:方块面向 90 度方向,隐藏方块,换成 1 到 7 的随机造型,将其固定在 x=-48,y=172 的坐标值上(可根据实际情况调整),并将 “造型” 变量设为 “下一步” 的造型编号;重复执行以下脚本 — 等待 0.5 秒,显示方块,将 y 坐标增加 - 24,换成 “造型” 变量的造型。如果碰到舞台底部的黄色,就把 y 坐标增加 24,盖下图章,再次把 “造型” 变量设为 “下一步” 的造型编号,广播 “判断消除” 的消息(此消息用于在 “背景格” 中进行消格和填充),然后再次回到原点起始坐标值隐藏该角色。方块的移动和水平翻转通过按下键盘方向键来实现,按下左方向键对应 x 轴方向减少 24,如果碰到左边黄色则 x 轴增加 24;按下右方向键对应 x 轴方向增加 24,碰到右边黄色则 x 轴减少 24;按下上方向键则向右旋转 90 度,若碰到黄色,说明翻转距离不够,返回 90 度抵消,相当于减去 90 度回到原来的度数;按下下方向键是给角色 “方块” 下落加速,y 坐标增加 - 24,一直按可达到快速下降的效果,如果碰到舞台底部或 “方块” 颜色的黄色就把 y 轴增加 24 图章该角色造型。
-
“下一步” 角色的主要作用是在游戏区域下落的方块提前在舞台的右下方 “下一步” 那里显示出来。具体实现原理 1:给 “游戏控制” 变量赋值为 0,将 “下一步” 角色固定在舞台右下方的 “下一步” 区域,面向 90 度方向,换成 1 到 7 的随机造型;重复执行以下脚本 — 等待 “方块” 的 y 坐标等于 172,换成 1 到 7 的随机造型,将 “游戏控制” 变量增加 1,等待 0.5 秒。(注意 “方块” 的 y 坐标起始值在舞台的 y 坐标 172 高度)原理 2:重复执行等待 1 秒,将 “游戏控制” 变量设为 0。该变量的具体作用是控制游戏的结束。
-
判断输赢的方法是根据 “游戏控制” 变量来判断。由于 “方块” 是从 y 坐标 172 向下掉落,遇到黄色就会图章自己(自身颜色也是黄色),如果一直图章到顶部,“游戏控制” 变量就会增加到 2(因为 “游戏控制” 变量重复执行设为 0 的时间是 1 秒,而其增加 1 的条件是 “方块” 的 y 坐标值等于 172,获取 “游戏控制” 变量增加的时间是 0.5 秒,该变量增加到 2 在理论逻辑上是成立的),即大于 1,那么在背景的脚本里可以写成当 “游戏控制” 变量大于 1 时停止所有脚本运行,从而达到游戏结束的功能。
消除方块与方块回填:
-
功能是当方块填满背景格一排以及多排时及时消除填满区域,剩余的方块回落到消除的区域,且 x 轴方向不变。
-
消除原理:建立 “分数” 变量,利用 “底板格” 的判断线造型从下往上侦测,必须从背景左边 x、底部 y 的方向重复侦测判断 15 次(因为背景是 10x15 的大小)。如果没有碰到绿色,代表这一排是方块格满的,将 “分数” 变量增加 24,然后用 “行” 函数把这一排用 “底板格” 的绿底背造型图章完这一排变成背景的底色绿色。
-
回填原理:如果碰到绿色,x 轴方向增加 24,一行有 10 个格子,重复 10 次换成 “底板格” 黄色格的造型去背景 10x15 的区域侦测碰到黄色,如果侦测到有碰黄色一次,就将现有的 y 坐标值减去 “分数” 变量的值,回落到消除的地方图章黄色格,达到现有方块回填的效果。“分数” 变量增加值的条件是消除一行增加 24,y 坐标同时也增加 24 同步进行,依次类推,所以回填图章的逻辑就是当前 y 坐标值减去 “分数” 变量的值去回填。再次把 y 坐标增加 “分数” 变量的值上去继续侦测;同理侦测到绿色,就要换成 “绿底背” 的造型,减去 y 坐标的 “分数” 变量值,图章绿底背造型(说明侦测的地方没有黄色格子填充,所以下去图章绿色格子),又返回上次坐标继续侦测。
-
函数定义:知道消除和填充的原理后,可以把这两个原理封装成一个函数,例如定义为 “判断消除”。“方块” 掉落碰到黄色图章后发送判断消息,当 “底板格” 接到 “方块” 的消息后执行函数判断消除。“方块” 每图章一次,“底板格” 就判断一次消除和回填,从而达到游戏消除和回填的功能。
这只是一个基本的实现思路,实际制作中可能需要根据具体需求和 Scratch 版本进行调整和优化。如果你需要更详细的代码和具体操作,可以参考相关的 Scratch 教程或案例,也可以搜索一些在线的 Scratch 俄罗斯方块项目示例来深入学习。另外,不同 Scratch 版本的具体功能和操作可能会略有差异,还需注意根据你使用的版本进行相应的调整。祝你制作顺利!
往期源码分享:
3514

被折叠的 条评论
为什么被折叠?



