Пример #1
0
 def __init__(self):
     self.en_jeu = True
     self.balle = Balle()
     self.raquette = Raquette()
     self.niveau = Niveau()
     self.vie = NOMBRE_VIES
     self.score = 0
     self.briques_touchees = 0
Пример #2
0
    def start(self, screen, player, niveau=1):

        with open('level.json', 'r') as infile:
            level = json.load(infile)

        if level == 1:
            Niveau.niveau1(self, player)
        elif level == 2:
            Niveau.niveau2(self, player)

        self.all_minus.draw(screen)
Пример #3
0
	def creer_niveau(self, mode="solo"):
		""" Crée et initialise un nouveau niveau ainsi qu'un joueur.

			[mode] (str): Le mode de gestion du niveau (solo, client ou
				serveur). (solo par défaut). """

		utile.debogguer("Création d'un nouveau niveau")
		
		if mode == "solo":
			self.niveau = Niveau(self)
		elif mode == "client":
			self.niveau = NiveauClient(self, self.client)
		elif mode == "serveur":
			self.niveau = NiveauServeur(self, self.serveur)
		self.niveau.initialiser_image()
Пример #4
0
class Jeu:
    def __init__(self):
        self.en_jeu = True
        self.balle = Balle()
        self.raquette = Raquette()
        self.niveau = Niveau()
        self.vie = NOMBRE_VIES
        self.score = 0
        self.briques_touchees = 0

    def gestion_evenements(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT: sys.exit()
            elif event.type == pygame.MOUSEBUTTONDOWN:
                if event.button == 1:
                    if self.balle.sur_raquette:
                        self.balle.sur_raquette = False
                        self.balle.vitesse_par_angle(60)
                    if self.en_jeu == False:
                        self.vie = NOMBRE_VIES
                        self.niveau.en_cours = 1
                        self.score = 0
    
    def mise_a_jour(self):
        x, y = pygame.mouse.get_pos()
        self.balle.deplacer(self.raquette)
        if self.balle.loose:
            self.vie -= 1
            self.balle.loose = False
        prec = False
        for brique in self.niveau.brique_liste:
            if brique.en_vie():
                collision = brique.collision_balle(self.balle,prec)
                if collision[0]:
                    if not(prec):
                        if brique.vie > 0:
                            jouer_son("touche")
                        else:
                            jouer_son("score")
                    if collision[0] and not(collision[1]) :
                        self.score += 1
                        self.raquette.arc_en_ciel = True
                        self.briques_touchees += 1
                    prec = True
        self.raquette.deplacer(x)
        self.en_jeu = True

    def affichage(self):
        screen.fill(COULEURS["NOIR"])
        afficher_murs()
        afficher_ATH(self)
        self.balle.afficher()
        self.raquette.afficher()
        self.niveau.afficher()

    def game_over(self):
        screen.fill(COULEURS["NOIR"])
        if jeu.vie == 0 :
            texte, rect = myfont.render("GAME OVER", (255,255,255), size = monitorwidth/15)
        else :
            texte, rect = myfont.render("GAME WIN", (255,255,255), size = monitorwidth/15)
        rect.center = (int(width/2), int(height/2))
        screen.blit(texte, rect)
        texte, rect = myfont.render("SCORE : " + str(self.score), (255,255,255), size = monitorwidth/38)
        rect.midtop = (int(width/2), int(height/5*3))
        screen.blit(texte, rect)
        texte, rect = myfont.render("NIVEAU : " + str(self.niveau.en_cours-1), (255,255,255), size = monitorwidth/38)
        rect.midbottom = (int(width/2), int(height/5*2))
        screen.blit(texte, rect)
        self.en_jeu = False
Пример #5
0
def main():
    pygame.init()
    screen = pygame.display.set_mode(size)
    # Logo:
    icone = pygame.image.load(icone_path).convert_alpha()
    pygame.display.set_icon(icone)
    # Title:
    pygame.display.set_caption("DKLabyrinthe")
    # menu:
    acceuil = pygame.image.load(accueuil_path).convert_alpha()
    # fond:
    fond = pygame.image.load(font_path).convert()

    boucle_jeu = 1
    while boucle_jeu:
        pygame.time.Clock().tick(30)
        # loop menu:
        start_acceuil = 1
        while start_acceuil:
            pygame.time.Clock().tick(30)
            screen.blit(acceuil, (0, 0))
            pygame.display.flip()
            for event in pygame.event.get():
                # Close window with cross:
                if event.type == const.QUIT:
                    sys.exit()
                # selection level:
                elif event.type == const.KEYDOWN:
                    if event.key == const.K_F1:
                        choix = path_to_level('level1.txt')
                        start_acceuil = 0
                    elif event.key == const.K_F2:
                        choix = path_to_level('level2.txt')
                        start_acceuil = 0

        # Chargement du niveau:
        niveau = Niveau(choix, screen)
        niveau.import_map()
        niveau.export_map()

        # Création de dk:
        dk = Perso(niveau)
        print(dk.x)
        start_game = 1
        while start_game:
            pygame.time.Clock().tick(30)
            for event in pygame.event.get():
                if event.type == const.QUIT:
                    sys.exit()
                elif event.type == const.KEYDOWN and event.key == const.K_ESCAPE:
                    start_game = 0
                elif event.type == const.KEYDOWN:
                    if event.key == const.K_DOWN:
                        dk.move('bas')
                    elif event.key == const.K_UP:
                        dk.move('haut')
                    elif event.key == const.K_RIGHT:
                        dk.move('droite')
                    elif event.key == const.K_LEFT:
                        dk.move('gauche')

            # affichage des différents écrans.
            screen.blit(fond, (0, 0))
            niveau.export_map()
            screen.blit(dk.position, (dk.x, dk.y))
            pygame.display.flip()

            # condition pour gagner:
            if (dk.x, dk.y) == dk.niveau.arrival:
                start_game = 0
Пример #6
0
    def __analyse_niveau(lignes):
        niveau = Niveau()
        niveau.entités_init = []
        lignes.pop(0)

        i = 0
        while lignes:
            ligne = lignes[0]
            balise = ligne.split()[0]

            if balise == C.DÉF_BALISE_CARTE:
                niveau.carte_l1 = GFichierMonde.__analyse_carte(lignes)
                niveau.l = len(niveau.carte_l1)
                niveau.h = len(niveau.carte_l1[0])
            elif balise == C.DÉF_BALISE_CARTE_L2:
                niveau.carte_l2 = GFichierMonde.__analyse_carte(lignes)
            elif balise == C.DÉF_BALISE_JOUEUR:
                niveau.joueur_init, niveau.joueur_init_coords = GFichierMonde.__analyse_joueur(
                    lignes)
            elif balise == C.DÉF_BALISE_NIVEAU_FIN:
                lignes.pop(0)
                break
            elif balise == C.DÉF_BALISE_ENTITÉ:
                entité = GFichierMonde.__analyse_entité(lignes)
                niveau.entités_init.append(entité)
            else:
                lignes.pop(i - 1)
            i += 1
        niveau.carte = list(niveau.carte_l1)
        for y in range(niveau.h):
            for x in range(niveau.l):
                if niveau.carte_l2[x][y]:
                    niveau.carte[x] = list(niveau.carte[x])
                    niveau.carte[x][y] = niveau.carte_l2[x][y]

        return niveau
Пример #7
0
    jeu.dialoguer(dialogue)


def testSerializedDialogue():
    with open('resources/temporaire/dialogue.pickle', 'rb') as file:
        dialogue = pickle.load(file)
    jeu.dialoguer(dialogue)


pygame.init()
pygame.mixer.init()
fenetre = Fenetre("test ISN Dialogue", constantes.largeur, constantes.hauteur)
fenetre.fond = pygame.image.load("resources/galaxie.jpg").convert_alpha()

with open('resources/niveau/1/firstDialog.pickle', 'rb') as file:
    firstDialog = pickle.load(file)

with open('resources/niveau/1/middleDialog.pickle', 'rb') as file:
    middleDialog = pickle.load(file)

with open('resources/niveau/1/lastDialog.pickle', 'rb') as file:
    lastDialog = pickle.load(file)

jeu = Jeu(fenetre, Niveau(1), 0, 0)
for explode in constantes.explodeList:
    explode = explode.convert_alpha()
#testDialog()
#testSerializedDialogue()
testplay()
pygame.quit()