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

Pygame中CSV关卡加载函数无法设置Game类的Player变量,原因何在?

Pygame CSV关卡加载系统出现AttributeError问题

我在Pygame项目中搭建了CSV文件加载系统,用来更便捷地创建和加载关卡。参考他人建议后,在Game类中编写了相关函数:

# CSV转换
def convert_csv_to_2d_list(csv_file: str):
    tile_map = []
    with open(csv_file, "r") as f:
        for map_row in csv.reader(f):
            tile_map.append(map_row)
    return tile_map

# 基于CSV的关卡加载(属于Game类,所以变量前都带self.)
self.tile_map = convert_csv_to_2d_list(csv_file="Levels/Platforming/Level Map Potentially.csv")
for row in range(len(self.tile_map)):
    for col in range(len(self.tile_map[row])):
        if self.tile_map[row][col] == 1:
            sprites.Tile(row * 32, col * 32, 1, self.tile_group)
        
        if self.tile_map[row][col] == 2:
            sprites.Tile(row * 32, col * 32, 2, self.tile_group, self.platform_group)
        
        if self.tile_map[row][col] == 3:
            sprites.Tile(row * 32, col * 32, 3, self.tile_group, self.platform_group)
        
        if self.tile_map[row][col] == 4:
            sprites.Tile(row * 32, col * 32, 4, self.tile_group, self.platform_group)
        
        if self.tile_map[row][col] == 5:
            self.player = sprites.Player(row * 32, col * 32, self.player_group, self.platform_group)
        
        if self.tile_map[row][col] == 6:
            sprites.Tile(row * 32, col * 32, 6, self.tile_group, self.platform_group)
    
        if self.tile_map[row][col] == 7:
            sprites.Tile(row * 32, col * 32, 7, self.tile_group)

运行主脚本时出现如下错误:

AttributeError: 'Game' object has no attribute 'player'

我已经在循环中设置了self.player属性,但不清楚为什么会出现这个错误。

内容的提问来源于stack exchange,提问作者Dominic B.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:01:02