buaa21 / summer2020

软件学院《程序设计实践》2020小学期仓库
40 stars 8 forks source link

pygame设置血量条时能运行但是有警告 #188

Closed Nevermind-sudo closed 3 years ago

Nevermind-sudo commented 3 years ago

当生命大于20%显示绿色,否则显示红色

                energy_remain = each.energy/enemy.BigEnemy.energy
                if energy_remain > 0.2:
                    energy_color = GREEN
                else:
                    energy_color = RED
                pygame.draw.line(screen,energy_color,\
                                 (each.rect.left,each.rect.top - 5),\
                                 (each.rect.left + each.rect.width * energy_remain,\
                                  each.rect.top - 5),2)

Warning (from warnings module): File "C:\高工\Python\飞机大战\main.py", line 365 pygame.draw.line(screen,energy_color,\ DeprecationWarning: an integer is required (got type float). Implicit conversion to integers using int is deprecated, and may be removed in a future version of Python.

试过在if和else语句里分别画,把energy_color直接换成(0,255,0)和(255,0,0),还是同样有警告,不知道该从什么地方改了

PineZhuo commented 3 years ago

猜测:会不会是each.rect.width * energy_remain有浮点数导致它警告?试试显示类型转换成int

Nevermind-sudo commented 3 years ago

原来是这样,谢谢,现在已经解决了