问题描述
我想使用Pyopengl在pygame中创建可调整大小的窗口,并尝试使用此代码
pygame.display.set_mode(display,DOUBLEBUF|OPENGL,RESIZABLE)
或这个
pygame.display.set_mode(display,pygame.RESIZABLE)
可调整大小未出现。该代码现在可以正常工作:
def main():
pygame.init()
display = (800,600)
pygame.display.set_mode(display,RESIZABLE)
gluPerspective(45,(display[0]/display[1]),0.1,500.0) # настройка камеры угол обзора дальняя и ближняя дистанция рендера
clock = pygame.time.Clock()
FPS = 60
angle=0
distance=20
while True:
...
pygame.display.flip()
clock.tick(FPS)
解决方法
您必须通过glViewport
将视口的大小调整为窗口和当前帧缓冲区的大小:
glViewport(0,display[0],display[1])
,
假设您要导入pygame.locals,它应该是这样的:
pygame.display.set_mode(display,DOUBLEBUF | OPENGL | RESIZABLE)
基本上,您所有的display flags都应加一个“ |” (烟斗)字符。