Browse Source

Mise à jour de 'SpaceInvader.py'

master
Treacky 4 days ago
parent
commit
b689e98219
  1. 21
      SpaceInvader.py

21
SpaceInvader.py

@ -29,6 +29,7 @@ class Vaisseau:
def __init__(self, couleur:int=COULEUR_VAISSEAU) -> 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é
self.jump = None
self.couleur = couleur # couleur du vaisseau à l'écran
def set_x(self:'Vaisseau', dx:int) -> None:
@ -47,6 +48,8 @@ class Vaisseau:
elif self.y >= 120:
self.y = 120
def set_jump(self):
self.jump = 10
def get_coord(self:'Vaisseau') -> tuple[int, int]:
"""Renvoie le couple (x, y) qui contient les coordonnées (du coin haut gauche) du vaisseau"""
@ -57,6 +60,15 @@ class Vaisseau:
pyxel.blt(self.x, self.y, 0, 0, 0, 8, 8)
# (..., 0, 0, 0, 8, 8) car Image 0 à partir de (0;0) de taille 8*8
def move(self):
if self.jump!=None:
self.jump = self.jump - 1
if self.jump > 0:
self.y = self.y - 1
if self.jump < 0:
self.y = self.y + 1
if self.jump == -100:
self.jump = None
class Joueur:
"""Classe intégrant la gestion du Modèle relative au joueur."""
@ -114,7 +126,7 @@ class Ennemi:
def deplacement(self:'Ennemi') -> None:
"""Déplace l'ennemi d'un pixel vers le bas"""
self.y = self.y + 1
self.x = self.x - 1
def get_coord(self:'Ennemi') -> tuple[int, int]:
"""Renvoie le couple (x,y) des coordonnées (du coin haut gauche) de l'ennemi"""
@ -122,7 +134,7 @@ class Ennemi:
def est_hors_ecran(self:'Ennemi') -> bool:
"""Prédicat qui renvoie True si l'ennemi est sorti de l'écran par le bas"""
return self.y > 128
return self.x < 0
def est_touche_par(self:'Ennemi', tir:'Tir') -> bool:
"""Prédicat qui renvoie True si l'ennemi est en contact avec le tir"""
@ -211,7 +223,8 @@ class Jeu:
if pyxel.btn(pyxel.KEY_DOWN):
self.vaisseau.set_y(1)
if pyxel.btn(pyxel.KEY_UP):
self.vaisseau.set_y(-1)
self.vaisseau.set_jump()
self.vaisseau.move()
def tirer(self:'Jeu') -> None:
"""Contrôle la touche de création d'un tir et lance la création au besoin"""
@ -238,7 +251,7 @@ class Jeu:
"""Création aléatoire des ennemis"""
if (pyxel.frame_count % 30 == 0): # 30 images / s donc un ennemi par seconde
nouvel_ennemi = Ennemi(random.randint(0, 120), 0)
nouvel_ennemi = Ennemi(120, 0)
self.ennemis.append(nouvel_ennemi)
def deplacer_ennemis(self:'Jeu') -> None:

Loading…
Cancel
Save