Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 05:02

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Do Apr 28, 2005 15:00 
Offline
DGL Member

Registriert: Di Apr 26, 2005 14:25
Beiträge: 3
hi,
Wie sollte ich bei der Programmierung eines 2D-Map Editors vorgehen?
So grundsätzliche Sachen hab ich mir schon überlegt, so möchte ich ein Array benutzen an dem jedes Tile gespeichert wird.
Ein Tile hat seinen eigenen code (0=Rasen,1=Wasser ...) dieser Wert wird dann einfach in eine Textdatei gespeichert und später wieder ausgelesen.
Doch mein Problem ist jetzt: Wie kann man einen solchen Editor in Delphi realisieren?
Meine Idee war bis jetzt: 100x100 (also die größe der Map) TImages neben- und untereinander zu machen und auf den angeklickten TImage denn das gerade aktive Tile zu zeichnen und gleichzeitig den Wert in den besagten Array zu speichern ... aber das ist wohl die denkbar schlechteste und umständlichste Idee.
Wie würdet ihr bei soetwas vorgehen?

thx, n!x :wink:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 28, 2005 15:13 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Günstig wärs sich gleich mal von TImage zu verabschienden, OpenGL zu satteln und in den Sonnenuntergang zu code.... öhm sorry ich schweif ab.

Also ich hab mir für meinen HexmapEditor 2 panels genommen in denen ich mit OpenGL die karte render. In das Eine Panel render ich die Palette in das andere die Karte. Welches Feld du gerade angeklickt hast, kannst du mittels selection rausfinden. Und Cool aussehen tuts extra noch.
(Genialer Nebeneffekt: Im späteren Spiel kannst du die karte dann leicht schräg rendern, dadurch wirkt sie etwas 3D mäßiger.)

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Do Apr 28, 2005 15:16 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Also nicht mit 10.000 TImage komponenten. ;-)

1. Ein TImage in dem du, sagen wir mal 20 x 20 Tiles darstellst. Das ganze verzieht mit einer Scrollbar links und unten und irgendwo eine kleine Minimap um zu sehen wo man sich befindet. Ein Pixel spiegelt dort ein Tile wieder oder so was. Das ist nur gimick macht die Sache aber wesentlich übersichtlicher.

Zum Darstellen der Map würde ich es dann so gestalten, dass du in das Bitmap des TImage hineinzeichnest. Wenn du deine Tiles 20x20 Pixel groß sind macht das eine Gesammtgröße von 400x400 Pixel. Die Anzahl der darzustellenden Tiles kannst du auch an das Fenster anpassen. Nur dadurch werden die Berechnungen komplizierter. Sobald eine Scrollbar dann bewegt wird musst du entsprechend die Map neuzeichnen. Wenn du dann in das Image klickst sollte es recht einfach sein, die aktuelle Position herraszufinden. Ich würde da auch vorschlagen, dass du vorerst nur ganze Felder scrollst.

2. Als alternative zu dem selber Zeichnen kannst du auch TDrawGrid verwenden. Da müsstest du dann enstprechend die Tiles im OnDrawCell zeichnen und zu Begin die höhe und breite der Zellen auf die des Tiles setzen. Das dürfte vom Aufwand her geringer sein. Allerdings sind die Grids von Delphi ein wenig umständlicher zu handhaben. Aber da wird dir in deinem Fall schon recht viel arbeit abgenommen. Also Tastatursteuerung. Aktive Zelle herausfinden.

3. Wie Flash vorgeschlagen hat mit OpenGL und Selektion. Wenn du eine sinnvolle Architektur dahinter hast, kannst du in deinem Editor die gleichen Klassen verwenden wie dann im fertigen Spiel. Also zum Darstellen der Landschaft ist ja klar.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]