簡體   English   中英

如何在Python 2.7中改善播放器的健康狀況?

[英]How do I work player health In Python 2.7?

我不確定如何創建一個健康系統,讓職業玩家在被擊中3次后被殺死。 有人可以幫忙嗎? 我正在使用Python 2.7進行編碼。 我目前有

if pygame.sprite.spritecollideany(player, opponents):
   player.kill()

我正在考慮使用變量

player.HP = 3

但它不會死!

if pygame.sprite.spritecollideany(player, opponents):
   player.HP -1
   if player.HP == 0:
      player.kill

但是,就像我說的那樣,它不會消失,但是代碼有效。 直到我添加了新系統,它才被淘汰,現在卻沒有。 有人可以幫忙嗎? 謝謝。

就像@ juanpa.arrivillaga在評論中說的那樣,您需要分配player.HP的遞減值,否則,您正在進行減法並丟棄該值。 您需要更改:

player.HP -1

player.HP -= 1

這是一個例子:

>>> class A:
...   def __init__(self, val):
...     self.val = val
...   def decrement(self):
...     self.val - 1              # <- Does not reassign decremented value
...     print self.val
...
>>> a = A(10)
>>> a.decrement()
10
>>> a.decrement()
10
>>> a.decrement()
10
>>> a.decrement()
10
>>> class A:
...   def __init__(self, val):
...     self.val = val
...   def decrement(self):
...     self.val -= 1             # <- Does reassign value
...     print self.val
...
>>> a = A(10)
>>> a.decrement()
9
>>> a.decrement()
8
>>> a.decrement()
7
>>> a.decrement()
6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM