def create_level(self): """ Creates a new player and restarts level sprites. """ self._paused = False self._game.ui.clear() self._player = PlayerCtrl() self._level = Level('level_1.tmx', self._player, self) self._timer = Timer()
def load_game(self, game_id): try: save = open(f"saves/save_{game_id}.xml", "r") # Test if there is a current saved game if save: tree_root = etree.parse(save).getroot() index = tree_root.find("level/index").text.strip() level_name = 'maps/level_' + index + '/' game_status = tree_root.find("level/phase").text.strip() turn_nb = 0 if game_status != 'I': turn_nb = int(tree_root.find("level/turn").text.strip()) # Load level with current game status, foes states, and team self.level_id = int(index) level = Level(level_name, self.level_id, game_status, turn_nb, tree_root.find("level/entities")) self.play(level) save.close() return except FileNotFoundError: # No saved game self.background_menus.append([self.active_menu, True]) name = "Load Game" entries = [[{'type': 'text', 'text': "No saved game.", 'font': fonts['MENU_SUB_TITLE_FONT']}]] width = self.screen.get_width() // 2 self.active_menu = InfoBox(name, "", "imgs/interface/PopUpMenu.png", entries, width, close_button=1)
def test_move_entity(self): level = Level(self.config).create_empty_tiles() level.tiles[0][0].set_type('floor') level.tiles[1][0].set_type('floor') entity = Entity(0, 0) entity.move(1, 0, level) self.assertEqual((1, 0), (entity.x, entity.y))
def __init__(self, hud): super(GameLayer, self).__init__() # 添加板子和球 self.is_on_exiting = True self.paddle = Paddle('images/paddle.png') self.add(self.paddle.sprite) self.ball = Ball('images/ball.png') self.ball.reset_position = (320, self.paddle.sprite.height + self.ball.sprite.height / 2) self.add(self.ball.sprite) # hud 用于记录,更新关卡,死亡,金币数据 self.hud = hud # 生成关卡 self.level = Level() self.level.levels = self.hud.levels self.add(self.hud.gold_hud) self.add(self.hud.level_hud) self.add(self.hud.death_hud) # 添加按键状态 self.key_pressed_left = False self.key_pressed_right = False self.key_pressed_up = False self.key_pressed_down = False self.reset() # 定期调用 self.update 函数 # FPS frame per second 每秒帧数 self.schedule(self.update)
def setup_level(self): level = Level(self.config).create_empty_tiles() for x in range(0, level.width): for y in range(0, level.height): level.tiles[x][y].set_type('floor') for column in level.tiles: level.flattened_tiles.extend(column) return level
def __init__(self) -> None: """ Creates a data model which is used for a graphic representation of Sokoban level (QGraphics View framework). QGraphicsScene.keyPressEvent() is implemented to process various player input. """ super().__init__() self._level = Level("levels/01/01") self.setSceneRect( QRectF(QPointF(0, 0), QPointF(self._level.width, self._level.height))) [ self.addItem(item) for item in self._level.tiles + self._level.boxes + tuple([self._level.player]) ] self._level.player.moveFinished.connect(self.unlockGame) self._gameLock = False
def reset_blocks(self): level = Level() level.levels = self.save_as # 通过文件生成块 level.reset() # 删除已存在的块 for b in self.blocks: self.remove(b.sprite) # 清空存储的块和坐标 self.blocks.clear() # self.props.clear() # 添加新的块 for b in level.blocks: self.add(b.sprite) self.blocks.append(b)
def enter(self, app): self.app = app self.view = app.view self.palette = [] for name in get_all('entities'): newtype = entities.get(name) self.palette.append(newtype) self.level = Level(app) self.mode = 't' self.mark = None self.delmark = None self.markmat = entities.get('mark') self.ground = entities.get('ground') print "CURRENT BRUSH:", self.brush
def __init__(self, game_info, sound_manager): GameState.__init__(self, GameState.STATE_GAME, GameState.STATE_LOAD) self.game_info = game_info self.sound_manager = sound_manager self.game_info.set_timer_in_seconds(300) self.mario_game_time = -1 self.world_shift = 0 self.player = Player(self.sound_manager, game_info) self.active_sprite_list = pygame.sprite.Group() self.active_sprite_list.add(self.player) self.level = Level(game_info, self.player, self.sound_manager) if constants.DEBUG: self.debug_overlay = DebugOverlay(self.game_info, self.player) self.sound_manager.play_music(constants.MUSIC_MAIN_THEME)
def load_level(level, team=None): if team is None: team = [] return Level('maps/level_' + str(level) + '/', level, players=team)
def test_move_entity_gets_stuck_on_unwalkable_tile(self): level = Level(self.config).create_empty_tiles() level.tiles[0][0].set_type('floor') entity = Entity(0, 0) entity.move(1, 0, level) self.assertEqual((0, 0), (entity.x, entity.y))
def test_default_update_just_returns_true(self): self.assertTrue(Entity(0, 0).update(Level(self.config)))
Including my hygienic proclivities.''') hallway = Room( 'hallway', '''I stepped out of my house, and... what's this??? Instead of my front yard, I walk into a hallway that seems to extend forever. Each side of the hallway is lined with room doors just like mine! My hangover suddenly gave way to a sick stomach and wobbly knees. ... What's going on here??? To the west, I spotted an elevator that looks too old to function. But it seemed to be the only thing that would get me out of this nightmare.''') elevator = Room( 'elevator', '''This elevator is operated with a steel lever.\nQuite old school.''') spa = Room( 'spa', '''I pulled the lever and headed down. The counter kept counting, counting, counting down. In God-knows-how-long, I exit the elevator, and I'm greeted by a friendly Velociraptor in a tuxedo and a bow-tie. "Welcome, Sirmadam!"''') bedRoom.set_east(kitchen) bedRoom.set_south(living) bedRoom.set_north(hallway) hallway.set_west(elevator) elevator.set_south(spa) level_one = Level(bedRoom)
def on_click(self): self.window.show_view(Level(1))
def debug(): cwd = os.getcwd() level1 = Level('../levels/007.xml') start(level1) print('stop')
def setUp(self): self.level = Level({'width': 10, 'height': 10}) self.collision_controller = CollisionController(self.level)