Main L oop для pygame не работает, pygame мгновенно завершает работу - PullRequest
2 голосов
/ 03 февраля 2020

У меня есть другая проблема. Когда я пытаюсь запустить мой код, запускается pygame, а затем немедленно останавливается.

Вот мой код:

import pygame
import os 
import time 
import random

pygame.init()
pygame.font.init()




def main():

    clock = pygame.time.Clock()

    win = pygame.display.set_mode((Win_Width, Win_Height))

    run = True
    while run:

        clock.tick(40)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                run = False
                pygame.quit()

Спасибо, что помогли мне. Пока!

Ответы [ 3 ]

4 голосов
/ 03 февраля 2020

Ваша пигмея l oop содержится в методе main. Но main никогда нигде не вызывается. Попробуйте добавить следующий блок в самый низ вашего файла

if __name__ == "__main__":
  main()

. Этот блок в основном просто проверяет, вызываете ли вы этот файл напрямую, и если да, то вызываете свой метод main.

Основной ответ Taxxe делает большую работу, объясняя эту функциональность python более подробно

3 голосов
/ 03 февраля 2020

К сожалению, мне пока запрещено комментировать, хотя я отвечу на ваш вопрос следующим образом.

Перед выполнением кода интерпретатор Python читает исходный файл и определяет несколько специальных переменных / глобальных переменных. , Если интерпретатор python запускает этот модуль (исходный файл) в качестве основной программы, он устанавливает для специальной переменной __name__ значение « main ». Если этот файл импортируется из другого модуля, __name__ будет присвоено имя импортируемого модуля. Имя модуля доступно в качестве значения глобальной переменной __name__.

В вашем случае вы можете запустить свой код либо с if et c. или с прямым main() звонком.

print "Always executed"

if __name__ == "__main__": 
    print "Executed when invoked directly"
else: 
    print "Executed when imported"

Надеюсь, это было понятно и полезно. Для получения дополнительной информации вот несколько источников:

0 голосов
/ 17 февраля 2020

вам нужно позвонить main ()

так:

if __name__ == "__main__": main()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...