如何使用 Opengl 在 pygame 中制作可调整大小的 window

How to make a resizeble window in pygame with Opengl

我想使用 Pyopengl 在 pygame 中调整大小 window,并尝试使用此代码

pygame.display.set_mode(display, DOUBLEBUF|OPENGL, RESIZABLE)

或这个

pygame.display.set_mode(display, DOUBLEBUF|OPENGL, pygame.RESIZABLE)

Resizable 没有出现。此代码现在有效:

def main():
pygame.init()
display = (800,600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL, 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)

假设您要导入 pygame.locals 它应该是这样的:

pygame.display.set_mode(display, DOUBLEBUF | OPENGL | RESIZABLE)

基本上你所有的display flags都应该用“|”连接(管道)字符。

您必须将视口的大小调整为 window 和当前帧缓冲区的大小,方法是 glViewport:

glViewport(0, 0, display[0], display[1])