猿问

如何使用图片文件名和循环中的变量使用pygame打开多张图片而不会使代码混乱

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

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


跃然一笑
浏览 257回答 1
1回答

慕姐8265434

您的LoadBars初始化可以在循环中完成并改为列表:for i in range(11):    LoadBar[i] = pygame.image.load("frame_%02d_delay-0.06s.png" % i)这样整个动画循环就可以通过for迭代LoadBar列表的嵌套循环来完成:for _ in range(5):    for loadbar in LoadBar:        loading_screen.blit(loadbar, (100, 150))        pygame.time.delay(20)        pygame.display.flip()
随时随地看视频慕课网APP

相关分类

Python
我要回答