Pygame 缩放健康栏

Sam*_*ubb 2 python math pygame 2d-games

我正在开发一款类似 RPG 的游戏,你的最大生命值可以在整个过程中得到提高。

我正在尝试制作一个脚本,该脚本将绘制一个 100 像素宽、值超过 100 的健康栏。

随着您的健康状况提高,健康栏的单位会变小。

这是我能想到的最好的:

#Draw Bar
import pygame

def SingleColorBar(surface,color,x,y,value,maxvalue):
    xx=0
    for hp in range(value):
        pygame.draw.rect(surface, color, (x+xx,y,1,32), 0)
        xx+= value/100
Run Code Online (Sandbox Code Playgroud)

这根本没有按预期工作!

小智 5

您可以将当前 HP 转换为最大 HP 的比率,然后绘制多个像素宽的矩形。

int(max(min(currentHP / float(maxHP) * health_bar_width, health_bar_width), 0))
Run Code Online (Sandbox Code Playgroud)

这应该为您提供整数百分比,并且介于 0 和健康栏的像素宽度之间,这样您就不会过度绘制。