public TileSelection(GameWindow win) { InitializeComponent(); this.win = win; // Grab tiles string[] files = Directory.GetFiles("res/res/tiles", "*.png"); files.ToList().ForEach(x => { RadioButton cb = new RadioButton(); cb.Appearance = Appearance.Button; cb.Image = Bitmap.FromFile(x); cb.Size = new Size(32, 32); flow_tiles.Controls.Add(cb); string tilename = Path.GetFileNameWithoutExtension(x); cb.Tag = win.LoadTile(tilename, x); cb.CheckedChanged += new EventHandler((ob, ev) => { selectedtile = (int)cb.Tag; }); }); MapList ml = new MapList(); ml.Show(); (flow_tiles.Controls[0] as RadioButton).Checked = true; // Make the selection box Bitmap box = new Bitmap(32, 32); using (Graphics gfx = Graphics.FromImage(box)) { gfx.FillRectangle(new SolidBrush(Color.FromArgb(0, Color.Black)), new Rectangle(0, 0, 32, 32)); gfx.DrawRectangle(new Pen(Color.Cyan), new Rectangle(0, 0, 31, 31)); } selectionbox = new AnObject(win.LoadTile("selection", box)); m = new Map(win, 30, 30); m.CheckPassable = false; m.SetCeiling(selectionbox, 0, 0); m.FillFloor(new FloorTile(0)); s = new Scene(m); win.Scene = s; // Set up the keys s.KeyDown += new EventHandler<KeyEventArgs>((o, e) => { m.SetCeiling(null, m.CameraX, m.CameraY); switch (e.KeyCode) { case Keys.Up: m.CameraY--; break; case Keys.Down: m.CameraY++; break; case Keys.Left: m.CameraX--; break; case Keys.Right: m.CameraX++; break; case Keys.Space: m.SetFloor(new FloorTile(selectedtile), m.CameraX, m.CameraY); break; //case Keys.Escape: // mnu.Visible = !mnu.Visible; // break; } m.SetCeiling(selectionbox, m.CameraX, m.CameraY); }); }
private void btn_newmap_Click(object sender, EventArgs e) { MapConfig mc = new MapConfig(); mc.ShowDialog(); m = new Map(win, mc.MapWidth, mc.MapHeight); m.FillFloor(new FloorTile(0)); m.SetCeiling(selectionbox, 0, 0); s.ChangeMap(m); }