微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在播放器下渲染文本?

如何解决如何在播放器下渲染文本?

嘿,基本上是第一次在 pygame 中处理文本,只是想知道如何在玩家/敌人下渲染文本。

enter image description here

这是游戏循环:


#text test
font = pygame.font.Font('freesansbold.ttf',32)

# Game Loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

    
    screen.fill((30,30,30)) #bakgrundsfärg på spelet


    if game_over == False:

        #timer
        timer = pygame.time.get_ticks() 

        #update
        player_group.update()
        enemy_group.update()

        #draw
        player_group.draw(screen)
        enemy_group.draw(screen)
        

    #gui
    life_gui = font.render("Life : " + str(p_hp),True,(255,255,255))
    screen.blit(life_gui,(10,10))

    time_gui = font.render("Time : " + str(int(timer/1000)),255))
    screen.blit(time_gui,720))

    kills_gui = font.render("Kills : " + str(kill_counter),255))
    screen.blit(kills_gui,760))


    #game over screen
    if game_over == True:
        game_over_screen = font.render("Game Over",255))
        screen.blit(game_over_screen,(300,350))
    

    pygame.display.flip()
    clock.tick(60)

意外忘记包含游戏循环,但现在已添加。 如果有人知道那将是一个很大的帮助! (:

解决方法

自己想出来的,只需要在播放器之前渲染文本...哈哈

#text test
font = pygame.font.Font('freesansbold.ttf',32)

# Game Loop
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()

    
    screen.fill((30,30,30)) #bakgrundsfärg på spelet


    #gui
    life_gui = font.render("Life : " + str(p_hp),True,(255,255,255))
    screen.blit(life_gui,(10,10))

    time_gui = font.render("Time : " + str(int(timer/1000)),255))
    screen.blit(time_gui,720))

    kills_gui = font.render("Kills : " + str(kill_counter),255))
    screen.blit(kills_gui,760))

    if game_over == False:

        #timer
        timer = pygame.time.get_ticks() 

        #update
        player_group.update()
        enemy_group.update()

        #draw
        player_group.draw(screen)
        enemy_group.draw(screen)


    #game over screen
    if game_over == True:
        game_over_screen = font.render("Game Over",255))
        screen.blit(game_over_screen,(300,350))
    

    pygame.display.flip()
    clock.tick(60)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。