Exemplo n.º 1
0
 def enter(self):
     self._g_root = greenlet.getcurrent()
     self._g_loop = greenlet.greenlet(self._loop)
     self.message_log = MessageLog()
     self.level = Level(self, self.DUNGEON_SIZE_X, self.DUNGEON_SIZE_Y)
     self.game.window.push_handlers(self)
     self._g_loop.switch()
Exemplo n.º 2
0
 def enter(self):
     self._g_root = greenlet.getcurrent()
     self._g_loop = greenlet.greenlet(self._loop)
     self.message_log = MessageLog()
     self.level = Level(self, self.DUNGEON_SIZE_X, self.DUNGEON_SIZE_Y)
     self.game.window.push_handlers(self)
     self._g_loop.switch()
Exemplo n.º 3
0
class PlayLevelState(GameState):

    DUNGEON_SIZE_X = 100
    DUNGEON_SIZE_Y = 100

    def enter(self):
        self._g_root = greenlet.getcurrent()
        self._g_loop = greenlet.greenlet(self._loop)
        self.message_log = MessageLog()
        self.level = Level(self, self.DUNGEON_SIZE_X, self.DUNGEON_SIZE_Y)
        self.game.window.push_handlers(self)
        self._g_loop.switch()

    def exit(self):
        self.game.window.remove_handlers(self)
        self.level.render_system.dispose()

    def on_key_press(self, sym, mod):
        key = pyglet.window.key

        if sym == key.ESCAPE:
            self.game.quit()
            return pyglet.event.EVENT_HANDLED

        command = None

        if sym == key.NUM_8:
            command = Command(Command.MOVE, (0, 1))
        elif sym == key.NUM_2:
            command = Command(Command.MOVE, (0, -1))
        elif sym == key.NUM_4:
            command = Command(Command.MOVE, (-1, 0))
        elif sym == key.NUM_6:
            command = Command(Command.MOVE, (1, 0))
        elif sym == key.NUM_7:
            command = Command(Command.MOVE, (-1, 1))
        elif sym == key.NUM_9:
            command = Command(Command.MOVE, (1, 1))
        elif sym == key.NUM_1:
            command = Command(Command.MOVE, (-1, -1))
        elif sym == key.NUM_3:
            command = Command(Command.MOVE, (1, -1))
        elif sym == key.NUM_5:
            command = Command(Command.WAIT, None)
        elif sym == key.G:
            command = Command(Command.PICKUP, None)
        elif sym == key.D:
            command = Command(Command.DROP, None)

        if command is not None:
            self._g_loop.switch(command)

    def on_draw(self):
        self.level.render_system.draw()

    def _loop(self):
        while True:
            self.level.tick()

    def get_command(self):
        command = self._g_root.switch()
        self.message_log.mark_as_seen()
        return command
Exemplo n.º 4
0
class PlayLevelState(GameState):

    DUNGEON_SIZE_X = 100
    DUNGEON_SIZE_Y = 100

    def enter(self):
        self._g_root = greenlet.getcurrent()
        self._g_loop = greenlet.greenlet(self._loop)
        self.message_log = MessageLog()
        self.level = Level(self, self.DUNGEON_SIZE_X, self.DUNGEON_SIZE_Y)
        self.game.window.push_handlers(self)
        self._g_loop.switch()

    def exit(self):
        self.game.window.remove_handlers(self)
        self.level.render_system.dispose()

    def on_key_press(self, sym, mod):
        key = pyglet.window.key

        if sym == key.ESCAPE:
            self.game.quit()
            return pyglet.event.EVENT_HANDLED

        command = None

        if sym == key.NUM_8:
            command = Command(Command.MOVE, (0, 1))
        elif sym == key.NUM_2:
            command = Command(Command.MOVE, (0, -1))
        elif sym == key.NUM_4:
            command = Command(Command.MOVE, (-1, 0))
        elif sym == key.NUM_6:
            command = Command(Command.MOVE, (1, 0))
        elif sym == key.NUM_7:
            command = Command(Command.MOVE, (-1, 1))
        elif sym == key.NUM_9:
            command = Command(Command.MOVE, (1, 1))
        elif sym == key.NUM_1:
            command = Command(Command.MOVE, (-1, -1))
        elif sym == key.NUM_3:
            command = Command(Command.MOVE, (1, -1))
        elif sym == key.NUM_5:
            command = Command(Command.WAIT, None)
        elif sym == key.G:
            command = Command(Command.PICKUP, None)
        elif sym == key.D:
            command = Command(Command.DROP, None)

        if command is not None:
            self._g_loop.switch(command)

    def on_draw(self):
        self.level.render_system.draw()

    def _loop(self):
        while True:
            self.level.tick()

    def get_command(self):
        command = self._g_root.switch()
        self.message_log.mark_as_seen()
        return command