进入联机状态后,自然要开始使用联机的功能。

    先来了解一下核心积木:

    Part2 联机状态下的交互 - 图1

    Part2 联机状态下的交互 - 图2

    这两个是传递与接受信息的最常用、实用积木

    发送信息具有以下特性:

    1. 发送信息对象为所在云房间所有玩家(包括发送者)
    2. 发送信息格式为提前(编辑代码时)定义好的列表
    3. *每次发送的信息表都会覆盖掉自己及其他玩家在收到该信息前对应列表的所有数据

    打个比方,发之前所有人test列表信息如下:

    1. a
    2. b
    3. c

    发送者对自己本地的列表加以修改后,他的test列表信息如下:

    1. aa
    2. bb
    3. cc

    此时使用发送信息

    那么发送者所在房间所有玩家的test列表信息会变成:

    1. aa
    2. bb
    3. cc
    还不懂我真没办法了。。

    接收信息具有以下特性:

    1. 接收一切对应列表的消息,不论发送者,只看对应列表
    2. 发送信息为提前定义好的列表
    3. 事件积木

    其余可参考上文

    云房间目前的积木主要有以下几个功能:

    1. 作用一:传递信号

    这是最简单的、没有参数的纯信号.用途比较小,可以理解为云广播

    还是拿我的“世界”游戏为例

    比如我很勇,召唤了个boss想和其他玩家一起打(多人在线世界中,一切是同步的)

    那么我引出boss的时候,大家都应该看见这个boss吧?

    咋搞?

    直接发送信息呗~ 告诉所有玩家:boss出现了 建一个空列表,名为boss 然后

    Part2 联机状态下的交互 - 图3

    当其他玩家用

    Part2 联机状态下的交互 - 图4

    收到消息,就可以开始加载和显示boss形象,于是就达到了云广播公共事件的目的.

    1. 作用二:传输数据

    这是最常用的功能,比传递信号常用多了,也是云房间的最初作用

    仍以“世界”为例

    比如我的角色在联机世界中的坐标、角度、造型、等级、血量……一堆数据要进行实时传输,以便让他人能在他的世界中呈现出一个活灵活现的“我”,从而使我们愉快地游戏

    qaq

    怎么实现呢?

    下面是游戏实例教学,不想看的可以直接跳过

    由于没有克隆,所讲方法会愚蠢很多

    首先你要清楚你想做多少人联机(所有房间一共的人数) 比如我只想做一个房间的世界,最大人数20 那么恭喜你

    你需要建20个列表作为用户实时数据表~

    并且还要复制出20个被控角色作为其他20个玩家角色的显示~(自己控制的角色脚本不一样) 不要惊讶,CoCo没有角色克隆和控件克隆的情况下,要搞多人在线,只能把玩家一个个对槽. 没有多难,写好一个被控体角色后一个个复制然后修改对应列表就可以 由于这些被控角色显示的是其他玩家的状态,绝大多数情况下,一个房间是没有20人的,而在制作时我们做了20个人的被控体和列表(自己操控的不算),比如一个房间有5人。这就需要隐藏其他15个被控体,不让他们执行脚本。由于只有在房间人数发生变化的情况下才会出现这种问题,所以要用一个事件积木,还要做一个判定。 Part2 联机状态下的交互 - 图5 Part2 联机状态下的交互 - 图6 被控体具有以下特性 + 有人进入房间时,所有被控体都判断一遍当前房间人数,根据房间人数判断是否自己该启用 比如房间原有3人,此时1人进入,则第四个被控体判断当前房间人数为4时,就知道自己该启用了,也就是执行被控脚本,同时所有玩家也会在屏幕上看到一个玩家出现的动画,和他的一些信息 + 持续使用对用列表的各项数据来进行显示,这些数据是其他对应玩家用发送对应列表信息积木发送的, 需要用收到房间通知来接收(由于多人在线的实时交互性,应该用重复执行积木发送信息) + 有人退出房间时,仍进行一次对号判断,如果退出的是被控体对应的玩家,则替换被控体所对应列表所有项为0(清空数据以便下一名玩家使用),同时隐藏该被控体(也可以先播放一段下线动画,表示该玩家下线),待命直到房间人数再次等于此被控体的编号再启用(同上文,用进入房间的事件积木检测) 下面举几个例子: Part2 联机状态下的交互 - 图7 这里是传输数据的一小部分,应先经过判断,根据进入时的在线人数获取编号,比如进入时只有我一个人,我就是一号(也可以根据所进入房间人员的列表长度判断);进入时2个人(包括我),则我是2号,以此类推. 至于玩家数据列表,每一项对应的啥,这就由你们的游戏决定了 考虑到直接用列表各项数据会降低流畅,所以本地的数据处理还是用变量比较好 因此传输数据时,要把所有变量整合为自己对应编号的列表,例如下 Part2 联机状态下的交互 - 图8 这里示例只是冰山一角,真实工程量会大的多!!! * 什么时候出了克隆,就好办多了。。。 教程结束,还有不懂可以私聊qq:2494781146