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

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


这是我的 UI 中的代码片段


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,它不存在于代码中(用打印语句测试),所以它只存在于它的渲染端。

http://img4.mukewang.com/61405db00001920c02970052.jpg

http://img3.mukewang.com/61405db70001103f02950052.jpg

慕村225694
浏览 141回答 1
1回答

茅侃侃

好吧,我设法重新创建了这个问题,它与重新绘制屏幕有关(与您发布的代码无关)。由于我们只能看到您的部分代码,我不能完全确定我的娱乐是否符合您的问题。确保您正在做以下两件事之一:1)通过重新填充背景颜色清除谁屏幕 screen.fill((255, 255, 200))2)通过重新填充来清除文本所在的部分(可能它在需要重绘的矩形内)这应该发生在游戏的每次循环中。基本上,确保每次都刷新屏幕,因为目前它只是在绘制
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python