pyOpenGL不起作用

时间:2016-04-18 11:34:43

标签: python opengl pygame

我想在观看Youtube上的教程后使用pygame和pyopengl制作一个3D旋转立方体,但我一直收到错误。我使用终端安装了opengl。

这是代码

from OpenGL.GL import *
from OpenGL.GLU import *
import pygame


sharps=(
    (1,1,-1),
    (-1,1,-1),
    (-1,-1,-1),
    (1,-1,-1),
    (1,1,1),
    (-1,1,1),
    (-1,-1,1),
    (1,-1,1)
    )
lines=(
    (0,1),
    (1,2),
    (2,3),
    (3,0),
    (0,4),
    (4,5),
    (5,6),
    (6,7),
    (7,4),
    (5,1),
    (6,2),
    (7,3)
    )

def cube():
    glBegin(GL_LINES)
    for x in lines:
        for y in x:
            glVertex3fv(sharps[y])
    glEnd()



def main():
    pygame.init()
    x=800
    y=600
    window=pygame.display.set_mode((x,y), DOUBLEBUF|OPENGL)
    gluPerspective(45,(x/y),0.1,50.0)
    glTranslatef(0.0,0.0,-5)
    glRotatef(0,0,0,0)

    true = True
    while true:
     for i in pygame.event.get():
        if i.type==pygame.QUIT:
            true=False

     glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
     cube()
     pygame.display.flip()
     pygame.time.wait(10)

try:
    main()
except Exception, e:
    print e 

和错误

  

全局名称'DOUBLEBUF'未定义

我似乎不明白问题在哪里,我的意思是它适用于youtube中的那个人。请帮助

1 个答案:

答案 0 :(得分:1)

DOUBLEBUF在pygame中定义,所以你必须写:

pygame.DOUBLEBUF

您还可以将导入更改为:

from pygame import *