gpt4 book ai didi

python - 在 Pygame 中点击幻灯片

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:02 25 4
gpt4 key购买 nike

我正在用 pygame 制作游戏,想展示一个介绍。我的问题是我希望玩家能够点击每张幻灯片直到结束,然后过渡到游戏本身。目前我有一个循环,它可以立即遍历所有幻灯片。有没有一种方法可以将其格式化,以便播放器可以逐张单击?谢谢!

我尝试过各种类型的循环和迭代。我发现的一个解决方法是制作大量不同的 while 语句,例如“while intro1”进入“while intro2”,但是很麻烦。我希望有更好的方法。

        #introduction screen
while intro:
img1 = pygame.image.load("./sprites/img1.png")
img2 = pygame.image.load("./sprites/img2.png")
img3 = pygame.image.load("./sprites/img3.png")
img4 = pygame.image.load("./sprites/img4.png")
imgs = [img1, img2, img3, img4]
display_surface = pygame.display.set_mode((0, 0))
display_surface.blit(img1, (0, 0))
pygame.display.update()
events = pygame.event.get()
for event in events:
if event.type == pygame.MOUSEBUTTONUP:
for i in range(len(imgs)):
display_surface.blit(imgs[i], (0, 0))
i += 1
pygame.display.update()
if i >= 3:
intro = False
run = True


最佳答案

需要进行一些重组。首先,您将跟踪使用 current_image 的图像。它在循环之前设置为 0,这意味着我们将从第一张图像开始。

图像本身在每次循环时都不会改变。它们只需要在循环之前加载一次。

您的 for event in events: 循环中有太多内容。在这里,您应该进行特定按键将更改的最低限度的更改。因此,在单击时,我们将 current_image 更改为增加 1,仅此而已。

完成所有操作后,您将图像 blit 到屏幕并更新。希望这会有所帮助。

   #introduction screen
current_image = 0

img_names = ["./sprites/img1.png", "./sprites/img2.png", "./sprites/img3.png", "./sprites/img4.png"]
imgs = [pygame.image.load(img) for img in img_names]

display_surface = pygame.display.set_mode((0, 0))
while intro:
events = pygame.event.get()
for event in events:
if event.type == pygame.MOUSEBUTTONUP:
current_image +=1
display_surface.blit(imgs[current_image], (0, 0))
pygame.display.update()
if current_image >= 3:
intro = False
run = True

关于python - 在 Pygame 中点击幻灯片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55975641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com