/// <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); }
/// <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); }
/// <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; }
private void OnSpriteMove(DateTime arg1, SceneSprite sprite) { Console.WriteLine("看到玩家 {0} 在 {1} 移动中", sprite.Name, sprite.Postion); }