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)