如何在pygame中显示平滑的加载条?

2024-05-16 22:43:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在做一个关于pygame的游戏。 我想创建一个加载窗口与加载栏类似的软件GIMP,但我真的不知道如何优化它,。。。完全可以

所以这是我代码的一部分,很明显,它工作得不太好。 你能帮助我吗?在

...

screen = pygame.display.set_mode((640, 480), pygame.NOFRAME)
where = (120,360)
While in progress = true:
   If 1/a < 0.25
   screen.blit(Load0, where)
   If 1/a < 0.50
   screen.blit(Load1,where)
   #... ( it's the same for <0.75 and = 1 )
   pygame.display.update()
game()

但这会造成一个坏的装载杆。。。 你能帮我把它弄得更优化更平滑吗?
PS:我有350个元素要加载


Tags: 代码in游戏if软件modedisplaywhere
1条回答
网友
1楼 · 发布于 2024-05-16 22:43:33

把事情简化,用两个矩形画一个条形图。在

创建一个绘制条形图的函数。此函数用于绘制薄的外部矩形和填充的内部矩形。内矩形的长度取决于进度。progress是范围[0,1]内的值。如果为0,则不绘制内部条。如果为1,则内部条完成:

def DrawBar(pos, size, borderC, barC, progress):

    pygame.draw.rect(screen, borderC, (*pos, *size), 1)
    innerPos  = (pos[0]+3, pos[1]+3)
    innerSize = ((size[0]-6) * progress, size[1]-6)
    pygame.draw.rect(screen, barC, (*innerPos, *innerSize))

定义条形图的位置和颜色参数:

^{pr2}$

定义最大项数:

max_a = 350

绘制条形图时,当前进度是a/max_a

DrawBar(barPos, barSize, borderColor, barColor, a/max_a)

相关问题 更多 >