Exemple #1
0
        //==========================================================================
        //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();
            }
        }
Exemple #2
0
        //==========================================================================
        //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++;
                }
            }
        }
Exemple #3
0
 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;
                }
            }
        }