map()的参数2必须支持迭代

时间:2015-03-28 12:09:08

标签: python list arguments pygame iteration

嗨我正在制作一个基本的光线投射引擎所以我认为从迷你地图开始会很好但问题是我的类地图在构造函数中要求一个mapGrid,当我传递它时python给我这个错误{ {1}}

这是代码: 主要部分

argument 2 to map() must support iteration

数据文件

import pygame
def map(object):
    def __init__(self,grid,scale):
        self.grid= grid
        self.mapWidth= len(grid[0]) #Number of map blocks
        self.mapHeight= len(grid) 
        self.miniMapScale= scale #How many pixels to draw a map block
        self.miniWidth= self.mapWidth * self.miniMapScale #Size of the minimap
        self.miniHeight= self.mapHeight * self.miniMapScale

        self.rectGrid= grid

        for y in range(self.mapHeight):
            for x in range(self.mapWidth):
                self.rectGrid[y][x]= pygame.Rect(x,y,self.miniWidth,self.miniHeight)

    def blitMiniMap():
        pass

地图类

mapGrid= [
    [1,1,1,1],
    [1,0,0,1],
    [1,0,0,1],
    [1,1,1,1]
]

size = [640, 480]

感谢。

1 个答案:

答案 0 :(得分:2)

map是一个python内置函数。因此,使用map作为函数名会导致混淆,因此您应该考虑将map函数重命名为不同的函数。

另外,你所说的" map class"只定义一个函数,而不是一个类。您是否在课程定义中将defclass混淆了?