一旦0到达,停止数量减少 - Python

时间:2014-04-20 20:18:42

标签: python-3.x numbers pygame reducing

我正在玩pygame中的一个小游戏,我已经设置了一个健康变量,所以每次我的玩家被敌舰击中时我的健康状况会减少25,但有时候(如果我的玩家快速穿过屏幕)我能够将此值降至0以下并继续将25减少为负数。

我有什么方法可以设置它,一旦达到0,分数不能低于0?

到目前为止我的代码:

for player in player_list:

    block_hit_list = pygame.sprite.spritecollide(player, block_list, True)

    for block in block_hit_list:
        health -= 25
        collision.play()

    if health < 0:
        health = max(value, 0)

    if health == 0:
        gameover.play()
        collision.stop()
        player_list.remove(player)
        all_sprites_list.remove(player)
        block_list.remove(block)
        all_sprites_list.remove(block)

更新

我已更新代码,现在它似乎运行正常,不确定我是否使用了有意义的东西(如果是这样,欢迎任何改进):(我对python很新。

3 个答案:

答案 0 :(得分:2)

尝试替换:

if health == 0:

    health = min

使用:

if health < min:

    health = min

这应该有效。 我希望这会有所帮助。

答案 1 :(得分:1)

我不太确定你的最终目标是什么,因为这只是一段代码,但你需要增加health变量或打破循环

if health == 0:
    break

答案 2 :(得分:1)

添加额外的逻辑。当减少-25之后寿命为0或更少时

if health <= 0:
    break

这更好,因为如果有另一个敌人击中-35而你的生命是25岁?当然,结果将是-10 <= 0break