Pygame字体文本显示的数字不正确

时间:2018-12-11 19:45:55

标签: python python-3.x text pygame

因此,对于我正在开发的游戏,我发现了一个错误,但我一直无法在任何地方找到答案。

这是我的用户界面中的代码段

if not self.game.rot_lim == 0:
    pg.draw.rect(self.ui, (255,255,255), (730,16,32,32))
    rotators = str(self.game.rot_rem)
    self.draw_text("Prisms Remaining: " + rotators, 770)

rot_lim是一个整数,它存储该级别用户可以放置多少个总旋转器的值。同样,rot_rem是可以放置的剩余数量。

我的绘图文本功能如下:

def draw_text(self, text, x, y = 20):
    # Renders text
    draw = self.game.text.render(text, False, (0,0,0), (170, 170, 170))
    # Draws on UI
    self.ui.blit(draw, (x,y))

现在,我的问题是显示总共10个或更多的显示器。当我低于10时,它的末尾会显示一个额外的0(例如,如果我放置1,则显示为90)。对于我放置的每一个,它都会忽略最后一个0,并且它在代码中不存在(使用print语句进行了测试),因此仅存在于其呈现端。

Before Placing

After Placing

非常感谢!

1 个答案:

答案 0 :(得分:1)

好的,我设法重新创建了该问题,这与重新绘制屏幕有关(与您发布的代码无关)。由于我们只能看到您的部分代码,因此我不确定我的娱乐活动是否与您的问题相符。

确保您正在执行以下两项操作之一:

1)通过重新填充背景颜色screen.fill((255, 255, 200))

来清除who屏幕

2)通过重新填充文本(可能是在需要重绘的矩形内)清除文本所在的部分

这应该发生在游戏的每回合循环中。基本上,请确保您每次都刷新屏幕,因为当前它只是画图