如何通过更改进度条的颜色来显示盾牌级别

时间:2019-07-15 05:55:18

标签: python pygame

我在代码中有一个进度条,该进度条仅显示绿色,但是我想用播放器的百分比进行修改,如果播放器介于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)

1 个答案:

答案 0 :(得分:2)

只需设置颜色取决于百分比:

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

顺便说一句,pygame.Rect()的参数必须是整数,因此在计算fill时,必须使用整数除法运算符(//),然后浮点除法(/):

fill = BAR_LENGTH * pct // 100