示例#1
0
        /// <summary>
        /// 找到离自己最近的精灵
        /// </summary>
        /// <returns>
        /// 如果没有找到,返回null
        /// </returns>
        public SceneSprite FindNearSprite()
        {
            var         player      = Controller.Model.Player;
            float       minDistance = 警戒距离;
            SceneSprite retSprite   = null;

            foreach (var sp in Controller.Scene.Sprites)
            {
                var distance = Vector3.Distance(sp.Postion, player.Postion);
                if (distance < minDistance)
                {
                    minDistance = distance;
                    retSprite   = sp;
                }
            }

            return(retSprite);
        }
示例#2
0
        /// <summary>
        /// 将玩家对象转换为场景精灵对象
        /// </summary>
        /// <param name="player"></param>
        /// <returns></returns>
        public static SceneSprite GetSceneSprite(this Player player)
        {
            var ss = player.GetComponent <SceneSprite>();

            if (ss == null)
            {
                ss = new SceneSprite
                {
                    Id         = player.Id,
                    Name       = player.Name,
                    SpriteType = SpriteType.Player,
                };
                player.RegisterComponent(ss);
            }

            ss.Rotation = player.Rotation;
            ss.Postion  = player.Postion;

            return(ss);
        }
示例#3
0
        /// <summary>
        /// 将玩家对象转换为场景精灵对象
        /// </summary>
        /// <param name="player"></param>
        /// <returns></returns>
        public static SceneSprite GetSceneSprite(this Player player)
        {
            var ss= player.GetComponent<SceneSprite>();

            if (ss == null)
            {
                ss = new SceneSprite
                {
                    Id = player.Id,
                    Name = player.Name,
                    SpriteType = SpriteType.Player,
                };
                player.RegisterComponent(ss);
            }

            ss.Direction = player.Direction;
            ss.Postion = player.Postion;

            return ss;
        }
示例#4
0
 private void OnSpriteMove(DateTime arg1, SceneSprite sprite)
 {
     Console.WriteLine("看到玩家 {0} 在 {1} 移动中", sprite.Name, sprite.Postion);
 }