Zielsuchend Schiessen
-
Und wenn man keine ahnung von Vektoren hat, so wie ich ;), dann kann man den winkel zwischen gegner raumschiff und spieler raumschiff ausrechnen.
Kennt hier zufällig jemand ne gute deutsche einleitung oder so zu vektoren ?
In der Schule will und will das net dran kommen .
-
Schon mal bei Wikipedia nach geschaut ?
Ansonsten sollte auch eine einfache Suche mit google oder eine anderen Suchmaschine ausreichen.http://de.wikipedia.org/wiki/Vektor
Bin irgendwie gerade gut gelaunt ...
-
-
so ich habe das problem gelöst
die die sich dafür interessieren hier mein ansatzErst wird der winkel berechent zwischen Gegner und Spieler.
Diese dann auf das 2D Bild übergeben. Dadurch zeigt das Bild dann auf den Spieler
Jetzt ne einfach kleine Abfrage.if (Schuss.x > Spieler.x)
Schuss.x--;
else if(Schuss.x < Spieler.x)
Schuss.x++;if (Schuss.y > Spieler.y)
Schuss.y--;
else if(Schuss.x < Spieler.y)
Schuss.y++;Dabei jedesmal den Winkel zwischen Schuss und Spieler ausrechnen und das Schussbild dabei ausrichten lassen.
sieht nicht schlecht aus einwenig wie so eine verfolgungsrakete.
einfach nicht wahr
so simple kann es auch seinthx an alle lösungsansätze

-
Das rockt nicht.
B----- \ \ \ \ A
-
besonders kann das bild dann in eine andere richtung, als es sich eigentlich bewegt, zeigen..
Wenn du den Winkel schon ausrechst, dann multiplizier doch einfach deinen ursprünglichen bewegungsvektor (z.b. (0;-5)) mit der entsprechenden drehmatrix (bzw. umgekehrt) ..
-
Man kann das irgendwie mit Atan berechnen, keine Ahnung mehr wie, hab ich ich vergessen...
-
sbrog schrieb:
Man kann das irgendwie mit Atan berechnen, keine Ahnung mehr wie, hab ich ich vergessen...
Ja genau:
double getRotation (double x, double y) { return atan2 (y, x) / PI * 180; }Diese Funktion hab ich in meinem letzten Game verwendet. Geb dann an x und y die Differenz zwischen Start- und Zielposition ein und du bekommst als Rückgabe deinen Winkel.
-
/ PI * 190 muss nicht sein, von daher ist diese "Funktion" etwas sinnlos und dazu auch noch schlecht benannt.
Bye, TGGC (Keine Macht den Dummen)
-
TGGC schrieb:
/ PI * 190
autsch
-
Soll man direkt mit bogenmas weiter rechnen ?
Wie benutzt man das ?
-
/ PI * 190
hehe der unschlüssige der sich nicht entscheiden kann ob er nun den kreis auf 360 Grad oder 400 Grad normt entscheidet sich für den Mittelwert

-
Mortal2006 schrieb:
Soll man direkt mit bogenmas weiter rechnen ?
Wie benutzt man das ?
autsch²
Bye, TGGC (Keine Macht den Dummen)
-
k.
-
Windalf schrieb:
/ PI * 190
hehe der unschlüssige der sich nicht entscheiden kann ob er nun den kreis auf 360 Grad oder 400 Grad normt entscheidet sich für den Mittelwert

Der Wert ist ja eben völlig egal, also kann man auch 2Pi lassen, vor allem weil alle Funktionen aus cmath usw. ebendies benutzen.
Bye, TGGC (Keine Macht den Dummen)
-
Benutzt doch den Satz des Pytagoras:
a u. b == Katheten.
c folglich die Hypotenuse.c² = a² + b²
Man muss das natürlich für jede Achse berechnen...
€ Ach ja, das soll ein rechtwinkliges Dreieck sein

-
roan312 schrieb:
c² = a² + b²
€ Ach ja, das soll ein rechtwinkliges Dreieck sein

Sonst nimmst den allgemeineren Fall
a^2 + b^2 - 2abcos(gamma) = c^2
Wobei gamma der von a und b eingeschlossene Winkel ist. Fuer rechte Winkel ist das zufaellig Null und siehe da, da ist der alte Pyty wieder

Ich kann auch nur Vektoren empfehlen, das ist das einfachste und normalerweise auch das schnellste fuer diesen Fall. Wenn man Vektoren nicht kennt, die sollten eigentlich in jedem guten Einfuehrungsbuch zur Spieleentwicklung erlautert werden oder man geht mal in eine Bibliothek und schaut unter "Lineare Algebra", da gibts ne ganze Menge. Ein Kumpel der an der Uni CG lehrt schwoert auf "Lineare Algebra" von Gilbert Strang.
so far
Phil