Sign in to follow this  

Firing projectiles?

Recommended Posts

Gammastrahler    150
Hi, i want to implement a weapon in my first person shooter. The problem is, i don´t know how to get the projectile particles fired in the direction the weapon (or player) looks/points. I have tried to multiply the vertices of the particles with the inverse modelview matrix, but this does not the job... And i don´t want to use open gl´s transform routines, since i need to change my vertices directly (for collision detection). What do i need to do to get it working? Thanks for any help, Gammastrahler

Share this post

Link to post
Share on other sites
fractoid    703
You probably want to start the projectile at the location of the player, and sets the projectile's velocity according to their direction (ie. vx = speed * cos(theta), vy = speed * sin(theta) where theta is the player's current rotation angle, for a Doom-type game. There's a couple more sines and cosines involved for a mouselook-type game. :)

To translate the particle into position for drawing, you need its position and orientation. Then you build a new modelview matrix for the particle based on these - basically you'll be writing your own versions of glRotate(), glTranslate() etc. which are useful to have around anyway.

Share this post

Link to post
Share on other sites
ToohrVyk    1596
Moving an object along a line:

If D is the direction of the line, and O is the initial position of the center of the object, then at any time t the position of the center of the object would be:

C(t) = tD + O

Where "+" means you should translate the point O by the vector tD.

Finding the direction vector:

If V is your direction vector, and M is your view matrix, then:

M * V = (0,0,1,0)

So, by extracting the inverse of your view matrix, M-1, you have:

V = M-1 * (0,0,1,0)

Which gives you your view vector (and you can the use it to move the object along the line it defines).

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this