Python 3.2 W / Pygame Crashes - PullRequest
       18

Python 3.2 W / Pygame Crashes

2 голосов
/ 09 марта 2019

Что ж, я был счастлив начать с Pygame, немного разбираясь в Python, но, следуя некоторым начинающим учебникам, я заметил, что в момент запуска моего кода окно Pygame не видело ответа, поэтому я поместил несколько команд "печати", чтобы посмотреть, как далеко он зашёл, я заметил, что он остановился в цикле, есть идеи, как я могу это исправить? Я оставлю код здесь

import pygame
pygame.init()

print("First Fase")
win = pygame.display.set_mode((500,500)) 

pygame.display.set_caption("Test")

print("Second Fase")
x = 50
y =50
width = 40
height = 60
vel = 7

print("Third Fase")

done = False
while not done:
 pygame.time.delay(100)

for event in pygame.event.get():
 if event.type == pygame.QUIT:
  done = True

if event.type == KEYDOWN:
 if event.key == K_ESC:
  done = True

pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
pygame.display.update()
print("NoErrors")

1 Ответ

0 голосов
/ 09 марта 2019

Должно быть pygame.KEYDOWN и pygame.K_ESC, а не KEYDOWN и K_ESC.

Но прежде всего вы должны уважать Отступ . В следующем коде циклы не являются вложенными:

done = False
while not done:
 pygame.time.delay(100)

for event in pygame.event.get():
 if event.type == pygame.QUIT:
  done = True

Цикл for не входит в while, это отдельный цикл после цикла while.

Вы должны отформатировать свой код следующим образом:

import pygame
pygame.init()

print("First Fase")
win = pygame.display.set_mode((500,500)) 

pygame.display.set_caption("Test")

print("Second Fase")
x = 50
y =50
width = 40
height = 60
vel = 7

print("Third Fase")

done = False
while not done:
    pygame.time.delay(100)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESC:
                done = True

    pygame.draw.rect(win, (255, 0, 0), (x, y, width, height))
    pygame.display.update()
    print("NoErrors")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...