Example #1
0
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)
Example #2
0
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)
Example #3
0
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)