private static void OnLeave(MsgBase msgBase) { MsgLeave msgLeave = (MsgLeave)msgBase; GameSence gameSence = ContainerBuilder.Resolve <GameSence>(); Sprite spr = gameSence.sprites.Where(sprite => sprite.Id == msgLeave.playId).FirstOrDefault(); if (spr != null) { SpriteDestorySystem spriteDestorySystem = SpriteDestorySystem.GetSpriteDestorySystem(); spriteDestorySystem.sprites.Enqueue(spr); } }
public void Execute() { var sprites = scence.sprites; //碰撞监听 Player player = (Player)sprites.Where(sprite => sprite.GetType() == typeof(Player) && sprite.Id == ScenceController.user.Userid).FirstOrDefault(); if (player != null) { List <Sprite> skills = sprites.Where(sprite => sprite.GetType() == typeof(Skill)).ToList(); for (int j = skills.Count - 1; j >= 0; j--) { if (player.Position.X == skills[j].Position.X && player.Position.Y == skills[j].Position.Y) { SpriteDestorySystem spriteDestorySystem = SpriteDestorySystem.GetSpriteDestorySystem(); spriteDestorySystem.sprites.Enqueue(player); MsgLeave msgLeave = new MsgLeave { playId = player.Id }; NetManagerEvent.Send(msgLeave); } } } }