gpt4 book ai didi

python - 如何在图片文件名和循环中使用变量来使用 pygame 打开多张图片而不会使代码困惑

转载 作者:行者123 更新时间:2023-12-01 08:56:19 24 4
gpt4 key购买 nike

import easygui, sys, random, time, tkinter, pygame

Running = True
while Running is True:

创建屏幕并加载 11 张图片进行模拟,如何使用循环和变量来整理代码?每个.png 文件之间的唯一区别是图像文件的frame_XX 部分。我尝试过在文件名中实现变量,但它从来没有起作用。

 pygame.init()
loading_screen = pygame.display.set_mode([600, 300])
loading_screen.fill([0, 0, 0])
pygame.display.set_caption("Student Planner 2")
LoadBar1 = pygame.image.load("frame_00_delay-0.06s.png")
LoadBar2 = pygame.image.load("frame_01_delay-0.06s.png")
LoadBar3 = pygame.image.load("frame_02_delay-0.06s.png")
LoadBar4 = pygame.image.load("frame_03_delay-0.06s.png")
LoadBar5 = pygame.image.load("frame_04_delay-0.06s.png")
LoadBar6 = pygame.image.load("frame_05_delay-0.06s.png")
LoadBar7 = pygame.image.load("frame_06_delay-0.06s.png")
LoadBar8 = pygame.image.load("frame_07_delay-0.06s.png")
LoadBar9 = pygame.image.load("frame_08_delay-0.06s.png")
LoadBar10 = pygame.image.load("frame_09_delay-0.06s.png")
LoadBar11 = pygame.image.load("frame_10_delay-0.06s.png")

通过翻转所有十一张图片的显示来创建加载屏幕动画,然后在循环结束时关闭程序,这里有同样的问题:如何使用循环和变量来整理代码。

for looper in [1, 2, 3, 4, 5]:
loading_screen.blit(LoadBar1, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar2, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar3, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar4, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar5, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar6, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar7, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar8, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar9, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar10, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
loading_screen.blit(LoadBar11, (100, 150))
pygame.time.delay(20)
pygame.display.flip()
pygame.quit()
Running = False

最佳答案

LoadBar 的初始化可以在循环中完成并放入列表中:

for i in range(11):
LoadBar[i] = pygame.image.load("frame_%02d_delay-0.06s.png" % i)

这样整个动画循环就可以通过迭代 LoadBar 列表的嵌套 for 循环来完成:

for _ in range(5):
for loadbar in LoadBar:
loading_screen.blit(loadbar, (100, 150))
pygame.time.delay(20)
pygame.display.flip()

关于python - 如何在图片文件名和循环中使用变量来使用 pygame 打开多张图片而不会使代码困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52750645/

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