예제 #1
0
    def __init__(self, levelseed):
        self.width = levelseed.width
        self.height = levelseed.height
        self.OMGHAX = None
        self.pixelWidth = self.width * 32
        self.pixelHeight = self.height * 32
        self.InitializeTiles(self.width, self.height, levelseed.map)
        self.sprites = []
        self.police = []
        self.counter = 0
        self.randomDirections = [(1, 0), (-1, 0), (0, 1), (0, -1)]
        self.citizens = []

        for citizen in levelseed.map.citizens:
            x = citizen[0]
            y = citizen[1]
            tx = citizen[4]
            ty = citizen[5]
            sprite = GamePlay.Citizen(32 * citizen[0] + 16,
                                      32 * citizen[1] + 16, citizen[2],
                                      citizen[3])
            if levelseed.map.isCrowdLevel:
                sprite.Crowdify()
            if x != tx or y != ty:
                sprite.SetWaypoint(tx * 32, ty * 32)

            fx = sprite.X
            fy = sprite.Y
            while self.TileNotPassable(fx // 32, fy // 32):
                fy += 1

            sprite.X = self.OMGHAX[0] * 32 + 16
            sprite.Y = self.OMGHAX[1] * 32 + 16
            self.sprites.append(sprite)
            self.citizens.append(sprite)

        self.citizens[0].color = 255

        for police in levelseed.map.police:
            sprite = GamePlay.Police(32 * police[0] + 16, 32 * police[1] + 16,
                                     police[2])
            self.sprites.append(sprite)
            self.police.append(sprite)
            if levelseed.map.isCrowdLevel:
                sprite.Crowdify()

        self.spriteGraph = SpriteGraph(self.width, self.height)

        self.PreColorize(levelseed.map.colorize_these)
        self.initCameraOffset = None
        spriteCarryOver = levelseed.map.spriteCarryOver
        if spriteCarryOver == None:
            spriteCarryOver = levelseed.map.carryoversprites

        if spriteCarryOver != None:
            x = spriteCarryOver[0]
            y = spriteCarryOver[1]

            self.initCameraOffset = (x, y)
            self.CarryOverSprites(x, y, levelseed.map.previousLevel)
        levelseed.map.previousLevel = None