5. Création d'un ennemi dynamique et aménagement de niveau

Note : Cet article est une archive pédagogique du cinquième épisode de ma série sur la création d’un jeu de plateforme avec Construct 2.

Points clés abordés#

  • Amélioration du Level Design : Conseils pour rendre vos niveaux plus visuels et attrayants en modifiant la disposition des éléments de décor.
  • IA d’ennemi basique : * Mise en place d’un ennemi qui se déplace automatiquement de gauche à droite.
    • Utilisation de la logique de retournement automatique pour simuler une patrouille.
  • Organisation du code : * Introduction aux Groupes d’événements : création d’un groupe dédié (AnimJackEnemy) pour isoler la logique de l’ennemi.
    • Activation/Désactivation des groupes au démarrage pour optimiser la lisibilité et la maintenance du projet.
  • Gestion des bugs de collision : Identification et résolution de problèmes liés aux chutes non désirées à travers les plateformes (complémentaire au tutoriel de debug).

Conseils d’organisation pour vos feuilles d’événements#

À mesure que votre projet gagne en complexité, la structure de votre feuille d’événements devient cruciale :

6. Gérer la Vie, Créer un Menu et Optimiser son Jeu

Dans ce sixième épisode de notre série dédiée à Construct 2, nous allons approfondir la gestion des packs de vie, structurer notre jeu avec un menu d’accueil et peaufiner les performances et l’organisation de notre projet.

Résumé des notions clés#

  • Gestion des Packs de Vie (Health Packs)
    • Création du sprite “Elpack” (Health Pack) et ajout d’une variable d’instance pv (points de vie) pour définir la quantité de soin.
    • Ajout d’une variable d’instance MaxV (vie maximale) au joueur pour définir sa capacité de vie maximale.
    • Initialisation de la vie du joueur à MaxV au démarrage du layout pour garantir une vie pleine au début.
    • Implémentation de deux logiques de ramassage pour les packs de vie :
      • Ajout des pv du pack à la vie du joueur si cela ne dépasse pas MaxV.
      • Réinitialisation de la vie du joueur à MaxV si le ramassage du pack le ferait dépasser, évitant ainsi de soigner au-delà du maximum.
  • Création d’un Menu Principal
    • Ajout d’un nouveau layout “Menu” et d’une feuille d’événements dédiée “ES_Menu” pour gérer la logique du menu.
    • Intégration d’un bouton “Jouer” sur le menu qui, une fois cliqué, redirige le joueur vers le “Level 1” (le jeu).
    • Modification de l’événement de mort du joueur pour qu’il revienne au menu principal plutôt que de simplement disparaître.
  • Optimisation et Améliorations du Jeu
    • Nettoyage des balles: Ajout d’un événement pour détruire automatiquement les balles qui sortent du layout, économisant ainsi des ressources.
    • Point de sortie du tir: Création d’un “Image Point” nommé “gun” sur le sprite du joueur, permettant aux balles de partir de l’extrémité de l’arme pour un rendu plus réaliste.
    • Organisation du code: Utilisation de groupes d’événements (“System”, “Marine”, “Balles”) pour structurer et rendre plus lisible la feuille d’événements.
    • Exportation du jeu: Explication du processus d’exportation du projet en “HTML5 Website” et des étapes pour le déployer sur un hébergement web.
  • Devoir Maison
    • Appliquer la logique de “vie maximale” aux munitions : faire en sorte que ramasser un chargeur ne permette pas de dépasser la capacité maximale du chargeur du joueur.

Ce qui reste d’actualité aujourd’hui#

Bien que Construct 2 ait évolué vers Construct 3, les principes fondamentaux abordés dans ce tutoriel restent des piliers du développement de jeux vidéo et sont applicables à la plupart des moteurs de jeu modernes :

6. Gestion des collisions, HUD et interface

Note : Cet article est une archive pédagogique du sixième épisode de ma série sur la création d’un jeu de plateforme avec Construct 2.

Programme de l’épisode#

  • Gestion avancée des collisions : Distinguer l’interaction “saut sur l’ennemi” (destruction) de l’interaction “contact latéral” (perte de vie/redémarrage).
  • Interface (HUD) : Création d’une interface fixe pour afficher la vie (cœurs) et le score.
  • Optimisation UI : Utilisation du comportement Anchor pour maintenir l’interface à l’écran pendant le défilement.
  • Ajout d’objets : Intégration de pièces à collecter.

Logique des collisions (Feuille d’événement)#

Pour gérer la différence entre écraser un ennemi et se faire toucher, on utilise des sous-événements basés sur l’état vertical du joueur :

Correctif: Animation de marche persistante à l'atterrissage

Note : Cet article traite d’un correctif rapide (hors-série) concernant un bug d’animation où le personnage conservait l’animation “marche” après l’atterrissage si la touche de direction était relâchée juste avant le contact avec le sol.

Le Problème#

Lorsqu’un joueur saute et relâche la touche directionnelle (gauche ou droite) avant d’atterrir, l’animation de marche restait bloquée en boucle jusqu’à ce qu’une nouvelle action soit entreprise.

7. Système de vie et gestion des scores

Note : Cet article est une archive pédagogique du septième épisode de ma série sur la création d’un jeu de plateforme avec Construct 2.

Points clés abordés#

  • Variables globales : Utilisation de variables pour suivre l’état du joueur (Score et Vie).
  • Gestion des pièces : * Détection de collision entre le joueur et l’objet Pièce.
    • Destruction de la pièce après contact.
    • Incrémentation de la variable globale Score et mise à jour de l’affichage textuel (HUD).
  • IA d’ennemi et dégâts :
    • Système de “double collision” : saut sur l’ennemi (destruction) vs contact latéral (perte de vie).
    • Soustraction d’une valeur à la variable Vie lors d’un contact non létal.
  • Condition de défaite (Game Over) : Vérification de la valeur de la variable Vie après chaque impact. Si Vie <= 0, déclenchement de l’action Restart Layout.

Logique des variables dans Construct 2#

La gestion des données est au cœur de cet épisode. Voici la structure logique recommandée pour vos événements :

Patch : Mise à jour du système WebStorage

Note : Cet article est une archive corrective visant à mettre à jour la méthode de persistance des données (WebStorage), suite à des changements dans les versions de Construct 2.

Pourquoi ce patch ?#

Dans les versions initiales de Construct 2 (il y a plusieurs années), l’utilisation de l’objet WebStorage était la méthode standard pour conserver des données comme le score ou le nom d’utilisateur entre deux layouts. Ce tutoriel patch explique comment adapter cette logique pour assurer la compatibilité avec les versions plus récentes du moteur.