Esempio n. 1
0
    def __init__(self, element_id, parent, pos, w, h, model=None):

        self.element_id = element_id
        self.model = model
        Node.__init__(self, parent, pos)
        self.click_box = ClickBox(self, w, h)
        self._hidden = False
Esempio n. 2
0
    def initialize_scene_tree(self):
        self.scene_tree = SceneTree(self)
        screen = self.scene_tree.screen_node
        # game_objects first
        self.populate_scene_tree(screen)
        self.effects_node = EffectsNode(screen, (0, 0))
        self.ui_root_node = RootUINode(screen)
        self.console_node = Node(screen, (0, 0))
        self.console_node.add_component(self.console)

        self.ui_control.bind(self.ui_root_node)
Esempio n. 3
0
    def __init__(self, actor, target_pos, on_hit):

        origin = actor._get_screen_pos()

        Node.__init__(self, actor.game.game_objects, origin)
        on_hit = self.get_hit_func(on_hit)
        ArcAnimation(actor, self, target_pos,
                     self.get_peak(origin, target_pos), on_hit)

        self.sprite = ArrowComponent(self)
        self.add_component(self.sprite)
Esempio n. 4
0
    def populate_scene_tree(self, screen):

        self.map_image = MapNode(screen, self)
        self.game_objects = OrderedDrawNode(self.map_image)
        self.overlay = Node(self.map_image)
Esempio n. 5
0
    def make_hex_node(self, ix, iy, screen):

        x, y = hex_to_pixel(self.hex_layout, Hex(ix, iy))
        n = Node(screen, (x, y))
        n.add_component(HexTile(randint(0, 7)))
Esempio n. 6
0
    def __init__(self, parent, pos=(0, 0)):

        Node.__init__(self, parent, pos)
    def __init__(self, parent, pos, game):

        Node.__init__(self, parent, pos)
        self.game = game
        self.sprite = None
Esempio n. 8
0
    def __init__(self, parent, sprite):

        Node.__init__(self, parent)
        self.sprite = sprite
        self.add_component(sprite)
Esempio n. 9
0
    def create_icon_overlay(self):

        overlay = Node(self.game.overlay, Player.overlay_pos)
        overlay.add_component(self.player_overlay)
Esempio n. 10
0
class Scene(object):

    FPS = settings.FPS

    def __init__(self, app):

        self.app = app
        self.message_center = MessageCenter.get_instance()

        self.exit_trigger = False
        self.clock = pygame.time.Clock()
        self.mouse = self.load_mouse()
        self.console = self.load_console()

        self.ui_control = self.load_ui_control()

        self.scene_tree = None
        self.effects_node = None
        self.ui_root_node = None
        self.console_node = None

    @property
    def running(self):
        return not self.exit_trigger

    def initialize(self):

        self.message_center.bind_scene(self)
        self.initialize_scene_tree()
        self.on_start()

    def load_mouse(self):
        return Mouse(self)

    def load_console(self):
        return Console()

    def load_ui_control(self):
        return UIControl(self)

    def on_start(self):
        pass

    def on_complete(self):
        print 'scene_complete'
        pass

    def initialize_scene_tree(self):
        self.scene_tree = SceneTree(self)
        screen = self.scene_tree.screen_node
        # game_objects first
        self.populate_scene_tree(screen)
        self.effects_node = EffectsNode(screen, (0, 0))
        self.ui_root_node = RootUINode(screen)
        self.console_node = Node(screen, (0, 0))
        self.console_node.add_component(self.console)

        self.ui_control.bind(self.ui_root_node)

    def populate_scene_tree(self, screen):
        pass

    def main(self):

        self.initialize()

        while self.running:

            self.handle_input()
            self.update()
            self.draw_display()
            self.tick_frame()
            self.refresh_display()
            # if self.clock.get_fps() < 55:
            #     print self.clock.get_fps()

        self.on_complete()

        return True

    def tick_frame(self):
        self.clock.tick(Scene.FPS)

    def handle_input(self):

        for event in pygame.event.get():
            if event.type == QUIT:
                self.exit_trigger = True

            elif event.type == KEYDOWN:
                if event.key == K_ESCAPE:
                    self.exit_trigger = True

                elif event.key == K_SLASH:
                    self.screen_shot()

                elif event.key == K_BACKQUOTE:
                    self.toggle_console()

            else:
                self.mouse.handle_input(event)

            self.console.handle_input(event)

    def draw_display(self):

        self.scene_tree.draw()

    def refresh_display(self):

        pygame.display.update()

    def update(self):

        self.scene_tree.update()
        self.mouse.update()
        self.on_update()

    def on_update(self):
        pass

    def screen_shot(self):

        print 'screen shot'
        screen = self.scene_tree.screen_surface
        pygame.image.save(screen, 'screenshot.png')

    def get_next_scene(self):
        return 'exit'

    def toggle_console(self):

        if self.console.shown:
            self.console.hide()
        else:
            self.console.show()
Esempio n. 11
0
    def __init__(self, parent, map):

        Node.__init__(self, parent)
        self.image = MapImage(map)
        self.add_component(self.image)