def test_bouge_depasse_taille(): vaisseau = Vaisseau(50, 480) vaisseau.forme.x = 479 - LONGUEUR vaisseau.vitesse = 10 vaisseau.bouge(1, +1) assert vaisseau.forme.x == 480 - LONGUEUR
def test_bouge_negatif(): vaisseau = Vaisseau(50, 480) vaisseau.forme.x = 1 vaisseau.vitesse = 10 vaisseau.bouge(1, -1) assert vaisseau.forme.x == 0
def test_bouge_droite(): vaisseau = Vaisseau(50, 480) vaisseau.forme.x = 0 vaisseau.vitesse = 10 vaisseau.bouge(2, +1) assert vaisseau.forme.x == 20
def test_bouge_gauche(): vaisseau = Vaisseau(50, 480) vaisseau.forme.x = 100 vaisseau.vitesse = 10 vaisseau.bouge(2, -1) assert vaisseau.forme.x == 80
class Fenetre(pyglet.window.Window): def __init__(self): super().__init__(640, 480, "Arkanoid") self.score = pyglet.text.Label( "0", x=630, y=470, anchor_x="right", anchor_y="top", ) self.vie = pyglet.text.Label( "2", x=10, y=10, anchor_x="left", anchor_y="bottom", ) self.sol = pyglet.shapes.Line(0, 50, 640, 50, color=(0xFF, 0xFF, 0xFF)) self.plafond = pyglet.shapes.Line(0, 480 - 50, 640, 480 - 50, color=(0xFF, 0xFF, 0xFF)) self.vaisseau = Vaisseau(50, 640) self.bille = Bille(50, 480 - 50, 640) self.bille.vitesse = (75, 25) self.briques = [] for i in range(12): for j in range(5): self.briques.append(Brique(25 + i * (40 + 10), 400 - j * 30)) self.direction = 0 # -1 (gauche) ; 0 (immobile) ; 1 (droite) pyglet.clock.schedule_interval(self.update, 1 / 60) def update(self, dt): self.vaisseau.bouge(dt, self.direction) self.bille.bouge(dt) if self.vaisseau.collision(self.bille): self.score.text = str(int(self.score.text) + 1) self.bille.vitesse = (self.bille.vitesse[0], -self.bille.vitesse[1]) for brique in self.briques: if brique.collision(self.bille): self.score.text = str(int(self.score.text) + 5) self.bille.vitesse = (self.bille.vitesse[0], -self.bille.vitesse[1]) self.briques.remove(brique) if self.bille.vitesse == (0, 0): vie = int(self.vie.text) if vie > 0: vie -= 1 self.vie.text = str(vie) self.bille.vitesse = (75, 25) def on_key_press(self, symbol, modifiers): if symbol == key.LEFT: self.direction += -1 elif symbol == key.RIGHT: self.direction += 1 def on_key_release(self, symbol, modifiers): if symbol == key.LEFT: self.direction -= -1 elif symbol == key.RIGHT: self.direction -= 1 def on_draw(self): self.clear() self.score.draw() self.vie.draw() self.sol.draw() self.plafond.draw() self.vaisseau.draw() self.bille.draw() for brique in self.briques: brique.draw()