Beispiel #1
0
def perdre(dico_controles, ecran, font_jeu, raison):
    boucle = True
    quitter = False

    while boucle:
        ecran.fill((255, 255, 255))

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                boucle = False
                quitter = True
            elif event.type == pygame.KEYDOWN:
                if event.key == dico_controles.get("action"):
                    boucle = False

        if raison == "conso":
            print_text(
                "Vous n'aviez pas assez de vivres... (Appuyé sur action pour continuer)",
                True, (255, 28, 0), (0, 0), font_jeu, ecran, True, True)
        else:
            print_text(
                "Votre abri n'a pas résisté... (Appuyé sur action pour continuer)",
                True, (255, 28, 0), (0, 0), font_jeu, ecran, True, True)
        pygame.display.flip()

    return quitter
Beispiel #2
0
def gagner(dico_controles, ecran, font_jeu):
    boucle = True
    quitter = False

    while boucle:
        ecran.fill((255, 255, 255))

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                boucle = False
                quitter = True
            elif event.type == pygame.KEYDOWN:
                if event.key == dico_controles.get("action"):
                    boucle = False

        print_text(
            "Félicitation ! Vous avez survécu !(Appuyé sur action pour continuer)",
            True, (0, 185, 255), (0, 0), font_jeu, ecran, True, True)

        pygame.display.flip()

    return quitter
Beispiel #3
0
 def hud(self, ecran, font_hud, meteo):
     print_text("Eau : {}/21".format(self.eau), True, (255, 255, 255),
                (1, 0), font_hud, ecran, False, False)
     print_text("Viande : {}/20".format(self.viande), True, (255, 255, 255),
                (1, 24), font_hud, ecran, False, False)
     print_text("Bois : {}/40".format(self.bois), True, (255, 255, 255),
                (1, 48), font_hud, ecran, False, False)
     print_text("Pierre : {}/40".format(self.pierre), True, (255, 255, 255),
                (1, 72), font_hud, ecran, False, False)
     print_text("Cuivre : {}/20".format(self.cuivre), True, (255, 255, 255),
                (1, 96), font_hud, ecran, False, False)
     print_text("Fer : {}/15".format(self.fer), True, (255, 255, 255),
                (1, 120), font_hud, ecran, False, False)
     print_text("Or : {}/10".format(self.gold), True, (255, 255, 255),
                (1, 144), font_hud, ecran, False, False)
     print_text("Jour(s) : {}".format(self.jour), True, (255, 255, 255),
                (0, 15), font_hud, ecran, True, False)
     print_text("Méteo : {}".format(meteo), True, (200, 0, 0), (550, 2),
                font_hud, ecran, False, False)
Beispiel #4
0
def boite_de_dialogue(ecran, perso, boite, font_jeu, message, dico_controles,
                      verifier, font_hud, meteo, hud):

    pos_boite = boite.get_rect()
    pos_boite.centerx = ecran.get_rect().centerx
    pos_boite.centery = ecran.get_rect().centery

    pos_initial = 200
    i = 0

    message = message.split("#")

    pos = 2
    faire_action = False
    boucle = True
    quitter = False

    while boucle:
        perso.current_map.afficher(ecran)
        ecran.blit(perso.current_char, (perso.x, perso.y))
        if hud:
            perso.hud(ecran, font_hud, meteo)
        ecran.blit(boite, pos_boite)
        for i in range(0, len(message)):
            pos_y = pos_initial + 30 * (i + 1)
            print_text(message[i], True, (255, 255, 255), (0, pos_y), font_jeu,
                       ecran, True, False)
        if verifier:
            action_pos(pos, 1, "Oui", True, BLANC, ROUGE, (0, pos_y + 30),
                       font_jeu, ecran, True, False)
            action_pos(pos, 2, "Non", True, BLANC, ROUGE, (0, pos_y + 60),
                       font_jeu, ecran, True, False)
        else:
            print_text("Appuyer sur la touche Action pour fermer le dialogue",
                       True, (0, 185, 255), (0, pos_y + 30), font_jeu, ecran,
                       True, False)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                boucle = False
                quitter = True
            elif event.type == pygame.KEYUP:
                if event.key == dico_controles.get("action"):
                    if verifier:
                        if pos == 1:
                            faire_action = True
                            return quitter, faire_action
                        elif pos == 2:
                            return quitter, faire_action
                    else:
                        boucle = False
            elif event.type == pygame.KEYDOWN:
                if event.key == dico_controles.get("bas"):
                    pos += 1
                    if pos == 3:
                        pos = 1
                elif event.key == dico_controles.get("haut"):
                    pos -= 1
                    if pos == 0:
                        pos = 2
                    elif pos < 0:
                        pos = 1

        pygame.display.flip()

    return quitter, faire_action
Beispiel #5
0
def introduction(ecran, font_jeu, dico_controles):

    quitter_jeu = False
    boucle = True


    

    while boucle:
        
        ecran.fill((255,255,255))


        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                boucle = False
                quitter_jeu = True
            elif event.type == pygame.KEYDOWN:
                if event.key == dico_controles.get("action"):
                    boucle = False

        print_text("Durant mon voyage en mer, moi et mon équipage avons dû faire face à une tempête.", True, (0,0,0), (0,152-76), font_jeu, ecran, True, False)
        print_text("Malheureusement pour moi j'ai été éjecté du navire sur une de nos barques.", True, (0,0,0),(0,152),font_jeu,ecran, True, False)
        print_text("Je me suis échoué sur cette île, ma barque s'est brisée,", True, (0,0,0),(0,152+76),font_jeu,ecran, True, False)
        print_text("je dois attendre que mon équipage vienne me chercher, je n'ai pas beaucoup de temps", True, (0,0,0),(0,152+76*2),font_jeu,ecran, True, False)
        print_text("pour me construire un abri, la tempête va revenir d'ici une vingtaine de jours.", True, (0,0,0),(0,152+76*3),font_jeu,ecran, True, False)
        print_text("Je dois me limiter à trois actions par jour sous risque de manquer d'eau", True, (0,0,0),(0,152+76*4),font_jeu,ecran, True, False)
        print_text("Appuyer sur la touche Action pour continuer", True, (0,42,178),(0,152+76*5),font_jeu,ecran, True, False)

        pygame.display.flip()


    return quitter_jeu
Beispiel #6
0
def menu_principal(ecran, musique_menu, fond_menu, font_menu, font_jeu,
                   fond_menu_option, font_option, font_titre, dico_controles):

    choix = 0  # variable qui ne sert qu'à vérifier le choix de l'utilisateur dans le menu
    try:
        volume_musique = vol_musique("data/volume.m")
        volume_musique = float(volume_musique)
    except:
        volume_musique = 0.5
    musique_menu.set_volume(volume_musique)
    musique_menu.play(-1)  #joue la musique à l'infini
    pos = 0
    pygame.key.set_repeat(
        200, 80
    )  # le premier nombre correspond au nombres de millisecondes avant de commencer à répéter, puis le deuxieme c'est le nombre de millisecondes entre chaque répétitions
    if if_exist("data/save.stt") == True:
        while (choix != 1) and (choix != 2) and (
                choix != 3
        ):  # 1 = nouvelle partie, 2 = continuer, 3 = quitter , les options seront gérés dans le menu
            ecran.blit(fond_menu, (0, 0))
            print_text("Survive the tempest", True, BLEU, (0, 152 - 76),
                       font_titre, ecran, True, False)
            action_pos(pos, 1, "Nouvelle partie", True, NOIR, ROUGE, (0, 152),
                       font_menu, ecran, True, False)

            action_pos(pos, 2, "Charger la partie", True, NOIR, ROUGE,
                       (0, 152 + 76), font_menu, ecran, True, False)

            action_pos(pos, 3, "Options", True, NOIR, ROUGE, (0, 152 + 76 * 2),
                       font_menu, ecran, True, False)

            action_pos(pos, 4, "Quitter", True, NOIR, ROUGE, (0, 152 + 76 * 3),
                       font_menu, ecran, True, False)

            print_text("Version : 1.0.0", True, NOIR, (0, 588), font_jeu,
                       ecran, True, False)

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    choix = 3
                elif event.type == pygame.KEYDOWN:
                    if event.key == dico_controles.get("bas"):
                        pos += 1
                        if pos == 5:
                            pos = 1
                    if event.key == dico_controles.get("haut"):
                        pos -= 1
                        if pos == 0:
                            pos = 4
                        elif pos < 0:
                            pos = 1

                elif event.type == pygame.KEYUP:
                    if event.key == dico_controles.get("action"):
                        if pos == 1:
                            choix = 1
                        elif pos == 2:
                            choix = 2
                        elif pos == 3:
                            choix = gerer_option(ecran, fond_menu,
                                                 fond_menu_option,
                                                 musique_menu, font_option,
                                                 dico_controles)
                        elif pos == 4:
                            choix = 3

            pygame.display.flip()

    else:
        while (choix != 1) and (
                choix != 3
        ):  # 1 = nouvelle partie, 2 = continuer, 3 = quitter , les options seront gérés dans le menu
            ecran.blit(fond_menu, (0, 0))
            print_text("Survive the tempest", True, BLEU, (0, 152 - 76),
                       font_titre, ecran, True, False)
            action_pos(pos, 1, "Nouvelle partie", True, NOIR, ROUGE,
                       (0, 152 + 76), font_menu, ecran, True, False)

            action_pos(pos, 2, "Options", True, NOIR, ROUGE, (0, 152 + 76 * 2),
                       font_menu, ecran, True, False)

            action_pos(pos, 3, "Quitter", True, NOIR, ROUGE, (0, 152 + 76 * 3),
                       font_menu, ecran, True, False)

            print_text("Version : 1.0.0", True, NOIR, (0, 588), font_jeu,
                       ecran, True, False)

            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    choix = 3
                elif event.type == pygame.KEYDOWN:
                    if event.key == dico_controles.get("bas"):
                        pos += 1
                        if pos == 4:
                            pos = 1
                    elif event.key == dico_controles.get("haut"):
                        pos -= 1
                        if pos == 0:
                            pos = 3
                        elif pos < 0:
                            pos = 1

                elif event.type == pygame.KEYUP:
                    if event.key == dico_controles.get("action"):
                        if pos == 1:
                            choix = 1
                        elif pos == 2:
                            choix = gerer_option(ecran, fond_menu,
                                                 fond_menu_option,
                                                 musique_menu, font_option,
                                                 dico_controles)
                        elif pos == 3:
                            choix = 3

            pygame.display.flip()

    musique_menu.stop()
    return choix, dico_controles
Beispiel #7
0
def gerer_option(ecran, fond_menu, fond_menu_option, musique_menu, font_option,
                 dico_controles):

    pos_option = fond_menu_option.get_rect()
    pos_option.centerx = ecran.get_rect().centerx
    pos_option.centery = ecran.get_rect().centery

    pos = 0
    en_action = False
    choix = 0
    quitter_menu_option = False
    secu = 0
    while not quitter_menu_option:
        volume_musique = musique_menu.get_volume()
        ecran.blit(fond_menu, (0, 0))
        ecran.blit(fond_menu_option, pos_option)
        print_text("Options", True, BLANC, (0, 165), font_option, ecran, True,
                   False)

        action_pos(
            pos, 1,
            "Volume de la musique : {}%".format(int(volume_musique * 100)),
            True, BLANC, ROUGE, (0, 200), font_option, ecran, True, False)

        action_pos(
            pos, 2, "Aller à gauche/Menu options : {}".format(
                dico_controles["gauche"]), True, BLANC, ROUGE, (216, 230),
            font_option, ecran, True, False)

        action_pos(
            pos, 3, "Aller à droite/Menu options : {}".format(
                dico_controles.get("droite")), True, BLANC, ROUGE, (216, 260),
            font_option, ecran, True, False)

        action_pos(pos, 4,
                   "Aller en bas/Menus : {}".format(dico_controles.get("bas")),
                   True, BLANC, ROUGE, (216, 290), font_option, ecran, True,
                   False)

        action_pos(
            pos, 5,
            "Aller en haut/Menus : {}".format(dico_controles.get("haut")),
            True, BLANC, ROUGE, (216, 320), font_option, ecran, True, False)

        action_pos(
            pos, 6,
            "Faire une action/Menus : {}".format(dico_controles.get("action")),
            True, BLANC, ROUGE, (216, 350), font_option, ecran, True, False)

        action_pos(
            pos, 7, "Ouvrir interface/Quitter options : {}".format(
                dico_controles.get("retour")), True, BLANC, ROUGE, (216, 380),
            font_option, ecran, True, False)

        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                quitter_menu_option = True
                choix = 3
            elif event.type == pygame.KEYDOWN:
                if not en_action:
                    if event.key == dico_controles.get("retour"):
                        quitter_menu_option = True
                if event.key == dico_controles.get("bas"):
                    pos += 1
                    if pos == 8:
                        pos = 1
                elif event.key == dico_controles.get("haut"):
                    pos -= 1
                    if pos == 0:
                        pos = 7
                    elif pos < 0:
                        pos = 1

                elif event.key == dico_controles.get("droite"):
                    if pos == 1:
                        if volume_musique < 1.0:
                            volume_musique += 0.01

                            musique_menu.set_volume(volume_musique)

                elif event.key == dico_controles.get("gauche"):
                    if pos == 1:
                        if volume_musique > 0.0:
                            volume_musique -= 0.01

                            musique_menu.set_volume(volume_musique)
                if en_action == True:
                    if pos == 2:
                        for cle, valeur in dico_controles.items():
                            if event.key == valeur:
                                secu = dico_controles.get("gauche")
                                dico_controles[cle] = secu
                        dico_controles["gauche"] = event.key
                    elif pos == 3:
                        for cle, valeur in dico_controles.items():
                            if event.key == valeur:
                                secu = dico_controles.get("droite")
                                dico_controles[cle] = secu
                        dico_controles["droite"] = event.key
                    elif pos == 4:
                        for cle, valeur in dico_controles.items():
                            if event.key == valeur:
                                secu = dico_controles.get("bas")
                                dico_controles[cle] = secu
                        dico_controles["bas"] = event.key
                    elif pos == 5:
                        for cle, valeur in dico_controles.items():
                            if event.key == valeur:
                                secu = dico_controles.get("haut")
                                dico_controles[cle] = secu
                        dico_controles["haut"] = event.key
                    elif pos == 6:
                        for cle, valeur in dico_controles.items():
                            if event.key == valeur:
                                secu = dico_controles.get("action")
                                dico_controles[cle] = secu
                        dico_controles["action"] = event.key
                    elif pos == 7:
                        for cle, valeur in dico_controles.items():
                            if event.key == valeur:
                                secu = dico_controles.get("retour")
                                dico_controles[cle] = secu
                        dico_controles["retour"] = event.key
                    en_action = False

            elif event.type == pygame.KEYUP:

                if event.key == dico_controles.get(
                        "action") and en_action == False:
                    if pos in range(2, 8):
                        en_action = True

        pygame.display.flip()
    modif_controles(dico_controles)
    volume_musique = str(volume_musique)
    ecrire_volume("data/volume.m", volume_musique)
    return choix
Beispiel #8
0
def action_pos(position_parcours, a_verifier, message, aliasing , couleur1 , couleur2, position , font , ecran, centre_x, centre_y):
    if position_parcours == a_verifier:
        print_text(message,aliasing, couleur2,position,font,ecran,centre_x,centre_y)
    else:
        print_text(message,aliasing, couleur1,position,font,ecran,centre_x,centre_y)