You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

《Alien Invasion》分数显示异常求助:本该右上却显示在左上

《Alien Invasion》分数显示位置异常问题解决建议

问题现象

制作完成的Python游戏《Alien Invasion》中,分数本该显示在屏幕右上角,但实际始终出现在左上角,即使代码与书籍、网上示例完全一致也无法解决。

相关代码片段

def prep_score(self):
    """将分数转换为渲染后的图像"""
    rounded_score = round(self.stats.score, -1)
    score_str = "{:,}".format(rounded_score)
    self.score_image = self.font.render(score_str, True, self.text_color, self.settings.bg_color)

    # 将分数显示在屏幕右上角
    self.score_rect = self.score_image.get_rect()
    self.score_rect.right = self.screen_rect.right - 20
    self.score_rect.top = 20

排查与解决方向

  • 确认screen_rect的正确性:检查self.screen_rect是否通过self.screen.get_rect()正确获取,若该对象的right值错误(比如未正确关联当前屏幕尺寸),会直接导致分数位置偏移。
  • 检查绘制逻辑:确保绘制分数时使用的是self.score_rect作为位置参数,例如正确的绘制代码应为self.screen.blit(self.score_image, self.score_rect),若误用固定坐标(0, 20)则会显示在左上角。
  • 排查位置覆盖问题:查看prep_score方法执行后,是否有其他代码(如UI更新循环)修改了self.score_rect的right属性,导致位置被重置。
  • 验证字体渲染:极少数情况下字体渲染可能导致矩形计算异常,可尝试更换字体或调整字体大小,测试是否恢复正常位置。

内容的提问来源于stack exchange,提问作者DanaM16

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 19:55:00