Pygame 分数问题

Pygame score issue

while not done:
    baddieAddCounter = 0
    baddies = []
    score += 1
    fact = ""

    #GIVES PLAYER A NEW FACT EVERYTIME THEY REACH THE TARGET SCORE
    if score < 200:
       fact == 'NOTHING'

    elif score > 200 and score <= 599:
       fact == 'SWAG'

    elif score > 600 and score <= 799:
       fact == 'brehh'


    drawText('Score: %s' % (score), font, screen, 10, 0)
    drawText('Fact: %s' % (fact), font, screen, 10, 40)
    pygame.display.update()

为什么这不起作用?在游戏中,一旦玩家得分达到目标得分(例如 >200),它应该将事实(例如 SWAG')更改为 'if' 语句中的内容,但由于 'fact = ""'.

当得分为 200 时,您的代码没有设置 fact。您必须检查 score >= 200 或使用

if score < 200:
   fact == 'NOTHING'

elif score <= 599:
   fact == 'SWAG'

elif score <= 799:
   fact == 'brehh'

顺便说一句:您可以在 while

之前设置 face=''
fact = ""

baddieAddCounter = 0
baddies = []

while not done:
    score += 1

   if score < 200:
      fact == 'NOTHING'

   elif score <= 599:
      fact == 'SWAG'

   elif score <= 799:
      fact == 'brehh'

   drawText('Score: %s' % (score), font, screen, 10, 0)
   drawText('Fact: %s' % (fact), font, screen, 10, 40)
   pygame.display.update()

编辑:

@Margius 说得对。您使用 == 但您需要 =

fact = ""

baddieAddCounter = 0
baddies = []

while not done:
    score += 1

   if score < 200:
      fact = 'NOTHING'

   elif score <= 599:
      fact = 'SWAG'

   elif score <= 799:
      fact = 'brehh'

   drawText('Score: %s' % (score), font, screen, 10, 0)
   drawText('Fact: %s' % (fact), font, screen, 10, 40)
   pygame.display.update()

你不是在给fact赋值,你是在比较它。我假设你想要的是

if score < 200:
       fact = 'NOTHING'

elif score > 200 and score <= 599:
   fact = 'SWAG'

elif score > 600 and score <= 799:
   fact = 'brehh'

另请注意,在得分为 200 时,玩家将得到一个空白事实,因为第一个条件仅小于 200,而下一个条件仅大于 200。