如何通过改变进度b的颜色来显示护盾等级

2024-04-18 17:32:07 发布

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

我在代码中有一个进度条,它只显示绿色,但我想用玩家的百分比来修改它,如果玩家在50%到100%之间,那么它的颜色是绿色,如果它小于50并且等于25,那么它的颜色是橙色,低于25%的是红色。 我附加了一个python代码

如果有人帮忙,我会非常感激的

def draw_shield_bar(surf, x, y, pct):

我在代码中有一个进度条,它只显示绿色,但我想用玩家的百分比来修改它,如果玩家在50%到100%之间,那么它的颜色是绿色,如果它小于50并且等于25,那么它的颜色是橙色,低于25%的是红色。我附加了一个python代码

如果有人帮忙,我会非常感激的

def draw_shield_bar(surf, x, y, pct):
    if pct < 0:
       pct = 0
    BAR_LENGTH = 100
    BAR_HEIGHT = 10
    fill = (pct / 100) * BAR_LENGTH
    outline_rect = pygame.Rect(x, y, BAR_LENGTH, BAR_HEIGHT)
    fill_rect = pygame.Rect(x, y, fill, BAR_HEIGHT)
    pygame.draw.rect(surf, GREEN, fill_rect)
    pygame.draw.rect(surf, WHITE, outline_rect, 2)

Tags: 代码进度条rect颜色玩家barfillpygame
1条回答
网友
1楼 · 发布于 2024-04-18 17:32:07

只需根据百分比设置颜色:

color = GREEN if pct >= 50 else ORANGE if pct >= 25 else RED
pygame.draw.rect(surf, color, fill_rect)

顺便说一句,^{}的参数必须是整数,所以在计算fill时,必须使用整数除法运算符(//),然后是浮点除法(/):

fill = BAR_LENGTH * pct // 100

相关问题 更多 >