protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); var fs = File.Open(@"C:\Users\ANTHONY\Downloads\tilesets2\tileset1.png", FileMode.Open); Texture2D tilesetTexture = Texture2D.FromStream(GraphicsDevice, fs); tileSet = new TileSet(tilesetTexture, Engine.TileWidth, Engine.TileHeight); fs.Close(); fs.Dispose(); map = new TileMap(40, 40); MapLayer mapLayer = new MapLayer(map); MapLayer bushes = new MapLayer(map); for (int x = 0; x < 40; x++) for (int y = 0; y < 40; y++) mapLayer.SetTile(x, y, new Tile(0, 0)); mapLayer.Visible = false; map.AddTileSet(tileSet); map.AddLayer(mapLayer); map.AddLayer(bushes); map.CurrentLayerIndex = 1; Camera.Initialize( Vector2.Zero, new Rectangle() { Width = graphics.PreferredBackBufferWidth, Height = graphics.PreferredBackBufferHeight }, new Vector2(map.WidthInTiles * Engine.TileWidth, map.HeightInTiles * Engine.TileHeight) ); Camera.MaxClamp = new Vector2( map.WidthInTiles * Engine.TileWidth - Camera.View.Width, map.HeightInTiles * Engine.TileHeight - Camera.View.Height ); }
/// <summary> /// Adds a layer to the map /// </summary> /// <param name="l"></param> public void AddLayer(MapLayer l) { layers.Add(l); }
private void btnOK_Click(object sender, EventArgs e) { this.DialogResult = System.Windows.Forms.DialogResult.OK; var tileSets = gameRef.level.TileSets; gameRef.level = new TileMap((int)numWidth.Value, (int)numHeight.Value); if (cboGeneration.SelectedIndex != 0) { foreach (TileSet s in tileSets) gameRef.level.AddTileSet(s); } else { gameRef.level.AddTileSet(new TileSet(@"TileSheets\dirt.png", Engine.TileWidth, Engine.TileHeight)); } var layer1 = new MapLayer(gameRef.level); var layer2 = new MapLayer(gameRef.level); var layer3 = new MapLayer(gameRef.level); switch (cboGeneration.SelectedIndex) { case 1: // TODO: Generate level with dungeon algorithm for (int x = 0; x < layer1.WidthInTiles; x++) for (int y = 0; y < layer1.HeightInTiles; y++) { layer1.SetTile(x, y, new Tile(groundTile_Layer1, selectedTileSet_Layer1)); } layer2 = MapLayer.GenerateFromAlgorithm(MapLayer.GenerationAlgorithm.Dungeon_DrunkenWalk, gameRef.level, selectedTileSet_Layer2, wallTile:wallTile_Layer2); break; case 2: // TODO: Generate level with perlin algorithm break; } gameRef.level.AddLayer(layer1); gameRef.level.AddLayer(layer2); gameRef.level.AddLayer(layer3); Camera.MaxClamp = new Vector2(gameRef.level.WidthInPixels - Canvas.CANVAS_WIDTH, gameRef.level.HeightInPixels - Canvas.CANVAS_HEIGHT); this.Close(); }