Autor Beitrag
Martok
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: 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. :wink:

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Martok Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Sa 17.05.08 11:55 
Ähm, ja. Genau das steht oben :roll:

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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 765
Erhaltene Danke: 130



BeitragVerfasst: Sa 17.05.08 14:09 
user profile iconMartok 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:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 3661
Erhaltene Danke: 604

Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
BeitragVerfasst: Sa 17.05.08 17:07 
Gut, ist genau das was ich auch festgestellt hab (mit Skizze 8) ):

ausblenden 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 :idea:

_________________
"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."