Gegner drehen in Spielerrichtung (B3D)
Übersicht

![]() |
ONeillBetreff: Gegner drehen in Spielerrichtung (B3D) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leutz, ich hab mal wieder ne Frage!
Ich bastel im Moment an einem Ego Shooter und habe mir 2 Sachen gedacht! Ersten könnte man vielleicht den Gegner immer Richtung der Spieler Position laufen lassen (geht soweit ich weiß nicht^^) und dann habe ich mir gedacht... ich berechne einfach den Winkel, um den sich der Gegner (ein Gargoyle) drehen muss, damit er auf den Spieler zuläuft! Hier der Code: BlitzBasic: [AUSKLAPPEN] ;Gargoyle bewegen Nun meine Frage dazu... wie berechne ich den Winkel, so dass er stimmt? Im Moment geht der Winkel (ich habe 90-Drehwinkel noch nicht drin etc...) von 0 - ca 56°, er müsste aber pro viertel (4 Abfrage rund um den Gegner) 90° haben... alles irgendwie komisch! Vielleicht findet ja einer den Fehler oder kann helfen oder hat ne Idee, wie man es noch einfacher machen kann ![]() |
||
![]() |
ONeill |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich bin nun schon weiter... aber das Vieh dreht sich immer noch net richtig...da die Winkel nicht bis 90 Grad gehen... und insgesamt also nur knapp 260 Grad Umfangswinkel existieren....
WIESO????? ^_^ Ansonsten dreht er sich schon Richtung Spieler ![]() BlitzBasic: [AUSKLAPPEN] ;Gargoyle bewegen |
||
![]() |
Waveblue |
![]() Antworten mit Zitat ![]() |
---|---|---|
kommt drauf an!
Wenn der Gegner sich nicht langsam auf ihn zudrehen soll empfehl ich dir BlitzBasic: [AUSKLAPPEN] PointEntity Mfg Wave |
||
This is 10% luck
20% skill 15% concentrated power of will 5% pleasure, 50% pain and 100% reason to remember the name |
![]() |
ONeill |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh man... und ich stell wirre Rechnungen auf ... ![]() Dabei gibt es nen ganz einfachen Befehl... *g* Ist irgendwie... NICHT LUSTIG ^_^ Dieser Befehl... naja, ist zwar ganz nett, aber sobald der Gegner zu nahe kommt, wird er schief und liegt.... das ist nicht gut ![]() Da muss ich wohl weitertüfteln... (oder weiter auf Hilfe warten) |
||
Wer Rechtschreibfehler findet, darf sie behalten! |
![]() |
theotheoderich |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube, dass ging in etwa so:
Code: [AUSKLAPPEN] drehgeschw#=3 ;Drehgeschw. des Gegners
If Abs(DeltaYaw(spielermesh,gegnermesh)) > drehgeschw# Then TurnEntity spielermesh,0,Sgn(DeltaYaw(spielermesh,gegnermesh))*drehgeschw#,0 else moveentity gegnermesh,0,0,1 ;Gegner vorwärts bewegen end if So, oder so ähnlich ![]() |
||
Gruß
TheoTheoderich -- The box label said, "Requires Windows XP or better.", so I bought an Amiga Computer. |
![]() |
ONeill |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok... ich schau mir erstmal an was der ganze Code bedeutet und dann teste ich ihn mal, danke schonmal ![]() Sorry, aber der spuckt mir immer ein Memory Access Violation aus... entweder stimmt also was mit der ersten If Codezeile nicht (da meckert er) ... oder... kA ![]() OK, meine ganze schöne Rechnung... ist für die Katz gewesen, wie ich nun gesehen hab, das Problem ist gelöst, mit 3 Codezeilen ^_^ BlitzBasic: [AUSKLAPPEN] Drehwinkel1#=DeltaYaw(gargoyle1,cam) |
||
Wer Rechtschreibfehler findet, darf sie behalten! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group