| Autor |
Beitrag |
Martok
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Fr 16.05.08 23:55
Hallo!
Ich hab grade beim Durchstöbern meiner Iconsammlung ein paar schicke Hex-Tiles (also 6-Eckige Tile-Grafiken) gefunden. Da würde ich gerne ein Spiel drumrum programmieren
Bloß habe ich keine wirkliche Idee wie man diese Tiles am besten ablegt. Irgendwie muss man feststellen können, welche Tiles angrenzen. Durch den Versatz da drin stelle ich mir das aber relativ kompliziert vor. Da denke ich aber wieder viel zu viel um die Ecke, oder?
Wie legt man solche Maps am einfachsten ab? Ein 2-Dimensionales Array, ja. Aber wie kriege ich dann raus welche Tiles angrenzen?
mfg
Martok
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Sa 17.05.08 11:04
2D-Array ist schonmal gut, jede zweite Reihe ist dann einfach um eine halbe Tilebreite nach rechts verschoben (und ist natürlich auch keine komplette Tilehöhe unter der drüber)
Wenn man die so ablegt, ist es auch relativ leicht, die angrenzenden Tiles zu finden. 
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
Martok 
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Sa 17.05.08 11:55
Ähm, ja. Genau das steht oben
Oben und unten mag ja noch gehen, die sind ja nur 2 Reihen drüber/drunter. Aber die andern Richtungen find ich doof, da müsste man ja grade/ungrade Zeilen anders behandeln, oder?
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
ub60
      
Beiträge: 765
Erhaltene Danke: 130
|
Verfasst: Sa 17.05.08 14:09
Martok hat folgendes geschrieben: | | Oben und unten mag ja noch gehen, die sind ja nur 2 Reihen drüber/drunter. Aber die andern Richtungen find ich doof, da müsste man ja grade/ungrade Zeilen anders behandeln, oder? |
Muss man nicht.
Ich habe mir jetzt in einer Minute eine Skizze gemacht und festgestellt, dass die Adressierung und das Erkennen benachbarter Felder absolut einfach ist.
Beispiel:
Quelltext 1: 2: 3: 4: 5: 6:
| 2,1 1,1 3,1 2,2 1,2 3,2 2,3 1,3 3,3 |
Benachbart (rechts/links) zu 2,2 sind 1,1 und 3,1 oben und 1,2 und 3,2 unten.
Das Schreiben hat mich viel mehr Zeit gekostet als die Skizze.
Probiere es doch auch mal mit einer Skizze
ub60
|
|
Martok 
      
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Sa 17.05.08 17:07
Gut, ist genau das was ich auch festgestellt hab (mit Skizze  ):
Quelltext 1: 2: 3: 4: 5: 6: 7:
| Für alle: (X,Y+-1) Ungerade Spalte(1,3,...): (X+-1,Y) (X+-1,Y+1) Grade Spalte(2,4,...): (X+-1,Y-1) (X+-1,Y) |
Also doch etwas rechnen... darum ging es mir eigentlich bloß. Ich denke aber zwecks Beschleunigung des ganzen werd ich das noch so verpointern, dass jedes Feld alle Nachbarn kennt. So muss ich nicht jedes mal nachrechnen, wo einer ist 
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
|