RakNet学习(47)-- ReadyEvent

来源:互联网 发布:网络词语老干部啥意思 编辑:程序博客网 时间:2024/05/01 22:26

ReadyEvent 概览

 

一个事件准备好可以作处理的信号

       在端到端环境下,确定什么时候所有的Peer准备好了,可以发生一些共享的事件是非常繁琐的一件事,例如从大厅开始游戏,或者进行下一轮游戏等。最大的问题是,尽管你的系统已经准备好开始,所有的连接的系统或许在你知道时已经准备好,但是这些系统可能不知道他们相对于其他的用户是否已经准备好。这主要是由于延迟或者数据报丢失可能会破坏掉两个系统之间的连接从而导致玩家是否准备好未知,那么这两个用户担心并不是所有的用户都准备好开始游戏了。

       ReadyEvent插件可以自动处理这种情况。给定一个用户定义的数字事件标示符,每一个系统可以调用ReadyEvent::SetEvent(eventide, isReady);方法。当系统相对于你和其他的系统都准备好了,ReadyEvent::IsEventCompleted(eventide);方法会返回true,你可以处理这些共享事件。这个值一直存储到事件被DeleteEvent(eventID);方法删除。

 

常用的情况

       在端到端大厅中,这个可以用于存储用户什么时候准备好以及没有准备好的状态。当用户准备好时,游戏可以开始。

       在端到端的轮转游戏(也即游戏是一局一局进行的,如斗地主)中,这个插件可以用于通知每一个用户已经准备好开始下一轮游戏。

       在任何端到端游戏中,这个插件可以用于处理每一个人都等待的事件,例如所有玩家完成加载游戏level

0 0
原创粉丝点击