尝试使用pygame OpenGL绘制平面3D网格,不断收到错误1282'无效操作'

时间:2018-04-05 17:16:33

标签: python opengl 3d pygame

我正在尝试创建一个地形,但是我似乎无法让这个网格工作?不断返回此错误:

  

OpenGL.error.GLError:GLError(err = 1282,description = b'invalid   operation',baseOperation = glEnd,cArguments =()

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

nptx=10
npty=10

def terrain2(): 
    glBegin(GL_QUADS)
    for ye in range(0,npty):
        for xe in range(0,nptx):
            glVertex3f(xe,ye+1,0)
            glVertex3f(xe+1,ye+1,0)
            glVertex3f(xe+1,ye,0)
            glVertex3f(xe,ye,0)
    glEnd()

def main():
    pygame.init()
    display=(800,600)
    pygame.display.set_mode(display, DOUBLEBUF|OPENGL)

    gluPerspective(45, (display[0]/display[1]),0.1,200)
    glTranslatef(0.0,0.0,-5)

    while True:
        for event in pygame.event.get():
            if pygame.event==pygame.quit():
                pygame.quit()
                quit()
        terrain2()
        pygame.display.flip()
main()

1 个答案:

答案 0 :(得分:3)

评估以下表达式时

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

然后执行操作pygame.quit()并且所有pygame模块都未初始化。

将其更改为

if event.type == pygame.QUIT:

event.type与枚举pygame.QUIT进行比较。