每当我运行此代码时,动画都会运行得比较顺利,但是当温度达到列表的长度并返回到零时,图像会闪烁
这并不是说动画图像没有正确同步,我制作了一个 gif 来查看图像是否有一些框架问题,但 gif 中没有任何问题,动画很流畅
import pygame,os
pygame.init()
window=pygame.display.set_mode((600,600))
clock=pygame.time.Clock()
run=[]
for image in os.listdir("run"):
run.append(
pygame.transform.scale(
pygame.image.load("run/" + image),
(40, 40),
).convert_alpha()
)
temp=0
diff=0.2
index=0
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
temp+=diff
if temp>=len(run):
temp=0
index=int(temp)
print(index)
window.fill("white")
window.blit(run[index],(300,300))
pygame.display.flip()
clock.tick(60)
请注意,这
os.listdir
会以任意顺序返回图像。所以我建议对文件名列表进行排序:但是,您需要更改图像的名称。这些图像按其名称的字母顺序排序:
更改名称:
或者,您可以使用正则表达式对名称进行排序(请参阅检查 Python 中字符串以什么数字结尾)。编写一个返回文件名尾数的函数:
对使用该函数的列表进行排序: