Проблемы с вращением 3D-куба в OpenGL и Pygame - PullRequest
1 голос
/ 08 июня 2019

Я пытаюсь создать 3D-куб в OpenGL и Pygame.Я хочу, чтобы куб вращался, когда вы удерживаете кнопку.Однако прямо сейчас куб вращается только при нажатии кнопки, а не удержании.Может кто-нибудь помочь мне с этим вопросом?Спасибо!

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)

1 Ответ

2 голосов
/ 08 июня 2019

Ваш код обработки ключа находится в цикле 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...