diff --git a/projetv2/projet.py b/projetv2/projet.py index d5920f2..26751fc 100644 --- a/projetv2/projet.py +++ b/projetv2/projet.py @@ -1,13 +1,9 @@ ''' Programme pyxel inspiré d'un tutoriel en ligne de "la Nuit du Code" https://nuit-du-code.forge.apps.education.fr/DOCUMENTATION/PYTHON/01-presentation/ https://www.cahiernum.net/KV8H5B Licence GNU (https://github.com/nuitducode/DOCUMENTATION/blob/main/LICENSE) - Module basé sur une architecture MVC (modèle-vue-controleur) globale et également intégrée aux objets. - ''' - #Importation import pyxel import random - #Constantes COULEUR_PERE_NOEL = 1 COULEUR_TIR = 10 @@ -20,19 +16,35 @@ X1_CADEAU1 = 14 Y1_CADEAU1 = 110 X2_CADEAU1 = 22 Y2_CADEAU1 = 115 +POSITION_PLATEFORME = [1,0,0,0,0,1],[1,1,1,0,1,0] #Déclaration des classes -"""Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur.""" -class Objet: +class Plateforme: def __init__(self) -> None: - self.x = 115 # coordonnée x du coin haut à gauche du carré - self.y = 0 # coordonnée y du coin haut à gauche du carré - def afficher(self:'Objet', x1, y1, x2, y2) -> None: + self.x = 10 + self.y = 10 + + def afficher(self) -> None: + for colonne in range(6): + for ligne in range (1): + if POSITION_PLATEFORME[colonne][ligne] == 1: + self.x = (self.x*(colonne+1)) + self.y = (self.y*(ligne+1)) + pyxel.blt(self.x,self.y,0,27,30,37,32) + +class Objet: + def __init__(self,x,y,x1,y1,x2,y2) -> None: + self.x = x # coordonnée x du coin haut à gauche du carré + self.y = y # coordonnée y du coin haut à gauche du carré + self.x1 = x1 + self.x2 = x2 + self.y1 = y1 + self.y2 = y2 + def afficher(self:'Objet') -> None: """Affichage des objets""" - pyxel.blt(self.x, self.y, 0, x1, y1, x2, y2) - #Co :25,46,38,19 - -class Perenoel: + pyxel.blt(self.x, self.y, 0, self.x1, self.y1, self.x2, self.y2) +"""Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur.""" +class Perenoel: def __init__(self, couleur:int=COULEUR_PERE_NOEL) -> None: self.x = 60 # coordonnée x du coin haut à gauche du carré self.y = 60 # coordonnée y du coin haut à gauche du carré @@ -62,7 +74,7 @@ class Perenoel: self.set_y(1) def gravite(self:'Perenoel'): - if self.y<30: + if self.y<80: self.set_y(1) def get_coord(self:'Perenoel') -> tuple[int, int]: @@ -105,14 +117,19 @@ class Jeu: # Initialisation des données du jeu self.perenoel = Perenoel() - self.objet = Objet() + self.objet = Objet(115,0,X1_SAPIN, Y1_SAPIN, X2_SAPIN, Y2_SAPIN) + self.objet2 = Objet(80,80,X1_CADEAU1, Y1_CADEAU1, X2_CADEAU1, Y2_CADEAU1) + self.plateforme = Plateforme() self.joueur = Joueur(self.perenoel, 4) self.tirs = [] # Tableau des tirs self.ennemis = [] # Tableau des ennemis présents self.explosions = [] # Tableau des explosions # Lancement de l'alternance 30x par seconde entre controleur et vue - pyxel.run(self.controler, self.afficher) + pyxel.run(self.controler, self.afficher, self.comportement) + def comportement(self): + self.perenoel.gravite() + def controler(self): if pyxel.btn(pyxel.KEY_RIGHT): self.perenoel.set_x(1) @@ -124,8 +141,9 @@ class Jeu: def afficher(self:'Jeu') -> None: pyxel.cls(4) self.perenoel.afficher() - #self.perenoel.gravite() - #self.objet.afficher(X1_SAPIN, Y1_SAPIN, X2_SAPIN, Y2_SAPIN) - self.objet.afficher(X1_CADEAU1, Y1_CADEAU1, X2_CADEAU1, Y2_CADEAU1) + self.objet.afficher() + self.objet2.afficher() + self.plateforme.afficher() + j = Jeu() \ No newline at end of file