Ejemplo n.º 1
0
 /// <summary>
 ///     Erstellt ein Bitmap Objekt unter Verwendung von Tileset, Tilemap und Palette
 /// </summary>
 /// <param name="set">Tileset, welches die Grafikdaten enthält</param>
 /// <param name="tileWidth">Breite der Ausgabegrafik in Tiles</param>
 /// <param name="fillColor">Farbe mit der nicht vorhandene Flächen gefüllt werden</param>
 /// <param name="drawingPalette">Palette, die zur Darstellung verwendet werden soll</param>
 /// <returns></returns>
 public Bitmap ToBitmap(Tileset set, int tileWidth, Color fillColor, Palette drawingPalette)
 {
     int tileHeight = Entries.Count/tileWidth;
     var output = new Bitmap(tileWidth*8, tileHeight*8);
     System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(output);
     for (int y = 0; y < tileHeight; ++y)
     {
         for (int x = 0; x < tileWidth; ++x)
         {
             int index = (y*tileWidth) + x;
             if (index > Entries.Count)
             {
                 g.FillRectangle(new SolidBrush(fillColor), x*8, y*8, 8, 8);
                 continue;
             }
             g.DrawImage(set.GetTileFromIndex(Entries[index].TileNumber).ToBitmap(drawingPalette),
                 new Point(x*8, y*8));
         }
     }
     g.Dispose();
     return output;
 }
Ejemplo n.º 2
0
 /// <summary>
 ///     Erstellt ein Bitmap aus dem einzelnen Tilemap Eintrag
 /// </summary>
 /// <param name="drawingSet">Das zu verwendende Tileset</param>
 /// <param name="drawingPalette">Die zur Darstellung verwendete Palette</param>
 /// <returns>Bitmap, welches den Eintrag darstellt</returns>
 public Bitmap ToBitmap(Tileset drawingSet, Palette drawingPalette)
 {
     if (drawingSet.GetTileCount() < TileNumber)
         throw new Exception(String.Format("Das angegebene Tileset enthält Tile {0} nicht", TileNumber));
     Bitmap output = drawingSet.GetTileFromIndex(TileNumber).ToBitmap(drawingPalette);
     if (HorizontalMirror)
     {
         output.RotateFlip(RotateFlipType.RotateNoneFlipX);
     }
     if (VerticalMirror)
     {
         output.RotateFlip(RotateFlipType.RotateNoneFlipY);
     }
     return output;
 }