[ascoders] 3D Vector aus Winkel

  • From: am@xxxxxxxxxxxxxxxxxx
  • To: ascoders@xxxxxxxxxxxxx
  • Date: Sun, 2 May 2004 17:47:14 +0200 (CEST)

        hi,



ich wollte schon länger mich an einer Vektor-Racing-Engine wagen.
Die Idee ist, nur die nächsten X Tiles zu berechnen und zu plazieren. Damit 
sollte man schon einiges aus die Beine stellen können :o)

http://www.andre-michelle.com/files/temp/vrace.swf

Man fährt aus der Egosicht, also die Kamera ist der Referenzpunkt.
Vorsicht, es gibt (noch) keine Beschränkungen der Fahrbahn.


mein Problem ist den richtigen Vektor aus dem Sichtwinkel zu berechnen.
Wenn ihr ein paar Meter fahrt, kommt ein Looping. Da sieht man, dass der 
Bewegungsvektor noch keine Z-Komponente (oben) hat.

Ich lege hier mein Script ab:
application.run = function ( dt )
{
        if ( Key.isDown( Key.RIGHT ) ) { camera.az += Math.PI / 32 };
        if ( Key.isDown( Key.LEFT  ) ) { camera.az -= Math.PI / 32 };

        if ( Key.isDown( Key.UP   ) && speed < .5 ) { speed += .05; };
        if ( Key.isDown( Key.DOWN ) && speed > 0  ) { speed -= .1; };

        var vx = -Math.sin( camera.az );
        var vy =  Math.cos( camera.az );
        var vz = 0//-Math.sin( camera.ax );

        var normal = tileNetController.currentPatch.normal;

        //-- try and error - klappt soweit :o)
        var ax = Math.atan2( normal.z , -normal.y ) - Math.PI/2;
        var ay = Math.atan2( normal.x , -normal.z );

        var dax = ax - camera.ax;
        while( dax < -Math.PI ) dax += Math.PI * 2;
        while( dax >  Math.PI ) dax -= Math.PI * 2;

        var day = ay - camera.ay;
        while( day < -Math.PI ) day += Math.PI * 2;
        while( day >  Math.PI ) day -= Math.PI * 2;

        camera.ax += dax / 6;
        camera.ay += day / 6;

        camera.x += vx * speed;
        camera.y += vy * speed;
        camera.z += vz * speed;

        camera.render();
}

Irgentwelche Links zu diesem Thema ?
Eine Idee ?




--
aM
        
* Diese Mitteilung wurde in coldflash.de mit dem Benutzernamen Andre Michelle 
(am@xxxxxxxxxxxxxxxxxx) gepostet
        
------------------------------------------------------
Archiv   : //www.freelists.org/archives/ascoders/
Optionen : //www.freelists.org/list/ascoders
------------------------------------------------------

Other related posts: