Example #1
0
        /// <summary>
        /// 玩家通报一次移动
        /// </summary>
        /// <remarks>
        /// 我也不想要这么多参数
        /// 但是unity3d的对象的参数,不是以属性的方式存在
        /// 不能被协议代码生成工具识别,只好把参数拆开
        /// </remarks>
        /// <param name="netstate">网络客户端</param>
        /// <param name="time">当前客户端时间</param>
        /// <param name="postion"></param>
        /// <param name="rotation"></param>
        /// <param name="speed"></param>
        /// <param name="rotationRate"></param>
        /// <param name="speedUpType"></param>
        public void OnMove(NetState netstate, DateTime time, Vector3 postion, Quaternion rotation, float speed, float rotationRate,
                           SpeedUpTypes speedUpType)
        {
            var player = (Player)netstate.Player;

            if (player == null)
            {
                return;
            }

            //Console.WriteLine(postion.ToString() + direction.ToString());
            //  理论上这里需要对玩家的位置做验证,这里先忽略,全部信任
            //player.Postion = postion;
            //player.Direction = direction;

            //  广播给场景里的其它玩家
            var onlinePlayer = WorldEntityManager.OnlinePlayers.ToArray();

            foreach (var p in onlinePlayer)
            {
                if (p.Id != player.Id)
                {
                    ClientProxy.Scene.SpriteMove(p.NetState, player.Id, time, postion, rotation
                                                 , speed, rotationRate, speedUpType);
                }
            }
        }
Example #2
0
        internal override void OnSpriteMove(int spriteId, DateTime time, Vector3 postion, Quaternion rotation,
                                            float speed, float rotationRate, SpeedUpTypes speedUpType)
        {
            var sprite = m_sprites.FirstOrDefault(o => o.Id == spriteId);

            if (sprite == null)
            {
                Logs.Error("本地没发现精灵id{0}", spriteId);
                return;
            }

            sprite.Postion      = postion;
            sprite.Rotation     = rotation;
            sprite.Speed        = speed;
            sprite.RotationRate = rotationRate;
            sprite.SpeedUpTypes = speedUpType;

            if (SpriteMove != null)
            {
                SpriteMove(time, sprite);
            }
        }
Example #3
0
        /// <summary>
        /// 玩家通报一次移动
        /// </summary>
        /// <remarks>
        /// 我也不想要这么多参数
        /// 但是unity3d的对象的参数,不是以属性的方式存在
        /// 不能被协议代码生成工具识别,只好把参数拆开
        /// </remarks>
        /// <param name="netstate">网络客户端</param>
        /// <param name="time">当前客户端时间</param>
        /// <param name="postion"></param>
        /// <param name="rotation"></param>
        /// <param name="speed"></param>
        /// <param name="rotationRate"></param>
        /// <param name="speedUpType"></param>
        public void OnMove(NetState netstate, DateTime time, Vector3 postion, Quaternion rotation, float speed, float rotationRate,
            SpeedUpTypes speedUpType)
        {
            var player = (Player)netstate.Player;

            if (player == null)
                return;

            //Console.WriteLine(postion.ToString() + direction.ToString());
            //  理论上这里需要对玩家的位置做验证,这里先忽略,全部信任
            //player.Postion = postion;
            //player.Direction = direction;

            //  广播给场景里的其它玩家
            var onlinePlayer = WorldEntityManager.OnlinePlayers.ToArray();
            foreach (var p in onlinePlayer)
            {
                if (p.Id != player.Id)
                {
                    ClientProxy.Scene.SpriteMove(p.NetState, player.Id, time, postion, rotation
                        , speed, rotationRate, speedUpType);
                }
            }
        }
Example #4
0
 /// <summary>
 /// 设置船只速度
 /// </summary>
 /// <param name="types"></param>
 public void SetSpeedUpType(SpeedUpTypes types)
 {
     SpeedUpType = types;
 }
Example #5
0
        /// <summary>
        /// 获得不同帆张力下的船只加速度
        /// </summary>
        /// <param name="types"></param>
        /// <returns></returns>
        protected float GetAcceleration(SpeedUpTypes types)
        {
            float[] speedRate = { 0f, 0.25f, 0.5f, 0.75f, 1f };

            return(speedRate[(int)types] * Acceleration);
        }
Example #6
0
        /// <summary>
        /// 获得当前可以移动的最大速度
        /// </summary>
        /// <param name="types"></param>
        /// <returns></returns>
        protected float GetCurrentMaxSpeed(SpeedUpTypes types)
        {
            float[] speedRate = { 0f, 0.25f, 0.5f, 0.75f, 1f };

            return(speedRate[(int)types] * MaxMoveSpeed);
        }
Example #7
0
        internal override void OnSpriteMove(int spriteId, DateTime time, Vector3 postion, Quaternion rotation,
            float speed, float rotationRate, SpeedUpTypes speedUpType)
        {
            var sprite = m_sprites.FirstOrDefault(o => o.Id == spriteId);
            if (sprite == null)
            {
                Logs.Error("本地没发现精灵id{0}", spriteId);
                return;
            }

            sprite.Postion = postion;
            sprite.Rotation = rotation;
            sprite.Speed = speed;
            sprite.RotationRate = rotationRate;
            sprite.SpeedUpTypes = speedUpType;

            if (SpriteMove != null)
                SpriteMove(time, sprite);
        }
Example #8
0
        /// <summary>
        /// 获得当前可以移动的最大速度
        /// </summary>
        /// <param name="types"></param>
        /// <returns></returns>
        protected float GetCurrentMaxSpeed(SpeedUpTypes types)
        {
            float[] speedRate = { 0f, 0.25f, 0.5f, 0.75f, 1f };

            return speedRate[(int)types] * MaxMoveSpeed;
        }
Example #9
0
        /// <summary>
        /// 获得不同帆张力下的船只加速度
        /// </summary>
        /// <param name="types"></param>
        /// <returns></returns>
        protected float GetAcceleration(SpeedUpTypes types)
        {
            float[] speedRate = { 0f, 0.25f, 0.5f, 0.75f, 1f };

            return speedRate[(int)types] * Acceleration;
        }
Example #10
0
 /// <summary>
 /// 设置船只速度
 /// </summary>
 /// <param name="types"></param>
 public void SetSpeedUpType(SpeedUpTypes types)
 {
     SpeedUpType = types;
 }