用Scratch做一个俄罗斯方块游戏(中)

实现了背景布局,接下来我们实现7块主要积木的程序部分,虽然听起来有7块,实际上由于它们遵循同一个规则。所以我们只需要完成其中一块的程序逻辑,然后复制粘贴一下就可以了。当然,由于每块积木对应的信息号不同,可变造型有差异,所以细微的修改还是不可避免的。

俄罗斯方块示例2 提取码: kz48

scratch_tetris_p7

在开始之前,我们先为负责检测的对象添加如上动作,在绿旗点击后,先广播11让7个主角就位并隐藏,然后随机抽一个开始下落。积木到位后我们准备让当前下落的积木返回一条消息8,由检测对象负责接收,检测对象接收到消息后根据屏幕上积木的位置判断游戏是否应该继续。所以接收消息8这一块后续我们会添加更为复杂的逻辑,目前先这样搭建用来测试流程。

scratch_tetris_p8

我们按照模板中的顺序来决定消息顺序,长方形的积木块负责接收消息1,依次类推,最后一个L型积木负责消息7。我们先来编制长方形积木上的程序。积木的下落一行需要等待一段时间,在等待积木执行中,后续的积木是无法进行任何操作的,但实际游戏环节中,我们需要一边下落,一边移动,所以我们使用两堆积木块,一堆用来负责下落,另一堆接收按键输入,以上是程序的下落部分。

scratch_tetris_p9

我们定义过一个叫下降速度的公共变量,并且在背景对象初始化的时候将它设置为了0.6,想加快下落速度,我们只要将这个数字改小就可以了,但由于松开按键后,我们还希望积木能够恢复原来的速度,所以这里用了一个如果否则的积木结构。当按键弹起,下降速度会被恢复原样。

scratch_tetris_p10

按键输入这一块中的所有判断,都遵循了这样一个逻辑,就是当执行操作后,如果发现碰到指定颜色,就让程序原样退回,坐标上我们可以设置正负以实现,但造型上,我们并没有“上一个造型”这样贴心的积木,我们换一个方法,看看角色有多少造型,如果只有两个,那么多运行一次“下一个造型”,如果角色有4个造型呢,我们就在角色被变形后多运行3次,这样造型转了一整圈,又回来了原来的造型。因为这个造型变换的速度非常快,所以实际游戏中并无法看到这个变形后退回的视觉效果。

scratch_tetris_p11

完成长方对象接收消息1的逻辑之后,我们将长方形的所有积木分别复制到另外6个兄弟积木上面,积木复制的方法很简单,按住鼠标左键拖动积木,并且将积木块移动到目标对象上面,然后送开鼠标就可以。由于每块积木对应的消息不能相同,我们需要修改一下消息编号。对于几个特殊的有4个造型的积木,我们需要多增加条件成立后的下一个造型积木的数量。

给TA赞助
共{{data.count}}人
人已赞助
综合资讯

用Scratch做一个俄罗斯方块游戏(下)

2023-7-28 8:20:16

综合资讯

用Scratch做一个俄罗斯方块游戏(上)

2023-7-28 8:20:26

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索