Gleichmäßiges Drehen eines Entitys zu einem anderen
Übersicht BlitzBasic Blitz3D
joshmamiBetreff: Gleichmäßiges Drehen eines Entitys zu einem anderen |
Do, Jan 05, 2012 22:00 Antworten mit Zitat |
|
---|---|---|
Hey Community,
Ich habe folgendes Problem: In dem Flugzeug-Spiel das ich gerade programmiere sollen die Gegner den Spieler "verfolgen". Allerdings sollen die Gegner-Flugzeuge natürlich auch nur ein begrenztes Handling haben, also kann ich das ganze nicht mit PointEntity regeln, da dabei sich die Gegner ja sofort zum Spieler drehen würden. Es kann gut sein, dass es einen einfachen mathematischen Berechnungsweg gibt, den ich in der Schule noch nicht hatte, deswegen frage ich ja euch |
||
Mfg Joshmami |
Nicdel |
Do, Jan 05, 2012 22:49 Antworten mit Zitat |
|
---|---|---|
Winkel ausrechnen, dann mit TurnEntity langsam drehen. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
joshmami |
Do, Jan 05, 2012 22:56 Antworten mit Zitat |
|
---|---|---|
Klingt einfach, ist es aber nicht
1. Wie soll man den Winkel berechnen? 2.Da sich beide Entities mit möglicherweise unterschiedlicher Geschwindigkeit bewegen, ändert sich ja auch der Winkel ständig 3. Ist das ganze ja auch noch im 3-Dimensionalem Raum, daher bräuchte man eher mindestens 2 Winkel |
||
Mfg Joshmami |
Nicdel |
Do, Jan 05, 2012 23:08 Antworten mit Zitat |
|
---|---|---|
Ich würd mir das so vorstellen (2D):
Winkel A und B kann man dann mit Hilfe von sin/cos/tan ausrechnen. |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
joshmami |
Fr, Jan 06, 2012 0:07 Antworten mit Zitat |
|
---|---|---|
Habe das ganze jetzt nach langen vergeblichen Bemühungen Tobchens im Chat doch mit AlignToVector gelöst, wie Xeres mir geraten hatte.
Danke an alle, die sich darüber Gedanken gemacht haben |
||
Mfg Joshmami |
darth |
Fr, Jan 06, 2012 0:14 Antworten mit Zitat |
|
---|---|---|
Aaaaw.. und grad jetzt wo ich fertig bin
Trotzdem: BlitzBasic: [AUSKLAPPEN] Graphics 800, 600, 0, 2 Prinzipiell: (1) Man berechnet den Winkel zwischen der Geschwindigkeit des Flugzeugs (das hat ja eine Richtung nach vorne, also ausgedrückt im Winkel phi) V (2) und dem Vektor zum Ziel D. Weil der generelle ACos(V*D) nur positive Zahlen liefert, (3) drehe ich D ins System von V (d.h V = [1;0]) und nehme dann den ATan2(T) vom gedrehten Vektor T. (4) Dann ein bisschen croppen auf eine maximale Winkelgeschwindigkeit et voilà. Der olle Xeres hat sich beschwert, dass meine Erklärung nicht verständlich sei (lern Mathe, faules Aas!), daher ein Erklärbild (ohne Elefanten, das überlasse ich den Trollen, lulz!): Erweitern zu 3D ist straightforward, man betrachtet das Problem separat auf zwei Ebenen (einmal XZ, einmal YZ - oder permutiert, jenachdem wie man sein Flugzeug ausrichtet). MfG, Darth |
||
Mr.Keks |
Fr, Jan 06, 2012 3:37 Antworten mit Zitat |
|
---|---|---|
Was spricht gegen DeltaYaw und DeltaPitch? (Es gab irgendeinen Spezialfall, in dem die fehlerhafte Ergebnisse liefern, wofür man dann so wie darth arbeiten muss. Aber bevor du das Problem erreichst, sind die beiden doch erstmal deine Freunde.) | ||
MrKeks.net |
joshmami |
Fr, Jan 06, 2012 3:46 Antworten mit Zitat |
|
---|---|---|
Oha, das hört sich besser regulierbarer als AlignToVector an und ist für mich weniger kompliziert als Darth's Riesenlösung
Danke |
||
Mfg Joshmami |
Übersicht BlitzBasic Blitz3D
Powered by phpBB © 2001 - 2006, phpBB Group