簡體   English   中英

你如何在pygame中在多個背景之間切換?

[英]How do you switch between multiple backgrounds in pygame?

我通過制作面向圖形的游戲來練習在 python 中使用 pygame 包,在我的游戲中,我想隨着用戶的進展在多個背景之間切換。 對於我發布的示例,第一個背景將是一個帶有 5 個語句的黑屏,而我的第二個背景將是一個房間。 但是,我無法弄清楚這一點,因為每當我嘗試運行代碼時,游戲窗口都不會顯示任何內容。 我可以在下面發布我的 while 循環代碼以進一步說明。

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()

我可能會這樣做的方式是

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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM