首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Scratch编程之旅之水果游戏-面壁篇

上次我们完成了一个简版的水果游戏,但是依然还有改进的空间,之所以没有一次性解决一方面为了避免篇幅过长,另一方面是为了避免内容过多给初学者带来的障碍。我们有两个地方依然可以改进,一是游戏开始时外循环的随机延时,导致水果第一次出现时就像田径比赛一样在起跑线准备,我们需要他们先后出现;二是游戏结束时我们需要同时隐藏其他角色,并更换背景。

创建局部变量

我们怎样才能让角色先后出现呢?由于我们的重置积木时就已经显示了角色,所以我们可以调整当需延时的话,就不立即显示,在外循环中的第一次延时才显示。我们需要为每个角色定义一个局部变量started,创建时选中“仅适用于当前角色”,这意味着只有当前角色可以使用该变量,这对其他角色是不可见的,所以每个角色都需要创建一个started变量。

在我们的自制积木中加上条件分支判断,当time大于0就增加延时,否则就隐藏该角色,作为配合在主体脚本的外层循环中也加上一个条件分支判断,当started等于0,我们就显示该角色,并把started设置为1,否则随机等待一段时间,需要注意在游戏开始时把started初始化为0(started为0代表角色第一次进入舞台)。除了控制碗,其他角色都应作如上调整。

新建消息

第二个问题如何让其他角色同时消失呢?我们将使用广播事件,我们先定义一个stop消息,然后让所有需要响应的角色去监听这个消息。当我们终止游戏或者游戏失败我们需要发送stop消息,也就是控制碗的a指令触发和控制碗碰到炸弹的时候。在所有的角色我们需要监听这个消息,另外由于收到stop消息之后控制碗也会隐藏,所以我们有必要在游戏开始时让控制碗显示出来。

控制碗代码

橘子代码

炸弹代码

苹果代码

草莓代码

西瓜代码

香蕉代码

至此我们的所有修改就完成了,我们修改后的所有代码如上图所示。我们本次分享的要点包括:局部变量的声明的使用、消息发送与监听。我们之前提到变量共享(共享内存)是消息传递的常用方式,我们本节介绍的消息机制是更有效的方式。本次分享就到这里,希望大家能够顺利完成升级,你将获得体验更好的水果游戏。

技术服务于社会,让世界变得更美好。如果您或者您的小孩对编程有兴趣,请关注我,我是小码哥哥,我将尽我所能帮助你们,有任何问题可以帖下留言或者关注私信,共同探讨,共同进步,成就彼此。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190923A08B3800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券