我正在尝试在OpenGL和Pygame中创建3D立方体。当您按住一个按钮时,我希望立方体旋转。但是,现在立方体仅在您按下按钮时才旋转,而不是按住。有人可以帮我解决这个问题吗?谢谢!
def main():
pygame.init()
display = (800, 600)
pygame.display.set_mode(display, DOUBLEBUF|OPENGL)
gluPerspective(45, (display[0]/display[1]), 0.1, 50.0)
glTranslatef(0.0, 0.0, -5)
glRotatef(45, 1, 1, 0)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
keys = pygame.key.get_pressed() # checking pressed keys
if keys[pygame.K_a]:
glRotatef(5, 1, 0, 0)
if keys[pygame.K_s]:
glRotatef(5, 0, 1, 0)
if keys[pygame.K_d]:
glRotatef(5, 0, 0, 1)
答案 0 :(得分:2)
您的密钥处理代码在for
循环内。因此,如果没有事件,您将无法处理键。将代码移出循环:
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
keys = pygame.key.get_pressed() # checking pressed keys
if keys[pygame.K_a]:
glRotatef(5, 1, 0, 0)
if keys[pygame.K_s]:
glRotatef(5, 0, 1, 0)
if keys[pygame.K_d]:
glRotatef(5, 0, 0, 1)