protected override void LoadContent() { SaveGame.Load(); spriteBatch = new SpriteBatch(GraphicsDevice); // Load sounds sounds = AudioLibrary.Instance; sounds.Add("Destroy", Content.Load <SoundEffect>("destroy")); sounds.Add("Win", Content.Load <SoundEffect>("win")); sounds.Add("Step", Content.Load <SoundEffect>("step")); sounds.Add("Stick", Content.Load <SoundEffect>("stick")); sounds.Add("Save", Content.Load <SoundEffect>("save")); // Prepare spritesheets atlasTex = Content.Load <Texture2D>("atlas" + GridPosition.CELL_SIZE); atlas = new SpriteSheet(spriteBatch, atlasTex, 4, 4); Texture2D editorTex = Content.Load <Texture2D>("editorAtlas"); SpriteSheet systemAtlas = new SpriteSheet(spriteBatch, editorTex, 8, 8); // Prepare player Texture2D playerAtlas = Content.Load <Texture2D>("playerAtlas"); player = new Player(new SpriteSheet(spriteBatch, playerAtlas, 4, 4), 0); // Prepare level loading loader = new LevelLoader(atlas, Content); editor = new LevelEditor(atlas, systemAtlas); editor.Player = player; editor.OnNewLevel += delegate { currentLevel = SaveGame.LevelCount; LoadLevel(); }; // Prepare UI instruction = new TextSprite(systemAtlas, TextSprite.Alignement.CENTER, 7, 14); progression = new TextSprite(systemAtlas, TextSprite.Alignement.RIGHT, 15, 16); score = new TextSprite(systemAtlas, TextSprite.Alignement.LEFT, 0, 16); bottomMenu.AddButton(new Sprite(systemAtlas, 10), delegate { currentLevel = 0; LoadLevel(); }); bottomMenu.AddButton(new Sprite(systemAtlas, 13), LoadPreviousLevel); bottomMenu.AddButton(new Sprite(systemAtlas, 14), LoadNextLevel); bottomMenu.AddButton(new Sprite(systemAtlas, 11), delegate { currentLevel = SaveGame.LevelCount - 1; LoadLevel(); }); // Player inputs inputs = new Command(); inputs.Map(Keys.Left, Command.Event.JUST_DOWN, () => MovePlayer(Sprite.Direction.LEFT)); inputs.Map(Keys.Right, Command.Event.JUST_DOWN, () => MovePlayer(Sprite.Direction.RIGHT)); inputs.Map(Keys.Up, Command.Event.JUST_DOWN, () => MovePlayer(Sprite.Direction.UP)); inputs.Map(Keys.Down, Command.Event.JUST_DOWN, () => MovePlayer(Sprite.Direction.DOWN)); // System inputs inputs.Map(Keys.Space, Command.Event.JUST_DOWN, LoadLevel); inputs.Map(Keys.PageUp, Command.Event.JUST_DOWN, LoadNextLevel); inputs.Map(Keys.PageDown, Command.Event.JUST_DOWN, LoadPreviousLevel); inputs.Map(Keys.Tab, Command.Event.JUST_DOWN, ToggleLevelEditor); // Load title screen level LoadLevel(); }