G
grayson
Gast
Hallo, ich arbeite an einem hexfeldbasierten strategiespiel und habe bei der einheiten bewegungsberechnung ein problem :
dazu mal nen screenshot :
der mech dort soll eine bewegungsreichweite von sagen wir 4 feldern haben. die einzelnen felder befinden sich in einem array mit x und y koordinate und können darüber auch explizit angesprochen werden.
bei einer bewegungsweite von 4 feldern, würde sich ein großes sechseck mit den eckpunkten : 4 felder hoch /runter, 4 felder links/rechts, 4 felder schräg hoch/runter zu beiden seiten ergeben, wie eingezeichnet. (rot)
wie ich im array auf die 6 eckpunkte komme, das bekomm ich hin. aber von der einheit aus soll jedes feld innerhalb dieses sechseckes markiert werden mit so einem netten lila, wie es bereits um die einheit herum zu sehen ist.
dazu die erste frage : wie bekomm ich die felder innerhalb des arrays die innerhalb des sechseckes liegen ?
frage 2 - und die macht das ganze erst interessant - :
die verschiedenen geländetypen begünstigen, erschweren oder verhindern bewegung einer einheit.
so soll zb eine strasse eine bewegung begünstigen ( +2 ), normaler boden (+0), wald (-1), berge (-2) ,wasser - verhindern.
diese sache verändert das bewegungssechseck natürlich um einiges. so müssten zb 2 felder strasse nach oben noch dazu selektiert werden , die 3 felder berge oben allerdings abgezogen. genau wie unten der wald, bei dem jeweils die äusseren felder ( die wo die roten linien durchlaufen ) abgezogen werden müssten.
zu dieser berechnung der ganzen bewegung fehlt mir grad jede idee. wenn ihr eine habt, lasst es mich wissen !
p.s. annahme : einheit steht auf feld x=90,y=90
dann sind die eckpunkte des sechseckes :
oben = x=90, y = 90 -4
unten = x=90, y= 90+4
links = x= 90-4,y=90
rechts = x=90+4,y=90
oben links = x= 90-4, y= 90-4
oben rechts = x= 90+4, y= 90-4
unten links = x= 90-4, y=90+4
unten rechts = x=90+4, y= 90+4
dazu mal nen screenshot :

der mech dort soll eine bewegungsreichweite von sagen wir 4 feldern haben. die einzelnen felder befinden sich in einem array mit x und y koordinate und können darüber auch explizit angesprochen werden.
bei einer bewegungsweite von 4 feldern, würde sich ein großes sechseck mit den eckpunkten : 4 felder hoch /runter, 4 felder links/rechts, 4 felder schräg hoch/runter zu beiden seiten ergeben, wie eingezeichnet. (rot)
wie ich im array auf die 6 eckpunkte komme, das bekomm ich hin. aber von der einheit aus soll jedes feld innerhalb dieses sechseckes markiert werden mit so einem netten lila, wie es bereits um die einheit herum zu sehen ist.
dazu die erste frage : wie bekomm ich die felder innerhalb des arrays die innerhalb des sechseckes liegen ?
frage 2 - und die macht das ganze erst interessant - :
die verschiedenen geländetypen begünstigen, erschweren oder verhindern bewegung einer einheit.
so soll zb eine strasse eine bewegung begünstigen ( +2 ), normaler boden (+0), wald (-1), berge (-2) ,wasser - verhindern.
diese sache verändert das bewegungssechseck natürlich um einiges. so müssten zb 2 felder strasse nach oben noch dazu selektiert werden , die 3 felder berge oben allerdings abgezogen. genau wie unten der wald, bei dem jeweils die äusseren felder ( die wo die roten linien durchlaufen ) abgezogen werden müssten.
zu dieser berechnung der ganzen bewegung fehlt mir grad jede idee. wenn ihr eine habt, lasst es mich wissen !
p.s. annahme : einheit steht auf feld x=90,y=90
dann sind die eckpunkte des sechseckes :
oben = x=90, y = 90 -4
unten = x=90, y= 90+4
links = x= 90-4,y=90
rechts = x=90+4,y=90
oben links = x= 90-4, y= 90-4
oben rechts = x= 90+4, y= 90-4
unten links = x= 90-4, y=90+4
unten rechts = x=90+4, y= 90+4