文本不呈现,尽管使用了与其他地方相同的代码

92dk7w1h  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(400)

此问题已在此处找到答案

为什么我的pygame应用程序根本没有运行((1个答案)
为什么在pygame中什么都不画((1个答案)
两天前关门了。
大约两周前,我问了一个类似的问题,后来我更新了代码,但没有用。在pygame中简单地呈现一些文本是多么复杂,这绝对让我感到不可思议。
以下是我尝试实现的ui的方法:

def gui(self):

    self.hpdisplay = self.font.render('HP: 100', True, white)
    self.hpdisplay_rect = self.hpdisplay.get_rect(x=10, y=10)
    self.screen.blit(self.hpdisplay, self.hpdisplay_rect)

根据pygame文档,这正是我应该怎么做的,它甚至与我在代码的不同部分成功呈现的一些文本完全相同,我将在这里展示:

title = self.font.render('Cambria', True, white)
title_rect = title.get_rect(x=10, y=10)
self.screen.blit(title, title_rect)

当我调用此新()方法时,应该会出现不工作的ui:

def new(self):
    self.playing = True
    self.all_sprites = pygame.sprite.LayeredUpdates()
    self.tiles = pygame.sprite.LayeredUpdates()
    self.blocks = pygame.sprite.LayeredUpdates()
    self.buildings = pygame.sprite.LayeredUpdates()
    self.player = Player(self, self.startx, self.starty)
    self.enemies = pygame.sprite.LayeredUpdates()
    self.attacks = pygame.sprite.LayeredUpdates()
    self.triggers = pygame.sprite.LayeredUpdates()

    self.TileCreate()
    self.gui()

此方法渲染所有精灵,tilecreate在tilemap加载系统中排列所有精灵,gui()应该在屏幕顶部渲染一些文本,但无论我做什么,它都拒绝渲染任何内容。

3pmvbmvn

3pmvbmvn1#

感谢@rabbi76建议在游戏循环的其他地方而不是在new()中调用self.gui。
如果我在draw()方法中调用gui,如下所示:

def draw(self):
    self.all_sprites.draw(self.screen)
    self.clock.tick(FPS)
    self.gui()
    pygame.display.update()

我不太清楚怎么做,但是现在文本呈现出来了。

相关问题