Limit Entity's rotation | Drehung eines Models beschränken

Posted By: jps

Limit Entity's rotation | Drehung eines Models beschränken - 01/13/09 19:24

Hi there,

first off, i'm currently working on my first game project, along with two other students.

It's a racing game, like wipeout, basicly a scifi racing game with gliders.

To cut to the chase: I want my glider to rotate around the z-axis, to lean the glider during a turn. Therefore i would have to stop the rotation at a point, so the glider won't continue to turn around itself. That's what's not happening atm ^^

With the debugger I saw that the information I need is given within my.ang, but I couldn't find any useful information how to manipulate it, I would be really thankfull for a hint

----------

Gude,

ich arbeite zur Zeit mit zwei weiteren Studenten an meinem ersten PC-Game, einem Wipeout-Clone. Quasi SciFi Renngame mit nem Gleiter.

Der soll sich in der Kurve natürlich schön zur Seite neigen, aber daran scheitere ich zZ kläglich....

Über .pan dreht er sich schon schön, hört nur gar nicht mehr auf ^^. Per Debugger habe ich gesehen in my.ang stehen die Rotationswerte um die Axen(?), aber ich konnte noch nicht an Tuts etc finden, in denen beschrieben wird wie man eine Art Schranke festlegen kann.

Was ich such ist ein weg um zu checken ob sich der gleicher mehr als 15° nach links/rechts neigt und dann halt nicht weiter zu drehen....

Hat vlt jemand einen Tip?
Posted By: the_mark

Re: Limit Entity's rotation | Drehung eines Models beschränken - 01/13/09 21:03

Nun, erstmal braucht Du für die Neigung TILT und nicht PAN.
Sprich, Du neigst den Gleiter mit my.tilt.

Zweitens: wenn der Gleiter seine Winkel sonst nicht ändern soll, sondern nur geradeausfliegen soll, ist Dein Problem recht einfach zu lösen.

Dazu brauchst Du eine Variable wo der maximale Neigewert drinsteht:
var max_tilt = 15;

In der Funktion des Gleiters dann:

// Neigung nach rechts
if (abs(my.tilt) <= max_tilt)
{
my.tilt -= 1;
}

// Neigung nach links
if (my.tilt <= max_tilt)
{
my.tilt += 1;
}

Habe ich noch nicht getestet, ist eher eine spontane Idee und gilt NUR für den reinen Geradeausflug...
© 2023 lite-C Forums