Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
05.01.2002, 16:38
The_Overmind



Moin ihr *in die Runde wink*

Ich will mich ma ein wenig fortbilden und setz mich nu an Projektile aller Art :)

Dazu gehört natürlich daß die Projektile wie bei Gunman die Raketen auf einer Spiralförmigen Flugbahn fliegen.

In der Theorie hab ich daß Problem auch scho gelöst.
Daß Geschoß muss nur einfach um die Z und X Achse mit gleicher Geschwindigkeit rotieren.

Der Punkt wos lustig wird:
pev->avelocity.z bei den Geschoßen funzt.
nur wenn ich pev->avelocity.x zu verändern versuch passiert nichts.

weder mit nem Think der die Angles Manuell ändert noch mit avelocity.x

Nur leider funzt NICHTS.
Hat jemand eine Ahnung wie daß klappen könnte ??

Scho ma vielen Dank im vorraus

*wink und verweh*
The Overmind

--

zum Seitenanfang zum Seitenende Profil || Suche
001
05.01.2002, 17:23
Prefect



Einer der Gunman-Coder hat mal auf HLCoders erwähnt, daß die Spiralraketen bei Gunman total simpel aufgebaut sind: Sie fliegen prinzipiell erstmal geradeaus, zielen dann aber auf die nächstgelegene Entity. Dadurch entsteht automatisch eine doppelte Spiralbahn...

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
002
05.01.2002, 18:50
The_Overmind



Hmm
scho ma ein Anfang, dank dir Prefect.

Ich wollt daß nur in etwa so hinkriegen wie in Surprise die Gauss Gun im Pulse Mode. Wer die Mod nicht hat: die Gauss verschießt Projektile die erst auf einer geraden Flugbahn sind, dann aber in eine Spiral-förmige Flugbahn einschwenken. Das Ganze funktioniert ohne dem Gunman-Prinzip, die Viecher können in 10 tausender Scharen oder auch alleine fliegen.

Das Grundprinzip habbisch ja, nur pev->avelocity.x funkt nit.

*in die Runde guck*
Hat sonst noch jemand einen klugen Tip für mich parat ??

Overmind

--

zum Seitenanfang zum Seitenende Profil || Suche
003
06.01.2002, 14:47
apfelkorn



ich würds mit ner verschiebnung des origing mit sin probieren... mach aber bevor du das spiel startest erst einen array mit sinus-werten, dann muss der rechner nicht soviel laufzeit-rumrechnen

--

zum Seitenanfang zum Seitenende Profil || Suche
004
07.01.2002, 17:16
Another1



jo .. hatte das mal für TOM (mein ehemaliger SC Coder Sklave) fürn 2ndaryredeemermode gecoded ... muss ihn mal nach code fragen, war relative einfach ... spiralförmig um ne bahn bewegen

edit:
aber das array mit sinus werten kannst dir schenken *gg*

--

Another1

...relaxing..atm =)
... und Schweiz suckt!


Dieser Beitrag wurde am 07.01.2002 um 17:17 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
07.01.2002, 22:30
apfelkorn



na dann mal prost mit fps, Die werden sich sicherlich auch nach dem muster der sinusfunktion bewegen :)

--

zum Seitenanfang zum Seitenende Profil || Suche
006
07.01.2002, 22:41
Another1



wo zur hölle nimmst du deine angst vor der sinusfunction her??
hier nen bissle code für dich:
Quellcode:
int i = 999999;
while(i)
sin(i--);

;)

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
007
08.01.2002, 14:20
The_Overmind




Das Ding fliegt einfach auf einer kack um 45° gedrehten Zick-Zack Bahn.
Hab auch leider kein Plan mehr wos nu hängen könnte.

Code der Think-Funktion
Quellcode:
Vector circle;
float x2, y2;
float pdistance;
Vector direct;

if ( distance >= 32 )
distance = 32;
else
distance++;

x1 = cos(winkel) * distance;
y1 = sin(winkel) * distance;    // Anfangsposi

winkel++;
if ( winkel > 360 )
winkel -= 360;
if ( winkel < 0 )
winkel +=360;

x = sin(winkel) * distance;
y = cos(winkel) * distance;

x2 = x - x1;
y2 = y - y1;     // Posi fürn nächten Winkel

direct = pev->origin + directionright * x2 + directionup * y2;  //Posi fürn nächsten Winkel als Vector für Normalize

circle = (direct - pev->origin).Normalize(); // Richtung von erster zur zweiten Posi

pdistance = pow( sqrt( x2 ) + sqrt( y2 ), 1/2 );   //2D Entfernung vom 1. und 2. Punkt für Geschwindigkeitsberechnung

pev->velocity = directionforw * 100 + circle * 500;    //  directionforwa = abgespeichertes gpGlobals->forward fürs Projektil

pev->nextthink = gpGlobals->time + 0.05;

Wer weiß was dadrin scheisse is, bitte melden. =)
Vielen Dank scho ma wieder im Vorraus
Ich weiß nit mehr wie ich es sonst machen könnte, besonders kann ich mir die Zick-Zack Bahn nit erklären

Overmind

--


Dieser Beitrag wurde am 08.01.2002 um 15:48 von The_Overmind bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
008
08.01.2002, 22:11
Another1



versuch mal das hier:
sin(winkel*PI/180) ... und das überall

bye

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
009
08.01.2002, 23:31
The_Overmind



Ach jaaaaaaaa!!!
Stimmat ja, C++/HL rechnet ja Winkel im Bogenmaß und nicht in Grad *gg*

Vielen Dank Another1, bist ma wieder Retter in der Not :)

--

zum Seitenanfang zum Seitenende Profil || Suche