Проблемы с Pygame - я пытаюсь закрыть окно, изображение мигает, а затем отключается ... что? - PullRequest
0 голосов
/ 29 ноября 2018

Ну, это странная ситуация.

Итак, я пытаюсь сделать игру на python, и мне требуется, чтобы я перетянул картинку персонажа (имя Минти, просто поясняю код),и я делал это как обычноОднако это происходит:

Я запускаю код.Откроется окно Pygame.Все идет нормально.Там нет изображения однако.Там нет трассировки.Я пытаюсь убрать X и убить программу.Затем изображение внезапно появляется.Подождите, что?

Почему это происходит?Это случилось с кем-нибудь?Вот мой код (я вырезал все ненужные биты.)

import sys
import time
import pygame
from pygame.locals import *

pygame.init()
#MAIN GAME LOOP
while True:

    for events in pygame.event.get():
        if events.type == QUIT:
            quit()
            exit()

    #INITIALISING THE WINDOW. kept this in case anyone decides to try this out
    #CONSTANTS ARE CAPITAL, VARIABLES ARE LOWERCASE
    SCREENWIDTH = 900
    SCREENHEIGHT = 600
    SCREENSIZE = [SCREENWIDTH, SCREENHEIGHT]
    screen = pygame.display.set_mode(SCREENSIZE)
    BG_COL = [255, 123, 67]
    clock = pygame.time.Clock()
    screen.fill(BG_COL)
    pygame.display.update()
    clock.tick(60)

    #INITIALISE ALL OBJECTS.

    class Opponent(pygame.sprite.Sprite):
        def __init__(self, name, title, sprite):
            self.name = name
            self.title = title
            self.sprite = sprite

    #INITIALISING CHARACTERS.

    Minty = Opponent("Minty Portal", "Fairy of Many Worlds", pygame.image.load("Portraits/minty-normal.png"))

    #BLIT CHARACTER
    screen.blit(Minty.sprite, [300, 90])
    pygame.display.update()

Я не знаю, если я публикую это право, любые изменения, которые я должен сделать, пожалуйста, прокомментируйте ниже.
Спасибо запомощь:)

1 Ответ

0 голосов
/ 29 ноября 2018

Я думаю, проблема в том, что вы переопределяете экранную переменную каждый игровой цикл в основной функции.Я бы порекомендовал инициализировать окно за пределами основного игрового цикла.Попробуйте инициализировать все, что вы хотите инициализировать только один раз, за ​​пределами основного игрового цикла.

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