コード例 #1
0
        public override void OnLogicNodeUpdate(float inDeltaTime)
        {
            base.OnLogicNodeUpdate(inDeltaTime);

            //所有线程都已经启动完成//
            if (LMDataOcean.mNetThreadStarted && LMDataOcean.mLogicThreadStarted && LMDataOcean.mMainThreadStarted)
            {
                mTimeAccumForOnSec += inDeltaTime;
                if (mTimeAccumForOnSec >= 1.0f)
                {
                    mTimeAccumForOnSec -= 1.0f;

                    //服务器认为自己可以走一帧了//
                    mServerFrame++;

                    if (X2LBridge.IsValid)
                    {
                        //通知客户端走一帧//
                        LMNEvent_ServerGoOneFrameForDemo3 evt = FakeObjPoolMgr.FetchAutoRecycleObj <LMNEvent_ServerGoOneFrameForDemo3>();
                        evt.mServerFrame = mServerFrame;
                        X2LBridge.Instance.SendEventAsync(evt);
                    }
                }
            }
        }
コード例 #2
0
        private bool OnServerGoOneFrameForDemo3(IGEvent inEvent)
        {
            bool ret = false;

            LMNEvent_ServerGoOneFrameForDemo3 realEvt = inEvent as LMNEvent_ServerGoOneFrameForDemo3;

            //这里模拟收到了服务器的帧驱动//

            //注意,如果你真的写好了多线程自动回收对象池的话,这个地方是不能直接缓存来自网络线程的对象的//
            mFakeFrameBuffer.Add(realEvt.mServerFrame, realEvt);

            return(ret);
        }