Exemple #1
0
        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);
                    }
                }
            }
        }