def loadStage(self, number): self.eraseStage() self.currentStage = [[] for i in range(0, len(self.mapData[number]))] self.blankList = [] self.step = 0 goalNum = 0 self.nextButton.setEnabled(False) if number == 0: self.backButton.setEnabled(False) else: self.backButton.setEnabled(True) gc.collect() self.stageText.setText('Stage: ' + str(number + 1)) self.stepText.setText('Step: ' + str(self.step)) self.currentLevel = number # 게임 화면을 중앙으로 x = (self.width - Object.size * len(self.mapData[number][0])) * 0.5 y = (self.height - Object.size * len(self.mapData[number])) * 0.5 Object.setPositionOffset(x, y + 40) for y in range(0, len(self.mapData[number])): for x in range(0, len(self.mapData[number][y])): # 일단 모든 맵을 공백으로 채운다. blankList에 blank를 추가한다. print(type(self.mapData[number][y][x]), type(EObjects.EPlayer), y, x) if self.mapData[number][y][x] != EObjects.EBlankWithNoGlass: if randomPercent(0.1): blank = Blank(x, y, self.blankPixmap1) elif randomPercent(0.05): blank = Blank(x, y, self.blankPixmap2) elif randomPercent(0.02): blank = Blank(x, y, self.blankPixmap3) else: blank = Blank(x, y, self.blankPixmap0) self.blankList.append(blank) blank.lower() # pass self.background.stackUnder(blank) if self.mapData[number][y][x] == EObjects.EBox: box = Box(x, y, self.boxPixmap) self.currentStage[y].append(box) box.raise_() elif self.mapData[number][y][x] == EObjects.EPlayer: playerStartX = x playerStartY = y print('Player found!') blank = Blank(x, y, self.blankPixmap0) self.currentStage[y].append(blank) blank.erase() elif self.mapData[number][y][x] == EObjects.EWall: self.currentStage[y].append(Wall(x, y, self.wallPixmap)) elif self.mapData[number][y][x] == EObjects.EButton: goalNum += 1 self.currentStage[y].append(Button(x, y, self.buttonPixmap)) elif self.mapData[number][y][ x] == EObjects.EBlank or self.mapData[number][y][ x] == EObjects.EBlankWithNoGlass: blank = Blank(x, y, self.blankPixmap0) self.currentStage[y].append(blank) blank.erase() self.goal = goalNum self.goalText.setText('Goal: ' + str(self.goal)) # ordering을 위해 player는 마지막에 생성한다! App.player = Player(playerStartX, playerStartY, self.playerPixmap)