Hey Abend'
Bin gerade mit einem Anfang meiner MapEngine fertig geworden, soll eine MapEngine werden, welches grafisch wie der RPG MAKER aufgebaut ist und zum Schluss habe ich vor einen 2D Chat daraus zu basteln.
Um mich ein wenig reinzuüben in die Materie - Zeichnen, malen & etc habe ich es direkt mit der eigentlichen Engine versucht bin aber gescheitert nun habe ich aber einen neuen Ansatz.
Vorerst jedoch möchte ich meine Colormap vorstellen,
Sie kreiert Kästen in ein Image (z.B. PictureBox.Image) - die Größe je Kasten ist einstellbar (ich empfehle 32x32 auf 640x480 Auflösung) - benötigt wird nur eine Colormap Datei.
Aufbau:
Erste Beiden Werte erklären sich von selbst und die restlichen sind Kästen angeordnet nach Reihenfolge.
Beispiel Mapdatei:
colormap1.map
c# Code
Alles anzeigen
Aufrufbeispiel:
Ich bin für Verbesserungsvorschläge offen.
Bin gerade mit einem Anfang meiner MapEngine fertig geworden, soll eine MapEngine werden, welches grafisch wie der RPG MAKER aufgebaut ist und zum Schluss habe ich vor einen 2D Chat daraus zu basteln.
Um mich ein wenig reinzuüben in die Materie - Zeichnen, malen & etc habe ich es direkt mit der eigentlichen Engine versucht bin aber gescheitert nun habe ich aber einen neuen Ansatz.
Vorerst jedoch möchte ich meine Colormap vorstellen,
Sie kreiert Kästen in ein Image (z.B. PictureBox.Image) - die Größe je Kasten ist einstellbar (ich empfehle 32x32 auf 640x480 Auflösung) - benötigt wird nur eine Colormap Datei.
Aufbau:
Erste Beiden Werte erklären sich von selbst und die restlichen sind Kästen angeordnet nach Reihenfolge.
Beispiel Mapdatei:
colormap1.map
Quellcode
- 20|20|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1|22,33,120|255,120,0|0,10,50|255,210,0|120,55,1
Quellcode
- static public Image ParseColorSet(Size TileSize, String ColorMapFile)
- {
- StreamReader reader = new StreamReader(ColorMapFile);
- String[] MapData = reader.ReadToEnd().Split('|');
- reader.Close();
- Int32 MapWidth = Convert.ToInt32(MapData[0]) * TileSize.Width;
- Int32 MapHeight = Convert.ToInt32(MapData[1]) * TileSize.Height;
- Bitmap ReturnMap = new Bitmap(MapWidth, MapHeight);
- Int32 Tile = 2;
- for (int y = 0; y <= MapHeight - TileSize.Height; y += TileSize.Height)
- {
- for (int x = 0; x <= MapWidth - TileSize.Width; x += TileSize.Width)
- {
- if (Tile >= MapData.Length)
- return ReturnMap;
- String[] colors = MapData[Tile].Split(',');
- Int32 red = Convert.ToInt32(colors[0]);
- Int32 green = Convert.ToInt32(colors[1]);
- Int32 blue = Convert.ToInt32(colors[2]);
- Color TileColor = Color.FromArgb(red, green, blue);
- for (int PY = y; PY < TileSize.Height + y; PY++)
- {
- for (int PX = x; PX < TileSize.Width + x; PX++)
- {
- ReturnMap.SetPixel(PX, PY, TileColor);
- }
- }
- Tile++;
- }
- }
- return ReturnMap;
- }
Ich bin für Verbesserungsvorschläge offen.