OpenGL: Want to keep gun on top of car and be able to control angle. Having difficulties.

Posted by Blair on Game Development See other posts from Game Development or by Blair
Published on 2012-04-01T00:19:40Z Indexed on 2012/04/01 5:40 UTC
Read the original article Hit count: 370

Filed under:
|
|
|
|

So I am making a simple game. I want to put a gun on top of a car so basically like a long rod in the middle of a black is how I am modelling it right now. I want to be able to control the angle of the gun. Basically it can go forward all the way so that it is parallel to the ground facing the direction the car is moving or it can point behind the car and any of the angles in between these positions.

I have something like the following right now but its not really working. Is there an better way to do this that I am not seeing?

            #This will place the car
        glPushMatrix()
    glTranslatef(self.position.x,1.5,self.position.z)
    glRotated(self.rotation, 0.0, 1.0, 0.0)
    glScaled(0.5, 0.5, 0.5)
    glCallList(self.model.gl_list)
    glPopMatrix()

    #This will place the gun on top
    glPushMatrix()
    glTranslatef(self.position.x,2.5,self.position.z)
    glRotated(self.tube_angle, self.direction.z, 0.0, self.direction.x)
    print self.direction.z
    glRotated(45, self.position.z, 0.0, self.position.x)    
    glScaled(1.0, 0.5, 1.0)
    glCallList(self.tube.gl_list)
    glPopMatrix()

This almost works. It moves the gun up and down. But when the car moves around the angle of the gun changes. Not what I want.

© Game Development or respective owner

Related posts about opengl

Related posts about 3d