Battle Arena

Dans cette page tu trouveras :

Création des éléments graphiques

Dans ce jeu, le joueur se déplace librement dans une arène, et tire sur des ennemis qui apparaissent et le poursuivent. L’objectif est de survivre le plus longtemps possible en protégeant ses points de vie.

Pour créer ce jeu, nous avons besoin de :

  • Un arrière plan  (une arène)
  • Un personnage (joueur)
  • Une balle (projectile à tirer)
  • Un ennemi 

Choisir l’arrière plan, le personnage et le projectile : Tu peux soit sélectionner une scène directement dans la bibliothèque Scratch, soit importer une image de ton choix. Choisis un décor cohérent avec ton univers.

Ajouter un ennemi : Les sprites Scratch sont généralement orientés vers la droite. Dans notre jeu, les ennemis arriveront de la droite vers la gauche. Il faut donc vérifier leur orientation.

Pour retourner un ennemi :

  1. Va dans l’onglet Costumes de ton ennemi
  2. Clique sur Retourner horizontalement

 

Préparation des variables du jeu

Création des variables

Pour que notre jeu fonctionne correctement, nous allons créer trois variables importantes.

Clique sur “Créer une variable” et ajoute les suivantes :

  • en_jeu : sert à savoir si la partie est en cours ou non
    • quand en_jeu = 1, alors le jeu fonctionne normalement
    • quand en_jeu = 0, alors le jeu s’arrête (game over)
  • score : sert à compter les points du joueur
    • lorsque le joueur atteint l’ennemi avec un tir
  • vie : représente les points de vie du joueur
Ces variables permettent de structurer le jeu : contrôler, compter, gérer la fin.

 

battle_arena_variables_a_creer

Initialisation de départ

Puis, dans le sprite du joueur, on initialise leurs valeurs de départ pour démarrer chaque partie avec :

  • La variable en_jeu à 1 : le jeu démarre
  • La variable vie à 3 : le joueur a 3 vies
  • La variable score à 0 : on repart de zéro
  • Puis aller à x: … y: … : on place le joueur au bon endroit
battle_arena_variables_initialisation

Déplacement du joueur (iPad : suivre le doigt)

Suivre le pointeur

Sur tablette, toucher l’écran correspond à “souris pressée”. On utilise donc le pointeur de souris pour faire suivre le joueur au doigt.

On place le déplacement dans une boucle infinie pour que le suivi soit continu.

Détail du code :

  • si en_jeu = 1 : le joueur ne bouge que pendant la partie
    • si souris pressée ? : détecte le toucher
    • aller à pointeur de souris : suit le doigt

Cela donne un contrôle fluide et intuitif.

Programmer les tirs automatiques

Programmer les tirs

On veut que le joueur tire lorsqu’il maintient le doigt appuyé et se déplace en restant appuyé sur le joueur. On envoie donc un message “tir” à intervalles réguliers.

Détail du code dans le sprite du joueur :

  • envoyer à tous tir : déclenche la création d’une balle
  • attendre 0.25 secondes : évite un tir trop rapide

Ce système permet un tir continu mais contrôlé.

Programmer le projectile (la balle dans l’exemple)

Dans un premier temps, cachons le sprite de la balle quand on démarre le jeu. On ne doit voir une balle que lorsque l’on tire.

Puis l’on va programmer l’action a déterminer lorsque l’on reçoit le message « tir ».

Chaque tir doit créer une nouvelle balle indépendante. On programme donc le comportement des clones et non du sprite original.

Et on termine en codant le comportement de la balle. La balle part du joueur et se dirige vers le doigt. Chaque balle vit sa propre trajectoire.

Détail du code :

  • aller à Joueur : la balle apparaît au niveau du joueur
  • s’orienter vers pointeur de souris : direction du tir
  • avancer de 15 pas : déplacement rapide
  • si touche ennemi : ajouter 1 au score
  • supprimer ce clone : disparaît après impact ou fin de trajectoire

Apparition des ennemis

Spawn automatique :

Les ennemis doivent apparaître régulièrement mais de manière imprévisible. On crée donc des clones à intervalles aléatoires.

Dans le sprite de l’ennemi :

Au démarrage du jeu, on cache le sprite original. Nous ne voulons pas voir l’ennemi de base, mais uniquement ses clones.

Pour créer plusieurs ennemis, on génère des clones à intervalles aléatoires. Cela rend le rythme moins prévisible et le jeu plus dynamique (et un peu plus difficile).

 

Ici, nous programmons le comportement de chaque clone. Chaque ennemi va apparaître en haut de l’écran, puis poursuivre le joueur jusqu’à ce qu’il soit détruit ou que la partie se termine.

Au moment où le clone est créé :

  • On le montre
  • On le place en haut de l’écran, à une position horizontale aléatoire pour varier les apparitions
  • Ensuite, tant que le jeu est en cours :
    • L’ennemi s’oriente vers le joueur.
    • Il avance progressivement vers lui
    • S’il touche le joueur : on enlève 1 point de vie.
    • S’il touche une balle : on ajoute 1 point au score.
    • On supprime le clone.

Chaque clone vit sa propre “vie” : il apparaît, poursuit le joueur, puis disparaît soit parce qu’il a été détruit, soit parce que la partie est terminée.

Gestion du Game Over

Sur le sprite joueur, nous allons gérer la fin de partie. Pour cela, on va ajouter une condition, si l’on n’a plus de vie.

Détail du code :

  • mettre en_jeu à 0 → bloque les déplacements
  • envoyer à tous game over → déclenche l’affichage
  • stop tout → arrête les scripts

Le message permet une fin propre et synchronisée.

Pourquoi utiliser un message ?
 
Si nous utilisions directement dire « GAME OVER » pendant 2 secondes dans la condition, le script resterait bloqué pendant ces 2 secondes avant de continuer.
 
En envoyant un message : le jeu s’arrête immédiatement et l’affichage “GAME OVER” se déclenche en même temps. Les actions se font donc simultanément
 
 
Le message permet de séparer la logique du jeu (arrêter la partie) et l’affichage (montrer le texte), pour un fonctionnement plus propre et plus fluide.

Toujours sur le sprite du joueur, on peut programmer l’action que va déclencher le fait de recevoir le message « game over » 

  • quand je reçois « game over »
  • dire « GAME OVER » pendant 2 secondes
  • Minecraft Education

à venir

Retour en haut