当两个精灵在我的游戏中碰撞(玩家和'关键'),我希望得分变量增加100分。我试过很多方法,但它们都是一样的;当精灵与键接触时,变量不断增加。我需要每次碰撞增加一次。这只是我尝试过的方法之一:
def key_collect():
global key_score
global score_rect
k_rect = pygame.draw.rect(SURF, (0,0,0), (k_spritex, k_spritey, 30, 40), 1)
p_score_rect = pygame.draw.rect(SURF, (0,0,0), (p_spritex, p_spritey, 30, 40), 1)
if p_score_rect.colliderect(k_rect):
if score_rect == True:
key_score = key_score + 100
return key_score
score_rect = False
return score_rect
我试着使得分增加100,如果可变分数为真,然后使其为假,这意味着它不能再增加。我要做的是,当精灵不发生碰撞时,变量会再次变为真,这样这个过程就会重复。然而,当精灵保持联系时,它又一次持续地增加。我很感激你的帮助。在
代码的问题是函数在
return key_score
行退出,并跳过之后的两行。关键字return
总是在第一次遇到时终止函数。在您只需稍微更改代码:
这里假设您希望返回}变量。既然它们都是全球性的,那就不需要了。在
key_score
和{试试看:
相关问题 更多 >
编程相关推荐