俄罗斯方块 ( 放置方块 )
这篇教学会延续“俄罗斯方块 2 ( 角色移动、碰撞侦测与修正 )”范例,实作俄罗斯方块游戏的“放置方块”效果,当方块抵达底部或者叠在其他已经放置的方块时,就会停止并进行放置的动作。
相关文章参考:
快速导览:
打开范例
打开“俄罗斯方块 2 ( 角色移动、碰撞侦测与修正 )”的范例,从这个范例进行修改。
放置方块并重新绘制背景
点击“方块造型”角色,在“修正 ( 垂直碰到 )”的函数里,添加三块积木:
- 盖章:将目前方块造型绘制在舞台中。
- 隐藏:隐藏方块,避免重叠。
- 广播消息:放置:告诉“背景格子”角色,方块已经放置。
点击“背景格子”角色,新增一个名为“碰到颜色”的函数,建立函数时勾选执行完毕再更新画面,这个函数的目的在于侦测是否碰到特定颜色,按照下图在函数里放入相关积木。
这个函数的做法和方块造型里的碰到颜色函数类似,也同样使用 color 变数,差别在于此处会额外侦测灰色,并且不同的颜色会对应到不同的数字,数字必须对应造型名称,例如 shape1 的颜色就是 1,shape2 的颜色就是 2,依此类推。
继续在“背景格子”角色中,新增一个名为“侦测颜色转换清单”的函数,建立函数时勾选执行完毕再更新画面,这个函数会透过背景格子角色的每次移动,侦测碰触的颜色,并根据碰触的颜色来更新背景 bg 清单的内容,函数内容如下:
- 将背景格子角色定位到游戏范围的左上角。
- 删除 bg 清单的项目。
- 重复 17 次,每次重复执行:
- 删除 bg_item 清单内容 ( 需新增一个 bg_item 清单 )。
- 重复 12 次,每次重复都侦测碰撞的颜色,将对应的数字存入 bg_item。
- 12 次重复结束后,将 bg_item 加入 bg 清单,由于 Scratch 的清单限制一维清单,所以 bg_item 会自动将内容组合成文字。
完成后,在“背景格子”角色中,设定收到广播消息“放置”时,依序执行“侦测颜色转换清单”和“画背景”函数。
点击绿旗,用键盘移动方块,当方块抵达底部时,可以发现 bg 清单已经更动,这时背景画面也已经更新。
方块重新出现与往下掉落
在“背景格子”角色中,在“画背景”的函数后方,都加入发送 start 广播消息,表示下一组积木可以开始出现。
点击“方块造型”角色,编辑收到 start 广播消息的动作:
- 设定变数 time 为 0.5 ( 需要新增一个变数 time )。
- 定位方块到游戏范围上方的中间。
- 随机更换造型并显示角色 ( 角色在垂直碰到时会隐藏 )。
- 使用重复无限次将角色往下移动,并修正垂直方向的碰撞。
完成效果
点击绿旗,透过键盘移动方块,当方块移动到底部,或碰到已经在画面中的方块时,就会停止并再出现新的方块。
范例解答
继续阅读
如果已经熟悉了俄罗斯方块 3 ( 放置方块,方块不断落下 ) 的程序,就可以继续阅读“俄罗斯方块 4 ( 消除完成方块、侦测游戏结束 )”的文章。
微信扫码关注
抖音扫码关注