//========================================================================== //Upload a sprite sheet to work with //========================================================================== private void uploadSpriteSheetToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog selectDir = new OpenFileDialog { Filter = "Image files (*.jpg, *.jpeg, *.jpe, *.jfif, *.png) | *.jpg; *.jpeg; *.jpe; *.jfif; *.png" }; if (selectDir.ShowDialog() == DialogResult.OK) { SelectedSheet = new Bitmap(Image.FromFile(selectDir.FileName)); SpriteSheet.Clear(); SpriteSheetActivator.Clear(); working = true; OnTop = new Bitmap(SelectedSheet.Size.Width, SelectedSheet.Size.Height); mapboundlabel.Location = new Point(SelectedSheet.Size.Width + 1, SelectedSheet.Size.Height + 1); Loger.write(mapboundlabel.Location.ToString()); for (int i = 0; i < SelectedSheet.Width / TileSize; i++) { for (int j = 0; j < SelectedSheet.Height / TileSize; j++) { SpriteSheet.Add(new Rectangle(0 + i * TileSize, 0 + j * TileSize, TileSize, TileSize)); SpriteSheetActivator.Add(new Coloring(false)); } } UsePanel.Invalidate(); } }
//========================================================================== //Selects a rectangle //========================================================================== private void UsePanel_MouseClick(object sender, MouseEventArgs e) { int i = 0; Point pt = new Point(e.Location.X - UsePanel.AutoScrollPosition.X, e.Location.Y - UsePanel.AutoScrollPosition.Y); foreach (Rectangle x in SpriteSheet) { if (x.Contains(pt)) { Graphics g = Graphics.FromImage(OnTop); if (UpTool && !SpriteSheetActivator[i].up) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Green)), x); SpriteSheetActivator[i].change(0, true, x); UsePanel.Invalidate(); return; } else if (DownTool && !SpriteSheetActivator[i].down) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Yellow)), x); SpriteSheetActivator[i].change(1, true, x); UsePanel.Invalidate(); return; } else if (LeftTool && !SpriteSheetActivator[i].left) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Blue)), x); SpriteSheetActivator[i].change(2, true, x); UsePanel.Invalidate(); return; } else if (RightTool && !SpriteSheetActivator[i].right) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Purple)), x); SpriteSheetActivator[i].change(3, true, x); UsePanel.Invalidate(); return; } else if (ProjectileTool && !SpriteSheetActivator[i].attack) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Red)), x); SpriteSheetActivator[i].change(4, true, x); UsePanel.Invalidate(); return; } } else { i++; } } }
private void button5_Click(object sender, EventArgs e) { foreach (Coloring x in SpriteSheetActivator) { if (x.attack == true) { Graphics g = Graphics.FromImage(OnTop); g.FillRectangle(new SolidBrush(UsePanel.BackColor), x.rect); g.FillRectangle(new TextureBrush(SelectedSheet, x.rect), x.rect); x.change(5, false, x.rect); UsePanel.Invalidate(); } } }
private void AssignCodeFile(int index, MouseEventArgs e, bool draw) { Point pt = new Point(e.Location.X - UsePanel.AutoScrollPosition.X, e.Location.Y - UsePanel.AutoScrollPosition.Y); Graphics g = Graphics.FromImage(CodeVisual); g.SmoothingMode = SmoothingMode.AntiAlias; g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; if (draw) { MapHandler[SelectedMap].getTileCodes().Add(new Classes.MapClass.TileCode(index, CodeHandler[SelectedCode])); } else if (!draw) { for (int i = 0; i < MapHandler[SelectedMap].getTileCodes().Count(); i++) { if (MapHandler[SelectedMap].getTileCodes()[i].Rectangle == index) { MapHandler[SelectedMap].getTileCodes().RemoveAt(i); break; } } } if (draw && !AlreadyDrawnCode[index]) { g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Aqua)), MapHandler[SelectedMap].getRectangles()[index]); AlreadyDrawnCode[index] = true; } else if (!draw) { g.FillRectangle(new TextureBrush(MapHandler[SelectedMap].getMapImage(), MapHandler[SelectedMap].getRectangles()[index]), MapHandler[SelectedMap].getRectangles()[index]); AlreadyDrawnCode[index] = false; } UsePanel.Invalidate(); }
private void disableCodeAssignToolStripMenuItem_Click(object sender, EventArgs e) { ShowCode = false; SelectionStripDDB.ForeColor = Color.Red; UsePanel.Invalidate(); }
private void enableCodeAssignToolStripMenuItem_Click(object sender, EventArgs e) { ShowCode = true; SelectionStripDDB.ForeColor = Color.Green; UsePanel.Invalidate(); }
//========================================================================== //Choose a map to code //========================================================================== public void AssignMap(string Map) { for (int i = 0; i < MapHandler.Count; i++) { if (MapHandler[i].getMapName() == Map) { SelectedMap = i; PanelBounds.Location = new Point((MapHandler[SelectedMap].getColCount() * MapHandler[SelectedMap].getTileSize()) + 1, (MapHandler[SelectedMap].getRowCount() * MapHandler[SelectedMap].getTileSize()) + 1); MapSelected = true; Grid = new Bitmap((MapHandler[SelectedMap].getColCount() * MapHandler[SelectedMap].getTileSize()), (MapHandler[SelectedMap].getRowCount() * MapHandler[SelectedMap].getTileSize())); Pen pen = new Pen(Color.Black); Graphics g = Graphics.FromImage(Grid); g.SmoothingMode = SmoothingMode.AntiAlias; g.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; g.PixelOffsetMode = PixelOffsetMode.HighQuality; g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.FillRectangle(new SolidBrush(Color.Transparent), 0, 0, Grid.Size.Width, Grid.Size.Height); StringFormat format = new StringFormat() { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; Font font = new Font("Tahoma", FontSize); //Draws a grid and tile numbers for (int r = 0; r < MapHandler[SelectedMap].getRowCount(); r++) { for (int c = 0; c < MapHandler[SelectedMap].getColCount(); c++) { Rectangle rect = new Rectangle( 0 + c * MapHandler[SelectedMap].getTileSize(), 0 + r * MapHandler[SelectedMap].getTileSize(), MapHandler[SelectedMap].getTileSize(), MapHandler[SelectedMap].getTileSize()); g.DrawRectangle(pen, rect); g.DrawString((r * MapHandler[SelectedMap].getRowCount() + c).ToString(), font, Brushes.Black, rect, format); } } CodeVisual = new Bitmap((MapHandler[SelectedMap].getColCount() * MapHandler[SelectedMap].getTileSize()), (MapHandler[SelectedMap].getRowCount() * MapHandler[SelectedMap].getTileSize())); g = Graphics.FromImage(CodeVisual); g.FillRectangle(new SolidBrush(Color.Transparent), 0, 0, CodeVisual.Size.Width, CodeVisual.Size.Height); for (int j = 0; j < MapHandler[SelectedMap].getRectangles().Count(); j++) { AlreadyDrawnCode.Add(false); foreach (Classes.MapClass.TileCode x in MapHandler[SelectedMap].getTileCodes()) { if (j == x.Rectangle) { AlreadyDrawnCode[j] = true; g.FillRectangle(new SolidBrush(Color.FromArgb(75, Color.Aqua)), MapHandler[SelectedMap].getRectangles()[j]); break; } } } UsePanel.Invalidate(); break; } } }