Как вы переключаетесь между несколькими фонами в Pygame? - PullRequest
0 голосов
/ 20 марта 2020

Я практиковался в использовании пакета pygame в python, создавая игру, ориентированную на графику, и в своей игре я хочу переключаться между несколькими фонами по мере прохождения пользователем. Для примера, который я публикую, первым фоном будет черный экран с 5 утверждениями, а вторым фоном будет комната. Однако я не могу понять это, потому что всякий раз, когда я пытаюсь запустить код, окно игры ничего не показывает. Я могу опубликовать свой код на время l oop ниже для дальнейшего разъяснения.

while running:
   screen.fill((0, 0, 0))

   for event in pygame.event.get():
    if event.type == pygame.QUIT:
        running = False

   first_line()
   second_line()
   third_line_1()
   third_line_2()
   fourth_line()
   fifth_line()

   sleep(10)

   screen.blit(background_room, (0, 0))

   pygame.display.update()

1 Ответ

0 голосов
/ 20 марта 2020

То, как я, вероятно, сделал бы это, похоже на

import pygame
from pygame.locals import *

class Backround:
    FIVE_STATEMENTS = 0
    ROOM = 1

viewport_size = (800, 600)

def main():
    pygame.init()
    screen = pygame.display.set_mode(viewport_size)

    backround_room = pygame.Surface(viewport_size)
    # load the image...

    backround_statements = pygame.Surface(viewport_size)
    backround_statements.fill((0, 0, 0))
    # blit the five statements onto here

    backround_to_render = Backround.FIVE_STATEMENTS

    running = True
    while running:
        for event in pygame.event.get():
            if event.type == QUIT:
                running = False

        if backround_to_render == Backround.FIVE_STATEMENTS:
            # if the statements ever change, probably want to fill() and re-blit them on
            screen.blit(backround_statements, (0,0))

        elif backround_to_render == Backround.ROOM:
            screen.blit(backround_room, (0,0))

        else:
            print("Oh no!!!!!!!")

        pygame.display.flip()

if __name__ == "__main__":
    main()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...