Exemplo n.º 1
0
 def prompt(self):
     action_string = raw_input("What do you want to do?\n")
     action_list = "take it".split()
     teapot = models.Item("teapot", "some teapot", adv, None,
                          get_resource_path("teapot.png"), (15, 30),
                          get_resource_path("teapot.png"))
     getattr(Element, "take")(teapot)
Exemplo n.º 2
0
def main():

    # on initialise le jeu point and click
    pac_game = geta.state.game.GameApp((640, 400), title="DEMO game for pace")

    # on construit l'adventure state avec des salles et des objets
    adv = pac_game.manager.states['adventure']
    adv.set_descriptions_from_file(get_resource_path("descriptions.txt"))

    bsod = geta.model.models.Area('bsod', "blue screen of death", get_resource_path("background.png"))
    adv.add_area(bsod)
    drowning = geta.model.models.Area('drowning', "the drowning 'room'", get_resource_path("drowning.png"))
    adv.add_area(drowning)

    # # room 1
    # room1 = models.Area('room1', "first room", adv, get_resource_path("thegoonies_room.png"))
    # adv.add_area(room1)
    # door1 = models.Gate("door1", "some door", adv, room1, "room2", get_resource_path("door.png"), (352, 142))
    # teapot = models.Item("teapot", None, adv, None, get_resource_path("teapot.png"), (8, 8), get_resource_path("teapot.png"))
    # key = models.Item("key", None, adv, room1, get_resource_path("key.png"), (380, 220), get_resource_path("key.png"))
    #
    # # room 2
    # room2 = models.Area('room2', "another room", adv, get_resource_path("thegoonies_room.png"))
    # adv.add_area(room2)
    # door2 = models.Gate("door2", "another porte", adv, room2, "drowning", get_resource_path("door.png"), (382, 142))
    # locker = models.Container("locker", None, adv, room2, get_resource_path("closed_locker.png"), (325, 150), None, open_state=False, key_name='key', area_open_image_path=get_resource_path("open_locker.png"))
    # locker.acquire_element(teapot)
    #
    #
    # on ajoute des éléments dans la mock area
    teapot = geta.model.models.Item("teapot", None, adv, get_resource_path("teapot.png"), get_resource_path("teapot.png"))
    bsod.acquire_element(teapot, position=(15, 30))
    # locker = models.Item("locker", None, adv, get_resource_path("closed_locker.png"), None)
    # locker.open = False
    locker = geta.model.models.Container("locker", None, adv, get_resource_path("closed_locker.png"), None, get_resource_path("open_locker.png"), key_name='key')
    bsod.add_item(locker, position=(80, 60))
    key = geta.model.models.Item("key", None, adv, get_resource_path("key.png"), get_resource_path("key.png"))
    bsod.add_item(key, position=(180, 60))

    # on change le comportement par défaut du locker

    def cannot_take(item, state):
        print "I cannot take " + str(item) + "!"
        return True

    geta.helper.setter.set_behaviour(locker, "take", cannot_take)

    # use key behaviour
    # note that, Q5-like, we can directly use the key in the room with the locker without taking it
    # then the key will remain in the room...!

    def use_key(key, state):
        state.complement = "key"
        return False
    geta.helper.setter.set_behaviour(key, "use", use_key)

    # porte "à la main"
    # door = models.Clickable("door", "porte", get_resource_path("door.png"), (200,20))
    door = geta.model.models.Gate(drowning, "door", "porte", get_resource_path("door.png"), (200, 20))
    # bsod.add_acitem(door, door.rect.topleft)
    bsod.add_gate(door)
    # set_behaviour(door, "on_click", lambda self, state: state.enter_area("drowning"))

    # on construit des boutons
    button1 = geta.model.models.InteractiveButton("take", "Prendre", get_resource_path("take.png"), (0, 0))
    button2 = geta.model.models.InteractiveButton("use", "Utiliser", get_resource_path("use.png"), (100, 0))
    button3 = geta.model.models.InteractiveButton("open", "Ouvrir", get_resource_path("open.png"), (200, 0))

    # on les attache à un menu créé à ce moment (ou bien l'avance puis on append/add les boutons, évite les keyword avant args)
    menu = geta.model.models.InteractiveMenu(get_resource_path("menu.png"), (40, 340, 160, 60), 1, True, button1, button2, button3)
    adv.set_menu(menu)

    

    # on peut entrer dans l'area qui est ready
    adv.enter_area('bsod')

    # on peut entrer dans le state qui est ready
    pac_game.context.enter_state("adventure")

    assert pac_game.context.states['adventure'].area.codename == 'bsod'

    # on peut lancer le jeu
    pac_game.run()
Exemplo n.º 3
0
def main():

    # on initialise le jeu point and click
    pac_game = pace.state.game.GameApp((640, 400), title="DEMO game for pace")
    print pac_game.manager

    # on construit l'adventure state avec des salles et des objets
    adv = pac_game.manager.states['adventure']
    adv.set_descriptions_from_file(get_resource_path("descriptions.txt"))

    bsod = models.Area('bsod', "blue screen of death",
                       get_resource_path("background.png"))
    adv.add_area(bsod)
    drowning = models.Area('drowning', "the drowning 'room'",
                           get_resource_path("drowning.png"))
    adv.add_area(drowning)
    print bsod

    # on ajoute des éléments dans la mock area
    teapot = models.Item("teapot", None, adv, get_resource_path("teapot.png"),
                         get_resource_path("teapot.png"))
    bsod.add_item(teapot, position=(15, 30))
    # locker = models.Item("locker", None, adv, get_resource_path("closed_locker.png"), None)
    # locker.open = False
    locker = models.Container("locker",
                              None,
                              adv,
                              get_resource_path("closed_locker.png"),
                              None,
                              get_resource_path("open_locker.png"),
                              key_name='key')
    bsod.add_item(locker, position=(80, 60))
    key = models.Item("key", None, adv, get_resource_path("key.png"),
                      get_resource_path("key.png"))
    bsod.add_item(key, position=(180, 60))

    # on change le comportement par défaut du locker

    def cannot_take(item, state):
        print "I cannot take " + str(item) + "!"
        return True

    set_behaviour(locker, "take", cannot_take)

    # use key behaviour
    # note that, Q5-like, we can directly use the key in the room with the locker without taking it
    # then the key will remain in the room...!

    def use_key(key, state):
        state.complement = "key"
        return False

    set_behaviour(key, "use", use_key)

    # porte "à la main"
    # door = models.Clickable("door", "porte", get_resource_path("door.png"), (200,20))
    door = models.Gate(drowning, "door", "porte",
                       get_resource_path("door.png"), (200, 20))
    # bsod.add_acitem(door, door.rect.topleft)
    bsod.add_gate(door)
    # set_behaviour(door, "on_click", lambda self, state: state.enter_area("drowning"))

    # on construit des boutons
    button1 = models.InteractiveButton("take", "Prendre",
                                       get_resource_path("take.png"), (0, 0))
    button2 = models.InteractiveButton("use", "Utiliser",
                                       get_resource_path("use.png"), (100, 0))
    button3 = models.InteractiveButton("open", "Ouvrir",
                                       get_resource_path("open.png"), (200, 0))

    # on les attache à un menu créé à ce moment (ou bien l'avance puis on append/add les boutons, évite les keyword avant args)
    menu = models.InteractiveMenu(get_resource_path("menu.png"),
                                  (40, 340, 160, 60), 1, True, button1,
                                  button2, button3)
    adv.set_menu(menu)

    # on peut entrer dans l'area qui est ready
    adv.enter_area('bsod')

    # on peut entrer dans le state qui est ready
    pac_game.manager.enter_state("adventure")

    assert pac_game.manager.states['adventure'].area.codename == 'bsod'

    # on peut lancer le jeu
    pac_game.run()
Exemplo n.º 4
0
def main():
    """Exemple de jeu avec manu dynamique style Monkey Island 3"""
    # on initialise le jeu point and click
    pac_game = pace.state.game.PaCGame((640, 400), title="DEMO game for pace")

    # on construit l'adventure state avec des salles et des objets
    adv = pac_game.context.states['adventure']
    adv.set_descriptions_from_file(get_resource_path("descriptions.txt"))

    bsod = models.Area('bsod', "blue screen of death",
                       get_resource_path("background.png"))
    adv.add_area(bsod)
    drowning = models.Area('drowning', "the drowning 'room'",
                           get_resource_path("drowning.png"))
    adv.add_area(drowning)

    # on ajoute des éléments dans la mock area
    teapot = models.Item("teapot", None, adv, get_resource_path("teapot.png"),
                         get_resource_path("teapot.png"))
    bsod.add_item(teapot, position=(15, 30))
    # locker = models.Item("locker", None, adv, get_resource_path("closed_locker.png"), None)
    # locker.open = False
    # locker = models.Container("locker", None, adv, get_resource_path("closed_locker.png"), None, get_resource_path("open_locker.png"), key_name='key')
    locker = models.Container("locker",
                              None,
                              adv,
                              get_resource_path("closed_locker.png"),
                              None,
                              get_resource_path("open_locker.png"),
                              key_name='key')
    bsod.add_item(locker, position=(80, 60))
    key = models.Item("key", None, adv, get_resource_path("key.png"),
                      get_resource_path("key.png"))
    bsod.add_item(key, position=(180, 60))

    # on change le comportement par défaut du locker
    def cannot_take(item, state):
        print "I cannot take " + str(item) + "!"
        return True

    set_behaviour(locker, "take", cannot_take)

    # use key behaviour
    # note that, Q5-like, we can directly use the key in the room with the locker without taking it
    # then the key will remain in the room...!
    def use_key(key, state):
        state.complement = "key"
        return False

    set_behaviour(key, "use", use_key)

    # porte "à la main"
    # door = models.Clickable("door", "porte", get_resource_path("door.png"), (200,20))
    door = models.Gate(drowning, "door", "porte",
                       get_resource_path("door.png"), (200, 20))
    # bsod.add_acitem(door, door.rect.topleft)
    bsod.add_gate(door)
    # set_behaviour(door, "on_click", lambda self, state: state.enter_area("drowning"))

    # on construit des boutons
    button1 = models.InteractiveButton("take", "Prendre",
                                       get_resource_path("take.png"), (0, 0))
    button2 = models.InteractiveButton("use", "Utiliser",
                                       get_resource_path("use.png"), (100, 0))
    # button3 = models.InteractiveButton("open", "Ouvrir", get_resource_path("open.png"), (200, 0))
    button3 = models.InteractiveButton("open", "Ouvrir",
                                       get_resource_path("open.png"), (200, 0))

    # on les attache à un menu créé à ce moment (ou bien l'avance puis on append/add les boutons, évite les keyword avant args)
    dynamic_menu = models.InteractiveMenu(get_resource_path("menu.png"),
                                          (40, 340, 160, 60), 0, True, button1,
                                          button2, button3)
    adv.set_menu(dynamic_menu)

    adv.set_query_mode()

    # # change behaviour of button open: keeps complement
    # def query_button_on_click(self, adventurestate):
    #     adventurestate.display_menu_for(self)
    # set_behaviour(locker, "query", query_button_on_click)

    # # change behaviour of open button: used after complement has been chosen
    # def open_after_complement(self, adventurestate):
    #     adventurestate.verb = 'open'  # opt. ici mais pratique en mouse-over pour voir ce qu'on fait
    #     # direct link to item with a method 'get_by_name'? but this ensures the item is in the current area...
    #     if getattr(adventurestate.area.get_item_by_name(adventurestate.complement), adventurestate.verb)(adventurestate):
    #         # if True is returned, the action has been completed
    #         del adventurestate.verb
    #         del adventurestate.complement
    # set_behaviour(button3, "on_click", open_after_complement)

    # on peut entrer dans l'area qui est ready
    adv.enter_area('bsod')

    # on peut entrer dans le state qui est ready
    pac_game.context.enter_state("adventure")

    assert pac_game.context.states['adventure'].area.codename == 'bsod'

    # on peut lancer le jeu
    pac_game.run()
Exemplo n.º 5
0
def main():
    """Exemple de jeu avec manu dynamique style Monkey Island 3"""
    # on initialise le jeu point and click
    pac_game = pace.state.game.PaCGame((640, 400), title="DEMO game for pace")

    # on construit l'adventure state avec des salles et des objets
    adv = pac_game.context.states['adventure']
    adv.set_descriptions_from_file(get_resource_path("descriptions.txt"))

    bsod = models.Area('bsod', "blue screen of death", get_resource_path("background.png"))
    adv.add_area(bsod)
    drowning = models.Area('drowning', "the drowning 'room'", get_resource_path("drowning.png"))
    adv.add_area(drowning)

    # on ajoute des éléments dans la mock area
    teapot = models.Item("teapot", None, adv, get_resource_path("teapot.png"), get_resource_path("teapot.png"))
    bsod.add_item(teapot, position=(15, 30))
    # locker = models.Item("locker", None, adv, get_resource_path("closed_locker.png"), None)
    # locker.open = False
    # locker = models.Container("locker", None, adv, get_resource_path("closed_locker.png"), None, get_resource_path("open_locker.png"), key_name='key')
    locker = models.Container("locker", None, adv, get_resource_path("closed_locker.png"), None, get_resource_path("open_locker.png"), key_name='key')
    bsod.add_item(locker, position=(80, 60))
    key = models.Item("key", None, adv, get_resource_path("key.png"), get_resource_path("key.png"))
    bsod.add_item(key, position=(180, 60))

    # on change le comportement par défaut du locker
    def cannot_take(item, state):
        print "I cannot take " + str(item) + "!"
        return True
    set_behaviour(locker, "take", cannot_take)

    # use key behaviour
    # note that, Q5-like, we can directly use the key in the room with the locker without taking it
    # then the key will remain in the room...!
    def use_key(key, state):
        state.complement = "key"
        return False
    set_behaviour(key, "use", use_key)

    # porte "à la main"
    # door = models.Clickable("door", "porte", get_resource_path("door.png"), (200,20))
    door = models.Gate(drowning, "door", "porte", get_resource_path("door.png"), (200, 20))
    # bsod.add_acitem(door, door.rect.topleft)
    bsod.add_gate(door)
    # set_behaviour(door, "on_click", lambda self, state: state.enter_area("drowning"))

    # on construit des boutons
    button1 = models.InteractiveButton("take", "Prendre", get_resource_path("take.png"), (0, 0))
    button2 = models.InteractiveButton("use", "Utiliser", get_resource_path("use.png"), (100, 0))
    # button3 = models.InteractiveButton("open", "Ouvrir", get_resource_path("open.png"), (200, 0))
    button3 = models.InteractiveButton("open", "Ouvrir", get_resource_path("open.png"), (200, 0))

    # on les attache à un menu créé à ce moment (ou bien l'avance puis on append/add les boutons, évite les keyword avant args)
    dynamic_menu = models.InteractiveMenu(get_resource_path("menu.png"), (40, 340, 160, 60), 0, True, button1, button2, button3)
    adv.set_menu(dynamic_menu)

    adv.set_query_mode()

    # # change behaviour of button open: keeps complement
    # def query_button_on_click(self, adventurestate):
    #     adventurestate.display_menu_for(self)
    # set_behaviour(locker, "query", query_button_on_click)

    # # change behaviour of open button: used after complement has been chosen
    # def open_after_complement(self, adventurestate):
    #     adventurestate.verb = 'open'  # opt. ici mais pratique en mouse-over pour voir ce qu'on fait
    #     # direct link to item with a method 'get_by_name'? but this ensures the item is in the current area...
    #     if getattr(adventurestate.area.get_item_by_name(adventurestate.complement), adventurestate.verb)(adventurestate):
    #         # if True is returned, the action has been completed
    #         del adventurestate.verb
    #         del adventurestate.complement
    # set_behaviour(button3, "on_click", open_after_complement)

    # on peut entrer dans l'area qui est ready
    adv.enter_area('bsod')

    # on peut entrer dans le state qui est ready
    pac_game.context.enter_state("adventure")

    assert pac_game.context.states['adventure'].area.codename == 'bsod'

    # on peut lancer le jeu
    pac_game.run()
Exemplo n.º 6
0
def main():

    # on initialise le jeu point and click
    game_app = GameApp((640, 400), title="DEMO game for GETA")

    # on construit l'adventure state avec des salles et des objets
    adv = game_app.manager.states['adventure']
    adv.set_descriptions_from_file(get_resource_path("descriptions.txt"))

    # room 1
    room1 = models.Area('room1', "first room", adv,
                        get_resource_path("thegoonies_room.png"))
    adv.add_area(room1)
    door1 = models.Gate("door1", "some door", adv, room1, "room2",
                        get_resource_path("door.png"), (352, 142))
    teapot = models.Item("teapot", None, adv, None,
                         get_resource_path("teapot.png"), (8, 8),
                         get_resource_path("teapot.png"))
    key = models.Item("key", None, adv, room1, get_resource_path("key.png"),
                      (380, 220), get_resource_path("key.png"))

    # room 2
    room2 = models.Area('room2', "another room", adv,
                        get_resource_path("thegoonies_room.png"))
    adv.add_area(room2)
    door2 = models.Gate("door2", "another porte", adv, room2, "drowning",
                        get_resource_path("door.png"), (382, 142))
    locker = models.Container(
        "locker",
        None,
        adv,
        room2,
        get_resource_path("closed_locker.png"), (325, 150),
        None,
        open_state=False,
        key_name='key',
        area_open_image_path=get_resource_path("open_locker.png"))
    locker.acquire_element(teapot)
    print "!!! " + teapot.parent.codename

    def use_locker(self, state):
        if state.complement is None:
            state.display_description("I cannot use this item alone.")
        else:
            self._use_tool_with(state, state.complement)
        return True  # action terminée

    setter.set_behaviour(locker, "use", use_locker)

    # drowning room
    drowning = models.Area('drowning', "the drowning 'room'", adv,
                           get_resource_path("drowning.png"))
    adv.add_area(drowning)

    # on construit des boutons
    button0 = models.VerbButton("look_at", "look at", adv,
                                get_resource_path("small_hit.png"), (38, 38))
    button1 = models.VerbButton("hit", "hit", adv,
                                get_resource_path("small_hit.png"), (38, 70))
    button2 = models.VerbButton("take", "take", adv,
                                get_resource_path("small_take.png"), (38, 102))
    button3 = models.VerbButton("use", "use", adv,
                                get_resource_path("small_use.png"), (38, 134))
    button4 = models.VerbButton("close", "close", adv,
                                get_resource_path("small_close.png"),
                                (38, 166))

    # on les attache à un menu créé à ce moment
    menu = models.AdventureMenu("menu", "Menu statique des verbes d'action",
                                adv, get_resource_path("thegoonies_menu.png"),
                                (102, 20), True, button1, button2, button3,
                                button4)
    adv.set_menu(menu)

    # déplacer l'inventaire là où l'on veut
    adv.set_inventory_view(
        position=(246, 292),
        image_path=get_resource_path("thegoonies_inventory.png"))

    # déplacer les actions et descriptions là on l'on veut
    adv.set_action_label((10, 230), get_resource_path("blank.png"))
    adv.move_description_label_to((270, 350))

    # on peut entrer dans l'area qui est prête
    adv.enter_area('room1')

    # on peut entrer dans le state qui est prêt
    game_app.manager.enter_state("adventure")

    # on peut lancer le jeu
    game_app.run()
Exemplo n.º 7
0
def main():

    # on initialise le jeu point and click
    game_app = GameApp((640, 400), title="DEMO game for GETA")

    # on construit l'adventure state avec des salles et des objets
    adv = game_app.manager.states['adventure']
    adv.set_descriptions_from_file(get_resource_path("descriptions.txt"))

    # room 1
    room1 = models.Area('room1', "first room", adv, get_resource_path("thegoonies_room.png"))
    adv.add_area(room1)
    door1 = models.Gate("door1", "some door", adv, room1, "room2", get_resource_path("door.png"), (352, 142))
    teapot = models.Item("teapot", None, adv, None, get_resource_path("teapot.png"), (8, 8), get_resource_path("teapot.png"))
    key = models.Item("key", None, adv, room1, get_resource_path("key.png"), (380, 220), get_resource_path("key.png"))

    # room 2
    room2 = models.Area('room2', "another room", adv, get_resource_path("thegoonies_room.png"))
    adv.add_area(room2)
    door2 = models.Gate("door2", "another porte", adv, room2, "drowning", get_resource_path("door.png"), (382, 142))
    locker = models.Container("locker", None, adv, room2, get_resource_path("closed_locker.png"), (325, 150), None, open_state=False, key_name='key', area_open_image_path=get_resource_path("open_locker.png"))
    locker.acquire_element(teapot)
    print "!!! " + teapot.parent.codename

    def use_locker(self, state):
        if state.complement is None:
            state.display_description("I cannot use this item alone.")
        else:
            self._use_tool_with(state, state.complement)
        return True  # action terminée
    setter.set_behaviour(locker, "use", use_locker)

    # drowning room
    drowning = models.Area('drowning', "the drowning 'room'", adv,  get_resource_path("drowning.png"))
    adv.add_area(drowning)

    # on construit des boutons
    button0 = models.VerbButton("look_at", "look at", adv, get_resource_path("small_hit.png"), (38, 38))
    button1 = models.VerbButton("hit", "hit", adv, get_resource_path("small_hit.png"), (38, 70))
    button2 = models.VerbButton("take", "take", adv, get_resource_path("small_take.png"), (38, 102))
    button3 = models.VerbButton("use", "use", adv, get_resource_path("small_use.png"), (38, 134))
    button4 = models.VerbButton("close", "close", adv, get_resource_path("small_close.png"), (38, 166))

    # on les attache à un menu créé à ce moment
    menu = models.AdventureMenu("menu", "Menu statique des verbes d'action", adv, get_resource_path("thegoonies_menu.png"), (102, 20), True, button1, button2, button3, button4)
    adv.set_menu(menu)

    # déplacer l'inventaire là où l'on veut
    adv.set_inventory_view(position=(246, 292), image_path=get_resource_path("thegoonies_inventory.png"))

    # déplacer les actions et descriptions là on l'on veut
    adv.set_action_label((10, 230), get_resource_path("blank.png"))
    adv.move_description_label_to((270, 350))

    # on peut entrer dans l'area qui est prête
    adv.enter_area('room1')

    # on peut entrer dans le state qui est prêt
    game_app.manager.enter_state("adventure")

    # on peut lancer le jeu
    game_app.run()
Exemplo n.º 8
0
 def prompt(self):
     action_string = raw_input("What do you want to do?\n")
     action_list = "take it".split()
     teapot = models.Item("teapot", "some teapot", adv, None, get_resource_path("teapot.png"), (15, 30), get_resource_path("teapot.png"))
     getattr(Element, "take")(teapot)