Ejemplo n.º 1
0
def main():
    #pygame.init()
    display = (width * 2, height * 2)
    #pygame.display.set_mode(display, DOUBLEBUF | OPENGL)  # DOUBLEBUF = BUFFER



    gluPerspective(45, (display[0] / display[1]), 0.1,
                   1000.0)  # FOV, ASPECT RATIO, CLIPPING PLANE NEAR, CLIPPING PLANE FAR
    gl.glTranslate(0.0, 0.0, -10)
    gl.glRotatef(0, 0, 0, 0)

    rotate_right = False
    rotate_left = False
    turn_right = False
    turn_left = False
    ascend = False
    descend = False
    forward = False
    backward = False


    # glEnable(GL_LINE_SMOOTH)

    while True:
        for event in pygame.event.get():

            if event.type == pygame.QUIT:
                pygame.quit()
                quit()

            # KEY PRESSED
            if event.type == pygame.KEYDOWN:

                if event.key == pygame.K_q:
                    rotate_left = True

                if event.key == pygame.K_e:
                    rotate_right = True

                if event.key == pygame.K_a:
                    turn_left = True

                if event.key == pygame.K_d:
                    turn_right = True

                if event.key == pygame.K_SPACE:
                    ascend = True

                if event.key == pygame.K_LSHIFT:
                    descend = True

                if event.key == pygame.K_w:
                    forward = True

                if event.key == pygame.K_s:
                    backward = True

            # KEY RELEASED
            if event.type == pygame.KEYUP:

                if event.key == pygame.K_q:
                    rotate_left = False

                if event.key == pygame.K_e:
                    rotate_right = False

                if event.key == pygame.K_a:
                    turn_left = False

                if event.key == pygame.K_d:
                    turn_right = False

                if event.key == pygame.K_SPACE:
                    ascend = False

                if event.key == pygame.K_LSHIFT:
                    descend = False

                if event.key == pygame.K_w:
                    forward = False

                if event.key == pygame.K_s:
                    backward = False

        if rotate_left:
            gl.glRotate(1, 0, 0, 1)

        if rotate_right:
            gl.glRotate(1, 0, 0, -1)

        if turn_left:
            gl.glRotate(1, 0, 1, 0)

        if turn_right:
            gl.glRotate(1, 0, -1, 0)

        if ascend:
            gl.glTranslate(0, -0.1, 0)

        if descend:
            gl.glTranslate(0, 0.1, 0)

        if forward:
            gl.glTranslate(0, 0, -0.1)

        if backward:
            gl.glTranslate(0, 0, 0.1)

        # glRotatef(1, 1, 1, 1)  # Give value between 0-1



        gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
        Lights()
        Terrain()
        #glPolygonMode(GL_FRONT, GL_LINE)
        #glPolygonMode(GL_BACK, GL_LINE)

        Cube()
        #glPolygonMode(GL_FRONT, GL_FILL)
        #glPolygonMode(GL_BACK, GL_FILL)
        #pygame.display.flip()  # Update display
        #pygame.time.wait(10)
        gl.InitGLUT(1200, 1024, 'TERRAIN')
        gl.InitGL(1200, 1024)

        if "-info" in gl.sys.argv:
            print("GL_RENDERER   = ", gl.glGetString(gl.GL_RENDERER))
            print("GL_VERSION    = ", gl.glGetString(gl.GL_VERSION))
            print("GL_VENDOR     = ", gl.glGetString(gl.GL_VENDOR))

        gl.glutMainLoop()