Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Formationen (http://www.informatikerboard.de/board/thread.php?threadid=4256)


Geschrieben von Tommy1234 am 19.11.2019 um 18:52:

  Formationen

Hallo,

ich möchte einheiten auf einem orthogonalen 2d Grid formatieren.

Tendenziell soll das ganze in Richtung aoe2 gehen.

Im Moment gehe ich das ganze so durch das ich aus einer liste die jeweilige id rausnehme also z.B. isses ein peasant oder ein Bogenschütze usw. und diese dann nachdem der erste am ziel angekommen ist abhängig von dessen Blickrichtung formatiere. Soll heißen milliz vorne dann nahkämpfer usw. und hinten die artillerie.
Das ganze bereitet mir allerdings Schwierigkeiten hinsichtlich der Überschaubarkeit und meinen symmetrievorstellungen ^^. Mal angenommen ich habe 5 millizen,die stehen, mit Blickrichtung nach oben, nebeneinander. Dahinter dann 3 Bogenschützen und dahinter dann drei Katapulte.

Meine Frage ist wie erzeugt man annähernd symmetrische reihen, ob nun einer fehlt oder nicht ist egal?
Und anhand welchen wertes entscheide ich wie breit eine reihe nun ist z.b 5 oder 10 in einer reihe ( bei mehreren einheiten)?


In meinem Beispiel wäre meine Absicht alles in 3er Reihen zu positionieren.

Also: 3 Millizen dahinter 2 millizen dahinter wiederum 3 Bogenschützen und wiederum hinter denen 3 Katapulte.

Hier mal etwas Codeunglücklich JAVA)

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:

if(winner != null) {
				
    entities.remove(winner);
				
    if(winner.path != null) {
        if(winner.path.size() == 0) {
	    if(winner.lastdirection==0) {
		while(!entities.isEmpty()) {
		    next = Collections.min(entities);
			if(next.type == "peasant") {
			    next.path = TiledMap.findPath((int)next.tileposition.x,(int)next.tileposition.y,(int)winner.tileposition.x+2,(int)winner.tileposition.y);
		        }
			if(next.type == "archer") {
				next.path = TiledMap.findPath((int)next.tileposition.x,(int)next.tileposition.y,(int)winner.tileposition.x%4,(int)winner.tileposition.y/4);
		        }
			winner = next;
			entities.remove(next);
		}
          }
     }
}




Geschrieben von Tommy1234 am 20.11.2019 um 12:46:

 

nachtrag:

ich speichere jetz die gewünschte Formation abhängig von der benutzereingabe (button) in einer liste also z. B.

A A A A A A A
R R R R R R R
K K K K K K K

und übertrage diese dann auf die einehiten mal sehen obs klappt. Mehr Ideen hab ich grade nicht



Geschrieben von Tommy1234 am 15.12.2019 um 22:21:

 

Hat sich erledigt


Forensoftware: Burning Board, entwickelt von WoltLab GmbH