Dojo Defender Session 2 : Cheatsheet
# Tirer avec ESPACE
def on_key_down(key):
global shoot_cooldown
if key == keys.SPACE and shoot_cooldown == 0:
bullet = Actor('bullet')
bullet.x = ship.x
bullet.y = ship.y - 20
bullets.append(bullet)
shoot_cooldown = 15
# Faire bouger les balles et les supprimer
for bullet in bullets[:]:
bullet.y -= 8
if bullet.y < -10:
bullets.remove(bullet)
# Faire apparaître un ennemi
def spawn_enemy():
enemy = Actor('enemy_drone')
enemy.x = random.randint(30, WIDTH - 30)
enemy.y = -30
enemy.speed = random.uniform(1, 3)
enemies.append(enemy)
# Intervalle de spawn des ennemis
spawn_counter += 1
if spawn_counter >= spawn_interval:
spawn_counter = 0
spawn_enemy()
# Une balle touche un ennemi
for bullet in bullets[:]:
bullet.y -= 8
if bullet.y < -10:
bullets.remove(bullet)
continue
for enemy in enemies[:]:
if bullet.colliderect(enemy):
bullets.remove(bullet)
enemies.remove(enemy)
score += 10
break
# Vagues
enemies_destroyed += 1
if enemies_destroyed % 10 == 0:
wave += 1
spawn_interval = max(60, spawn_interval - 10)
# Mouvement sinusoïdal (import math)
enemy.x = enemy.start_x + math.sin(timer * 0.03 + enemy.strafe_offset) * 50
# Afficher le texte de la vague
if wave_display_timer > 0:
screen.draw.text(f"VAGUE {wave} !", center=(WIDTH/2, HEIGHT/2),
color="yellow", fontsize=60)