예제 #1
0
 internal override void Load(Level context)
 {
     base.Load(context);
     LevelCompleted = false;
     foreach (WorldObject s in ToAdd)
     {
         OurSprite o = s as OurSprite;
         if (o != null)
         {
             o.Respawn();
         }
     }
 }
예제 #2
0
        internal override void Update()
        {
            This.Game.AudioManager.StopAllLoopingSoundEffects();

            List <Sprite> livingPlayers = (This.Game.CurrentLevel as FrostbyteLevel).allies.
                                          Where(x => x.State != SpriteState.Dead).ToList();

            if (livingPlayers.Count == 0)
            {
                foreach (WorldObject sprites in mWorldObjects)
                {
                    OurSprite s = sprites as OurSprite;
                    if (s != null)
                    {
                        s.Respawn();
                    }
                }
            }

            base.Update();

            RealignViewport();

            Vector3  cameraPosition = new Vector3(Camera.Pos, 0);
            Viewport viewport       = This.Game.GraphicsDevice.Viewport;
            float    zoom           = This.Game.CurrentLevel.Camera.Zoom;

            StartDraw = (cameraPosition + new Vector3(viewport.X, viewport.Y, 0)) / Tile.TileSize;
            EndDraw   = (cameraPosition + new Vector3(viewport.X + viewport.Width / zoom,
                                                      viewport.Y + viewport.Height / zoom, 0)) / Tile.TileSize;

            if ((This.Game as FrostbyteGame).GlobalController.NextLevel == ReleasableButtonState.Clicked)
            {
                Unload();
            }
        }