Окно Pygame не загружается - PullRequest
1 голос
/ 23 марта 2020

Сегодня мой первый день pygame, и я не могу понять, почему этот код не работает, pygame windows черный не отвечает, и изображение не отображается

import pygame
pygame.init()


screen_width=800
screen_height=800
screen=pygame.display.set_mode([screen_width,screen_height])
screen.fill((255,255,255))

Quit=input("Press'Y' is you want to quit")

if Quit == "Y":
    pygame.display.quit()






Board = pygame.image.load("TicTacToeBoard.jpg")

screen.blit(Board,(0,0))

pygame.display.flip()

1 Ответ

1 голос
/ 23 марта 2020

Все программы PyGame имеют событие L oop. Это непрерывный l oop, который принимает события из оконного менеджера / операционной среды. События - это такие вещи, как движения мыши, нажатия кнопок и нажатия клавиш. Если ваша программа не принимает события, в конечном итоге запускающая программа сочтет, что она перестала отвечать, и, возможно, предложит пользователю прекратить ее.

Ваш существующий код получает ввод из консоли. Это можно сделать в PyGame, если вы используете поток, а затем отправляете событие обратно в основной файл l oop. Но обычно проще обрабатывать выход как событие. В приведенном ниже коде я обработал выход с событием QUIT и нажатием Q .

import pygame

pygame.init()
screen_width=800
screen_height=800
screen=pygame.display.set_mode([screen_width,screen_height])

Board = pygame.image.load("TicTacToeBoard.jpg")
clock = pygame.time.Clock()

# Main Event Loop
exiting = False
while not exiting:

    # Handle events
    for event in pygame.event.get():
        if ( event.type == pygame.QUIT ):
            exiting = True
        elif ( event.type == pygame.MOUSEBUTTONUP ):
            # On mouse-click
            mouse_pos = pygame.mouse.get_pos()
            print( "Mouse Click at "+str( mouse_pos ) )
        elif ( event.type == pygame.KEYUP ):
            if ( event.key == pygame.K_q ):
                # Q is quit too
                exiting = True    

    # Paint the screen
    screen.fill((255,255,255))
    screen.blit(Board,(0,0))
    pygame.display.flip()

    # Limit frame-rate to 60 FPS
    clock.tick_busy_loop(60)

Кроме того, этот код также ограничивает частоту кадров до 60 FPS.

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