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。
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。