Hallo zusammen,
seit längerem beschäftige ich mich mit der Strategiespielbewegung. Ich habe vor ein 2D Strategiespiel zu programmieren. Das ganze soll erstmal 2D aus der Vogelperspektive sein.
Im Moment habe ich schon die Bewegung ausgerechnet, d.h. es wird ein Panzer per JButton erzeugt, man kann diesen anklicken und ihn dann beliebig rumschicken.
Nur ist das etwas langweilig wenn dieser dabei ständig in die gleiche Richtung schaut. Deshalb habe ich mich mich Rotationen beschäftigt.
Fast überall wird auf "AffineTransform" verwiesen. Es ist unter anderem generell eines meiner Probleme, dass ich bei den meisten Funktionen oder anderen vorgefertigten Klassen keine Ahnung habe wie diese arbeiten und deshalb meistens nur durch rumprobieren und Quellcode umstellen oder Werte einsetzen dann zu einem Ergebnis komme.
So auch geschehen bei AffineTransform. Ich hatte schon ein beinahe zufriedenstellendes Ergebnis, aber mir fiel auf, dass was ich da geschrieben habe wirklich "Banane" war, also alles andere als guter Programmierstil.
Deshalb bin ich zur Mathematik gewechselt und siehe da habe auch gleich was gefunden.
Nun zu dem was ich machen will.
Also mein Panzer 20 auf 20 erscheint in einem Fenster. Man klickt ihn an und will ihn bewegen, d.h. man klickt irgendwo ins Fenster und er fährt los. Ich möchte aber, dass sich der Panzer zuerst in Bewegungsrichtung dreht und dann erst losfährt. Ich hoffe soweit klar!?!
Schließlich noch zu dem was ich bisher habe:
1. den Winkel Theta der von dem Panzer und der Maus eingeschlossen wird und
2. die neuen Koordinaten nach einer Drehung um den Winkel Theta. (Drehmatrix)
3. die Additionstheoreme (Formeln)
So blöd wie es klingt, aber ich habe ein Problem mit dem Anfangswinkel, also wenn das Bild das erste Mal gezeichnet wird. Ich weiß zwar, dass der 0 ist, aber dennoch muss ich ja nach meiner Vorstellung den ursprünglichen Bildvektor zu den neuen Koordinaten drehen. Ach ja, im Uhrzeigersinn und gegen den Uhrzeigersinn drehen, erreicht man durch invertieren der Vorzeichen in der Drehmatrix soweit ich noch weiß... .
Wäre schön, wenn mir jemand, der an dem Problem Interesse hat ein paar Tipps geben könnte.
Gruß Eichelhäer
seit längerem beschäftige ich mich mit der Strategiespielbewegung. Ich habe vor ein 2D Strategiespiel zu programmieren. Das ganze soll erstmal 2D aus der Vogelperspektive sein.
Im Moment habe ich schon die Bewegung ausgerechnet, d.h. es wird ein Panzer per JButton erzeugt, man kann diesen anklicken und ihn dann beliebig rumschicken.
Nur ist das etwas langweilig wenn dieser dabei ständig in die gleiche Richtung schaut. Deshalb habe ich mich mich Rotationen beschäftigt.
Fast überall wird auf "AffineTransform" verwiesen. Es ist unter anderem generell eines meiner Probleme, dass ich bei den meisten Funktionen oder anderen vorgefertigten Klassen keine Ahnung habe wie diese arbeiten und deshalb meistens nur durch rumprobieren und Quellcode umstellen oder Werte einsetzen dann zu einem Ergebnis komme.
So auch geschehen bei AffineTransform. Ich hatte schon ein beinahe zufriedenstellendes Ergebnis, aber mir fiel auf, dass was ich da geschrieben habe wirklich "Banane" war, also alles andere als guter Programmierstil.
Deshalb bin ich zur Mathematik gewechselt und siehe da habe auch gleich was gefunden.
Nun zu dem was ich machen will.
Also mein Panzer 20 auf 20 erscheint in einem Fenster. Man klickt ihn an und will ihn bewegen, d.h. man klickt irgendwo ins Fenster und er fährt los. Ich möchte aber, dass sich der Panzer zuerst in Bewegungsrichtung dreht und dann erst losfährt. Ich hoffe soweit klar!?!
Schließlich noch zu dem was ich bisher habe:
1. den Winkel Theta der von dem Panzer und der Maus eingeschlossen wird und
2. die neuen Koordinaten nach einer Drehung um den Winkel Theta. (Drehmatrix)
3. die Additionstheoreme (Formeln)
So blöd wie es klingt, aber ich habe ein Problem mit dem Anfangswinkel, also wenn das Bild das erste Mal gezeichnet wird. Ich weiß zwar, dass der 0 ist, aber dennoch muss ich ja nach meiner Vorstellung den ursprünglichen Bildvektor zu den neuen Koordinaten drehen. Ach ja, im Uhrzeigersinn und gegen den Uhrzeigersinn drehen, erreicht man durch invertieren der Vorzeichen in der Drehmatrix soweit ich noch weiß... .
Wäre schön, wenn mir jemand, der an dem Problem Interesse hat ein paar Tipps geben könnte.
Gruß Eichelhäer