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

如何在循环中修改x坐标以实现PyGame精灵的横向排列?

解决Pygame田野图片重叠问题

你的问题出在循环内部重复初始化x变量——每次循环都会把x重置为50,导致所有Field实例的x坐标都是50,最终全部重叠在一起。

修复方案一:将x初始化移到循环外

把x的初始值定义在循环外面,每次循环后累加偏移量,这样每次创建的Field都会使用更新后的x坐标:

camera = pygame.sprite.Group()
x = 50
y = 200
for i in range(6):
    Field((x, y), camera)
    x += 200

修复方案二:利用循环变量计算位置

更简洁的方式是直接用循环的索引i来计算每个Field的x坐标,避免手动维护x变量:

camera = pygame.sprite.Group()
y = 200
for i in range(6):
    # 初始x + 索引*间距
    x = 50 + i * 200
    Field((x, y), camera)

额外提示:路径转义问题

注意你的图片路径使用了单斜杠\,在Python中这会被视为转义字符,可能导致图片加载失败。可以改用原始字符串或者双斜杠:

# 原始字符串(前面加r)
self.image = pygame.image.load(r'C:\Users\*****\Documents\Python\BuildATown\graphics\field.png').convert_alpha()
# 或者双斜杠转义
self.image = pygame.image.load('C:\\Users\\*****\\Documents\\Python\\BuildATown\\graphics\\field.png').convert_alpha()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 09:20:41