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

Pygame中屏幕绘制的文本后方为何出现矩形?

解决Pygame文本后方出现小矩形的问题

你遇到的文本后方小矩形,是因为用readlines()读取文件时,每行内容末尾会保留换行符\n。当Pygame渲染包含这个换行符的文本时,由于字体无法显示该字符,就会用一个占位小矩形替代。

方案1:不修改读取逻辑,处理换行符

在赋值给变量时,用strip()方法去掉每行末尾的换行符(同时也会去掉前后多余空白):

with open('stats.txt', 'r') as f:
    a = f.readlines()
    coins = a[0].strip()  # 去掉换行符
    eggs = a[1].strip()
    time_left = a[2].strip()
    chickens = a[3].strip()
    grain = a[4].strip()

这样渲染文本时,内容里就没有多余的换行符,小矩形会消失。

方案2:优化文件读取方式(可选)

如果想简化读取逻辑,可以一次性读取全部内容并按行分割,同时自动处理换行:

with open('stats.txt', 'r') as f:
    lines = [line.strip() for line in f]
    coins, eggs, time_left, chickens, grain = lines[:5]

这种写法更简洁,也能避免换行符问题。另外注意,如果你需要将这些值转为数值类型(比如coins是整数,time_left是浮点数),可以在赋值时直接转换:

coins = int(lines[0])
eggs = int(lines[1])
time_left = float(lines[2])
chickens = int(lines[3])
grain = int(lines[4])

这样后续使用变量时也更方便,不需要再做类型转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:45:31