[gelöst] Tilemap mit TCanvas? Oder doch was anderes?

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...

[gelöst] Tilemap mit TCanvas? Oder doch was anderes?

Beitragvon Hartkern » 25. Mai 2016, 18:46 [gelöst] Tilemap mit TCanvas? Oder doch was anderes?

Hallo,
ich zerbreche mir seit Wochen eigentlich den Kopf über eineTile Based Map in Lazarus.
Meine Idee ist es die Tiles in 32x32 TImages auf ein Panel zu basteln..Die Tiles sind in ner Klasse definiert und haben ein Onclick Event..Aus der Map, welches ein 2d Array aus meinen Tiles ist, wird lediglich der sichtbare Bereich angezeigt.

Gibt es irgendwelche Verbesserungsvorschläge für TImage als "Container" da ich ja nen Onclick Event gern für jedes Tile hätte, da ich ansonsten das geklickte Tile "ausrechnen" müsste.
Zuletzt geändert von Hartkern am 10. Jun 2016, 16:46, insgesamt 1-mal geändert.
Hartkern
 
Beiträge: 68
Registriert: 5. Dez 2015, 20:03
Wohnort: Leipzig
OS, Lazarus, FPC: Win10 IDE 1.6 | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 25. Mai 2016, 19:49 Re: Tilemap mit TCanvas? Oder doch was anderes?

Bin mir nicht sicher ob ich dich richtig verstehe, aber wenn du TImages in einer Gitterstruktur anordnest und für jedes leicht auf das OnClick reagieren willst, dann könntest du dir auch mal TDrawGrid ansehen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1971
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Hartkern » 25. Mai 2016, 20:00 Re: Tilemap mit TCanvas? Oder doch was anderes?

Das würde eigentlich nur funktionieren wenn die Karte nur so groß ist, wie das Grid oder?
Hartkern
 
Beiträge: 68
Registriert: 5. Dez 2015, 20:03
Wohnort: Leipzig
OS, Lazarus, FPC: Win10 IDE 1.6 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Mathias » 25. Mai 2016, 21:43 Re: Tilemap mit TCanvas? Oder doch was anderes?

Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 4342
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 26. Mai 2016, 07:17 Re: Tilemap mit TCanvas? Oder doch was anderes?

Hartkern hat geschrieben:Das würde eigentlich nur funktionieren wenn die Karte nur so groß ist, wie das Grid oder?

Ja, aber das ist doch eigentlich kein Problem.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1971
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Michl » 26. Mai 2016, 08:18 Re: Tilemap mit TCanvas? Oder doch was anderes?

m.fuchs hat geschrieben:
Hartkern hat geschrieben:Das würde eigentlich nur funktionieren wenn die Karte nur so groß ist, wie das Grid oder?

Ja,
Nicht unbedingt. Man kann das Grid scrollen oder ein Offset relativ zum Grid (oder der sonstigen Komponente). Evtl. müsste man manuell Scrollbars hinzufügen.
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2260
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon m.fuchs » 26. Mai 2016, 08:47 Re: Tilemap mit TCanvas? Oder doch was anderes?

Michl hat geschrieben:
m.fuchs hat geschrieben:
Hartkern hat geschrieben:Das würde eigentlich nur funktionieren wenn die Karte nur so groß ist, wie das Grid oder?

Ja,
Nicht unbedingt. Man kann das Grid scrollen oder ein Offset relativ zum Grid (oder der sonstigen Komponente). Evtl. müsste man manuell Scrollbars hinzufügen.

Achso, mit Größe des Grids ist die Größe des Controls im Form gemeint. Ich meine die Größe aller Zellen, ob jetzt sichtbar oder verdeckt und nur durch Scrollen zu erreichen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1971
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

Beitragvon Hartkern » 26. Mai 2016, 13:41 Re: Tilemap mit TCanvas? Oder doch was anderes?

Im sichtbaren Bereich des Bildschirms meinte ich..ich werd mich dann doch an TImages wagen und diese als Tiles nebeneinander/untereinander legen.

Was mir des Weiteren nen Kopf zerbricht:

wenn ich die Karte, welches lediglich nen 2d Integer Array ist, lade und anhand dieser dann ein 2d Array of Tile erzeuge, sind die Images dann schon quasi fertig geladen und sichtbar, obwohl sie im nicht sichtbaren Bereich der Zeichenfläche rumschwirren? Oder muss ich diese erzeugen wenn sie in meinen sichtbaren Bereich liegen und sobald wenn ich scrolle diese wieder löschen /free?
Sprich prüfen, welcher Ausschnitt aus dem Integer Array sich im sichtbaren Bereich befindet und dann erst erzeugen und löschen?
Hartkern
 
Beiträge: 68
Registriert: 5. Dez 2015, 20:03
Wohnort: Leipzig
OS, Lazarus, FPC: Win10 IDE 1.6 | 
CPU-Target: 64Bit
Nach oben

Beitragvon m.fuchs » 26. Mai 2016, 14:07 Re: Tilemap mit TCanvas? Oder doch was anderes?

Hartkern hat geschrieben:Im sichtbaren Bereich des Bildschirms meinte ich..

Ok, das ist kein Problem mit dem Grid. Es zeichnet nur die Zellen die sichtbar sind, aber es kümmert sich selbst darum welche Zellen das sind. Zum Beispiel wenn der Benutzer scrollt.

Hartkern hat geschrieben:ich werd mich dann doch an TImages wagen und diese als Tiles nebeneinander/untereinander legen.

Wie gesagt, ich denke dass das Grid die bessere Lösung ist.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
m.fuchs
 
Beiträge: 1971
Registriert: 22. Sep 2006, 18:32
Wohnort: Berlin
OS, Lazarus, FPC: Winux (L 1.8.4, FPC 3.0.4) | 
CPU-Target: x86, x64, arm
Nach oben

• Themenende •

Zurück zu Multimedia



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried