【问题标题】:pygame collision with text display overlappygame与文本显示重叠的碰撞
【发布时间】:2019-01-22 20:39:53
【问题描述】:
def main():  #my main loop 
running = True
clock = pygame.time.Clock()  # A clock to limit the frame rate.
score = (0)
score = str(score)
myfont = pygame.font.SysFont('OpenSans', 30)        
textsurface = myfont.render('Level ONE:   Greenland', False, (0, 0, 0))        
background.blit(textsurface,(500,10))

将分数转换为可以显示在屏幕上的sting,但在添加分数时会转换回整数

textsurface = myfont.render(score, False, (0, 0, 0))        
background.blit(textsurface,(10,10))
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    player_hit_list = pygame.sprite.spritecollide(player, enemy_list, True)
    for enemy in player_hit_list:
        pygame.quit()
    player_hit_list = pygame.sprite.spritecollide(player, coin_list, True)


    for coin in player_hit_list:
        textsurface = myfont.render(score, False, (0, 0, 0))        
        background.blit(textsurface,(10,10))
        score = int(score)+ 1
        score = str(score)
        print(score)

我正在尝试在角色触摸硬币时将分数更新到屏幕上,但它与之前的分数重叠,例如0,1,2,3。所以我需要摆脱以前的分数。

【问题讨论】:

  • 你可以只打印(分数)为整数而不转换为字符串。
  • 要不要添加 screen.fill(WHITE) 来清除前一屏?
  • 我使用的背景表面是图像,我尝试在文本出现后对背景进行 blit,但它不会改变它

标签: python pygame


【解决方案1】:
textsurface = myfont.render(score, False, (0, 0, 0))        
background.blit(textsurface,(10,10))
while running:

    screen.fill(WHITE)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    player_hit_list = pygame.sprite.spritecollide(player, enemy_list, True)
    for enemy in player_hit_list:
        pygame.quit()
    player_hit_list = pygame.sprite.spritecollide(player, coin_list, True)


    for coin in player_hit_list:
        textsurface = myfont.render(score, False, (0, 0, 0))        
        background.blit(textsurface,(10,10))
        score += 1
        print("{0}".format(score))

Python/Pygame How to make my Score Text update itself forever?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多