コード例 #1
0
    /// <summary>
    /// 逻辑帧更新
    /// </summary>
    public static void Update()
    {
        if (Client.dataQueue.Count > 0)
        {
            var data = Client.dataQueue.Dequeue();
            if (data.Item1 != Client.FRAMPACKAGETYPE)
            {
                Debug.Log("fram package error");
                Client.ifrun = false;
                return;
            }

            var fp = Client.Deserialize <FramPackage>(data.Item2, 0, data.Item2.Length);
            for (int i = 0; i < fp.Opts.Count; i++)
            {
                var opt = fp.Opts[i];
                if (!obinfmp.ContainsKey(opt.Doplayername))
                {
                    LogicCreatPlayer(opt.Doplayername, opt.Id);
                    if (opt.Doplayername == Client.name)
                    {
                        UIManager.Init();
                    }
                }
                if (opt.Optype == Client.MOVETYPE)
                {
                    obinfmp[opt.Doplayername].ToMove(opt.Dir);
                    //ToMove(opt.Doplayername,opt.Dir);
                }
                else
                {
                    obinfmp[opt.Doplayername].ToUseSkill(opt.Skillid);
                    //ToPlaySkill(opt.Doplayername,opt.Skillid);
                }
            }

            //逻辑时间更新
            time += eachframtime;
        }

        foreach (var e in obinfmp)
        {
            e.Value.UpdateCreature();
        }
        BulletsManager.Update();
    }