class TestScene2(Scene): def __init__(self, game): super().__init__(game) self.name = "Test Scene 2" self.tag = "Test Scene 2" self.entities_manager = EntitiesManager() self.entity = Entity() self.data = Data() def start(self): self.entity.add_component(Sprite()) self.entity.get_component(Sprite()).set_sprite( self.data.sokoban_spritesheet.get_image(994, 988, 92, 108)) self.entity.get_component(Sprite()).show_rect = True self.entity.transform.position = (300, 300) self.entities_manager.add(self.entity) def handle_events(self, event, delta_time): self.entities_manager.handle_events(event, delta_time) def update(self, delta_time): self.entities_manager.update(delta_time) def render(self, window): window.fill(LIGHTGRAY) self.entities_manager.render(window)
class PlayScene2(Scene): def __init__(self, game): super().__init__(game) self.name = 'Play Scene' self.tag = 'Play Scene' self.entities_manager = EntitiesManager() self.data = Data() self.player = Entity() self.wall2 = Entity() self.sokoban_spritesheet = load_sprite_data( '*****@*****.**') self.all_sprites = pygame.sprite.Group() self.camera = Camera(self.data.play_map.width, self.data.play_map.height) def start(self): self.player.transform.position = (400, 400) self.player.transform.width = 100 self.player.transform.height = 100 self.player.add_component(Sprite()) self.player.get_component(Sprite()).set_image( self.sokoban_spritesheet.get_image(994, 988, 92, 108)) self.player.get_component(Sprite()).image.set_colorkey(BLACK) self.player.add_component(Movement()) self.wall2.gameObject.tag = 'wall 2' self.wall2.transform.position = (0, 0) self.wall2.add_component(Collider()) self.wall2.transform.width = 64 self.wall2.transform.height = 64 self.entities_manager.add(self.player) self.entities_manager.add(self.wall2) def handle_events(self, event, delta_time): self.entities_manager.handle_events(event, delta_time) def update(self, delta_time): self.entities_manager.update(delta_time) self.camera.update(self.player) def render(self, window): window.fill(LIGHTBLUE) window.blit(self.data.play_map_image, (0, 0)) self.entities_manager.render(window)
class MainMenuScene(Scene): def __init__(self, game): super().__init__(game) self.name = 'Main Menu ' self.tag = 'Main Menu' self.entities_manager = EntitiesManager() self.play_button = Entity() self.data = Data() self.kenny_future_narrow_font = load_font_data( 'Kenney Future Narrow.ttf', 20) self.green_sheet = load_sprite_data('greenSheet.png') self.all_sprites = pygame.sprite.Group() def start(self): self.play_button.add_component(Button()) self.play_button.transform.position = WINDOW_CENTER self.play_button.get_component( Button()).scene_manager = self.scene_manager self.play_button.get_component(Button()).show_rect = False self.play_button.add_component(Sprite()) self.play_button.get_component(Sprite()).set_default_image( self.green_sheet.get_image(0, 0, 190, 49)) self.play_button.add_component(Text()) self.play_button.get_component( Text()).font = self.data.kenny_future_narrow_font self.play_button.get_component(Text()).text = 'PLAY' self.entities_manager.add(self.play_button) def handle_events(self, event, delta_time): self.entities_manager.handle_events(event, delta_time) def update(self, delta_time): self.entities_manager.update(delta_time) if self.play_button.get_component(Button()).is_pressed: self.scene_manager.load(2) # change scene def render(self, window): window.fill(LIGHTGRAY) self.entities_manager.render(window) draw_center(window)