微信小游戏制作工具中,如何跨场景进行交互

简介: 微信小游戏制作工具中,如何跨场景进行交互

嗨!大家好,我是小蚂蚁。


在讲游戏场景的时候,我通常会使用这样的类比:把游戏比作一个房子,场景就是房子里的房间,通常一个房子里有多个房间,而且每个房间都互相连通,可以从一个房间进入到另一个房间。对应的就是可以从游戏中的一个场景进入到另一个场景。


两个场景之间是可以互通的,比如说你可以从“场景1”进入到“场景2”,也可以从“场景2”进入到“场景1”。但是不同场景里的精灵和逻辑是不能够直接交互的。这也是很多同学在面对多场景时,经常遇到的困惑。为什么无法在一个场景里设置另一场景里的精灵呢?为什么给另一个场景中的精灵发送通知时,接收不到呢?


下面,让我们先来看一下这两个经常会遇到的问题。


跨场景设置精灵报错

如图,我们创建两个场景,在场景2中放置了一个“基础文字”。

接着,我们在场景1中,使用积木修改场景2中的“基础文字”。

预览场景,你会发现提示了一个错误信息。

对应的修改场景2中的“基础文字”的积木块会高亮显示。

当你在一个场景中使用积木设置另一个场景的文字,数字,精灵等操作时,就会出现这种错误。因为每个场景的精灵只能够在自己所在的场景中设置。


现在积木块点击下拉时,会显示所有场景中的可设置的精灵,比如说,点击基础文字设置积木的下拉,会显示所有场景中的基础文字。如果工具在这里能增加一个限制,即只显示当前场景中的基础文字,那这个错误就能够在工具的层面上完全解决了。期待小游戏制作工具日后的改进升级。


跨场景发送通知无效

如图,我们在场景2的“基础文字”上增加了一个通知的处理,当它收到“修改文字”的通知时,修改一下自己的文字内容。

接着,我们在场景1中给场景2的“基础文字”发送一个“修改文字”的通知,然后将场景切换到场景2。

预览一下:

场景2中的基础文字并没有改变。这证明我们在场景1中向场景2发送的通知并没有生效,而且也没有给出明显的错误提示。


当你在一个场景中向另一个场景中的精灵发送通知时,会遇到这种没有明显提示的问题,通知只有在发送给当前场景中的精灵时才会有效。


跨场景交互


我们既不能去设置其它场景的精灵,又不能向其它的场景发送通知,那两个场景之间想要交互的话如何做呢?答案就是“全局变量”。

如图,全局变量是一个公共区域,每个场景都可以读取和设置全局变量。两个场景之间可以借助全局变量来进行互动。举个例子,假设现在有一个全局变量 a,它的值是 0,当前在场景1中,我们把这个 a 的值设置成 1,接着切换到场景2中,此时场景2获取到的 a 的值就是 1 了。


全局变量相当于一个中介的角色,可以在一个场景中记录某个值,然后在另一个场景中把这个值拿出来用。


接下来,我们以一个小示例来演示一下,如何使用全局变量来进行两个场景间的交互。


我们制作一个游戏中常用的选角色的示例,在选人场景(场景1)中玩家选择一个角色,然后进入游戏场景(场景2)后,会使用玩家选择的这个角色进行游戏。

首先,来看一下选择角色场景。

如图,场景1是角色选择场景,在这里玩家可以选择角色,选择的角色使用红色放大作为提示,点击“开始游戏”按钮,会进入游戏场景。


创建一个“当前角色”的全局变量,以及一个“刷新角色”的通知。

接着,看一下小Y上的积木逻辑。

点击小Y时,设置全局变量“当前角色”的数值为 1,然后向所有的角色发送“刷新角色”的通知。通知中的处理是根据“当前角色”变量的值,设置当前的角色是否要红色放大显示。

再来看一下小怪兽上的积木逻辑。

逻辑都差不多,唯一的区别就是,选择小怪兽时,“当前角色”的数值设置为 2。

最后,在来看一下场景2中的积木逻辑。

逻辑很简单,当场景启动后,根据变量“当前角色”的值显示游戏的角色。“当前角色”的值为 1 的时候,显示小Y,为 2 的时候,显示小怪兽。

预览一下看看结果。

最后,总结一下。

跨场景交互经常会遇到两个问题:

  • 在一个场景中设置另一个场景中的文字,数字,精灵等,会报错。
  • 在一个场景中向另一个场景中的精灵发送通知时,不会报错,但是通知无效。

对于这两个问题,只需要记住一点:不论是对精灵进行设置,还是给精灵发送通知,只有在同一场景下才有效,跨场景无效

跨场景交互的解决方法是利用“全局变量”,它是游戏这座房子里的一块公共区域,是一个中介。每个场景都可以与它交互,利用它我们就可以实现多个场景间的信息传递了。

相关文章
|
1月前
|
数据可视化 前端开发 小程序
5G时代-探索微信小游戏
5G时代-探索微信小游戏
23 2
5G时代-探索微信小游戏
|
1月前
|
缓存 数据可视化 Serverless
微信小游戏 案例一 像素飞机
微信小游戏 案例一 像素飞机
19 2
|
1月前
|
移动开发 小程序 数据可视化
微信小程序可视化开发工具之动态数据
微信小程序可视化开发工具之动态数据
39 3
|
3月前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
492 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
3月前
|
小程序 开发者
微信开发者工具如何集成SVN、同时解决集成SVN无效果的问题
这篇文章介绍了如何在微信开发者工具中集成SVN版本控制系统,并提供了解决集成后无效果问题的方法。
微信开发者工具如何集成SVN、同时解决集成SVN无效果的问题
|
4月前
|
小程序 开发工具 开发者
入职必会-开发环境搭建31-微信开发者工具下载和安装
微信开发者工具是一款由微信官方推出的开发工具,旨在帮助开发者更高效地进行微信小程序和微信公众号的开发与调试。该工具集成了代码编辑、代码上传、实时预览、调试等功能,能够提供便捷的开发环境和调试工具,帮助开发者快速定位和解决问题。
|
4月前
|
JavaScript
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
支付系统---微信支付23-数据绑定和事件,使用Vue调试要添加扩展,F12与console平级就出现了Vue,在支付资料,微信支付,04资料,工具里
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
4月前
|
安全 API 数据安全/隐私保护
支付系统05------微信支付,接入指引----获取密钥和证书,随机密码生成器的工具,
支付系统05------微信支付,接入指引----获取密钥和证书,随机密码生成器的工具,https://suijimimashengcheng.bmcx.com/随机密码生成器的工具
|
4月前
|
移动开发 JavaScript
thinkPHP5.0开发微信H5页面分享接口signature验证失败,signature与微信 JS 接口签名校验工具返回结果不一致
thinkPHP5.0开发微信H5页面分享接口signature验证失败,signature与微信 JS 接口签名校验工具返回结果不一致
86 0