Browse Source

Mise à jour de 'projetv2/projet.py'

master
EnoxX-FiRe 1 month ago
parent
commit
8f8a773ebe
  1. 56
      projetv2/projet.py

56
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) ''' 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. Module basé sur une architecture MVC (modèle-vue-controleur) globale et également intégrée aux objets.
''' '''
#Importation #Importation
import pyxel import pyxel
import random import random
#Constantes #Constantes
COULEUR_PERE_NOEL = 1 COULEUR_PERE_NOEL = 1
COULEUR_TIR = 10 COULEUR_TIR = 10
@ -20,19 +16,35 @@ X1_CADEAU1 = 14
Y1_CADEAU1 = 110 Y1_CADEAU1 = 110
X2_CADEAU1 = 22 X2_CADEAU1 = 22
Y2_CADEAU1 = 115 Y2_CADEAU1 = 115
POSITION_PLATEFORME = [1,0,0,0,0,1],[1,1,1,0,1,0]
#Déclaration des classes #Déclaration des classes
"""Classe intégrant la gestion du Modèle et de la Vue relative au Perenoel du joueur.""" class Plateforme:
class Objet:
def __init__(self) -> None: def __init__(self) -> None:
self.x = 115 # coordonnée x du coin haut à gauche du carré self.x = 10
self.y = 0 # coordonnée y du coin haut à gauche du carré self.y = 10
def afficher(self:'Objet', x1, y1, x2, y2) -> None:
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""" """Affichage des objets"""
pyxel.blt(self.x, self.y, 0, x1, y1, x2, y2) pyxel.blt(self.x, self.y, 0, self.x1, self.y1, self.x2, self.y2)
#Co :25,46,38,19
class Perenoel:
"""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: def __init__(self, couleur:int=COULEUR_PERE_NOEL) -> None:
self.x = 60 # coordonnée x du coin haut à gauche du carré self.x = 60 # coordonnée x du coin haut à gauche du carré
self.y = 60 # coordonnée y 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) self.set_y(1)
def gravite(self:'Perenoel'): def gravite(self:'Perenoel'):
if self.y<30: if self.y<80:
self.set_y(1) self.set_y(1)
def get_coord(self:'Perenoel') -> tuple[int, int]: def get_coord(self:'Perenoel') -> tuple[int, int]:
@ -105,14 +117,19 @@ class Jeu:
# Initialisation des données du jeu # Initialisation des données du jeu
self.perenoel = Perenoel() 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.joueur = Joueur(self.perenoel, 4)
self.tirs = [] # Tableau des tirs self.tirs = [] # Tableau des tirs
self.ennemis = [] # Tableau des ennemis présents self.ennemis = [] # Tableau des ennemis présents
self.explosions = [] # Tableau des explosions self.explosions = [] # Tableau des explosions
# Lancement de l'alternance 30x par seconde entre controleur et vue # 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): def controler(self):
if pyxel.btn(pyxel.KEY_RIGHT): if pyxel.btn(pyxel.KEY_RIGHT):
self.perenoel.set_x(1) self.perenoel.set_x(1)
@ -124,8 +141,9 @@ class Jeu:
def afficher(self:'Jeu') -> None: def afficher(self:'Jeu') -> None:
pyxel.cls(4) pyxel.cls(4)
self.perenoel.afficher() self.perenoel.afficher()
#self.perenoel.gravite() self.objet.afficher()
#self.objet.afficher(X1_SAPIN, Y1_SAPIN, X2_SAPIN, Y2_SAPIN) self.objet2.afficher()
self.objet.afficher(X1_CADEAU1, Y1_CADEAU1, X2_CADEAU1, Y2_CADEAU1) self.plateforme.afficher()
j = Jeu() j = Jeu()
Loading…
Cancel
Save