INTRODUCTION
Attention, ce tutoriel n'est pas un guide type "comment faire, pas par pas", qui vous fera faire le même clone une fois le tutoriel finit.
C'est plutôt un guide qui vous expliquera comment et pourquoi j'ai fait ce que j'ai fait.
Je vais identifier les différentes parties du code, mais nous allons travailler ensemble.
Ce que j'ai fait pour ce tutoriel, c'est fabriquer un jeu complet avec un système de niveaux croissant (avec un font d'écran qui change), un système de score local (utilisant un tableau avec une mémoire des scores) ainsi que l'affichage de ceux-ci, l'utilisation de trois différents layouts (zones de travail), avec un premier qui charge l'écran d'accueil, intègre la musique de font et la musique du jeu (ou non), une façon facile d'arrêter / reprendre le jeu et avoir toutes les choses faites dans l'édition gratuite, soit moins de 100 événements et pas plus de 4 layers (calques) par layout.
Il restera de la place dans le projet pour ajouter des événements.
Pour ce tutoriel, j'ai utilisé des textures, musiques et sons du pack gratuit de Scirra' que vous pouvez trouver ici.
Vous pouvez trouver le projet final dans l'Arcade et télécharger le capx là-bas (dans la page d'arcade du jeu).
J'espère répondre à certains points que les débutants posent souvent sur les forums avec ce tutoriel. De toute façon, vous devez impérativement lire et pratiquer le guide du débutant pour Construct 2 avant de lire ce tutoriel. Cela va vous montrer les bases de C2 (ajouter des sprites/plugins, actions, conditions, événements/sous-événements d'un projet, importer une image/animation, ...) Vous devez être à l'aise avec cela.
Je vais essayer d'être logique et d'y aller pas par pas, mais cela ne va pas être guidé comme une signalétique de comment faire chaque événement/action/condition avec l'éditeur.
Sinon, il y aura pas mal de lien vers des manuels, ou d'autres ressources et tutoriels. Si vous êtes un débutant, prenez le temps de consulter et de bien comprendre les documents. Cela prend du temps, mais est nécessaire.
Comme chaque apprentissage, apprendre à faire un jeu prend du temps. Heureusement, il y a toute cette documentation sur le site web qui n'attend que vous pour être lu (et traduit pour les bilingues :p).
Dans tous les cas, c'est énormément d’informations/nouvelles connaissances/nouvelles choses à penser, alors n'hésitez pas à faire une pause, et revenir les jours qui suivent, voir lire et pratiquer à plusieurs reprises.
Le plus important dans un jeu, c'est la réflexion, le temps que vous pensez pour réaliser le jeu dans votre tête puis sur un papier avant de vraiment vous mettre à coder le jeu.
C'est une partie du processus, plus vous pensez aux choses à intégrer dans votre code avec de le commencer, plus facile sera la programmation du jeu.
Voici une liste des points que je veux dans le jeu :
Asteroid clone - Mécaniques de base
..° Le vaisseau doit voler comme dans le jeu original (avec une gravité 0 comme type de physique, le vaisseau tourne sur lui même, je peux aller en avant, freiner, l'élan est présent, wrap (partir d'un côté de l'écran pour apparaître de l'autre côté), et, bien sûr, tirer sur les astéroïdes), contrôlé par le joueur.
..° Les astéroïdes bougent comme des rocks dans une trajectoire droite, apparaissent sur les côtés de l'écran comme le vaisseau du joueur, chaque astéroïde détruit par une balle se sépare en deux plus petits astéroïdes, ou si c'est le plus "petit" astéroïde, il est détruit. Séparer un astéroïde en deux donne 1 point, détruire un astéroïde donne 10 points.
..° Si le vaisseau rentre en collision avec un astéroïde, il perd un point de vie jusqu'à 0 qui est le game over. L’astéroïde est juste détruit sans ajout au score.
Le système de pause
..° Le joueur presse "P" en jeu et tout s'arrête jusqu'à ce qu'il presse "P" pour reprendre le jeu.
..° La "pause" doit se faire pendant le jeu, et non pendant deux niveaux (où "entrée" est attendu).
Le système de niveaux
..° Chaque niveau fait apparaître un nombre limité d’astéroïdes.
..° Dès que tous les astéroïdes ont été détruits, le niveau est fini. Nous attendons une entrée (appuyer "entrée") du joueur et nous commençons le niveau suivant.
..° L'image de font d'écran change à chaque niveau.
Le système de score
..° Un tableau contient les 8 meilleurs scores
..° Un layout affiche les 8 meilleurs scores
..° A game-over, le joueur enregistre son score et ce dernier et comparé aux scores du tableau. Si le score est meilleur que l'un des scores enregistrés, le nouveau score est mis dans le tableau et l'ancien score descend d'un cran dans le tableau.
..° Les scores sont sauvés localement (sur un webstorage) comme ça, un joueur pourra essayer de battre les scores sur une autre session.
Audio
..° L'utilisateur peut choisir s'il veut du son ou non.
..° La musique de fond change chaque niveau.
..° Il y a des sons en fonction d'actions (astéroïdes frappés, astéroïdes détruits, astéroïdes en collision avec le vaisseau, fin de niveau, vaisseau en mouvement, le joueur presse "entrée" dans le menu)
Barre de vie
..° La barre de vie représente le nombre de la variable d'instance "vie" du vaisseau
Plusieurs décisions graphiques - J'ai choisi de ne pas mettre de son quand le vaisseau tire pour plusieurs raisons. Le plus souvent, je trouve cela désagréable. La plupart du temps dans le jeu, vous tirez. La répétition d'un son peut être vraiment très désagréable et ce n'est pas le meilleur retour que j'attend.
De plus, entendre un son quand la balle touche un astéroïde ou le détruit (c'est à dire quand le joueur augmente son score) est un meilleur retour.
L'important n'est pas de tirer, mais de toucher les astéroïdes.
Une autre décision que j'ai du faire est d'utiliser uniquement le clavier.
Bien sûr, aujourd'hui nous avons la souris, mais toutes mes mécaniques de bases sont joués avec le clavier. C'est pourquoi vous pressez la touche entrée entre deux niveaux et non cliquer sur un quelconque sprite.
C'est pourquoi le choix d'avoir le son éteind ou allumé se fait avec un raccourci clavier.
C'est mieu pour le confort du joueur, il n'a pas besoin de basculer sa main du clavier verss la souris soudainement.
Ces décisions ont été prisent durant le développement, non avant. C'est en testant et peaufinant que vous commencez à faire ce genre de décision, mais il est important de savoir pourquoi vous les faites.
Je les ai mis ici pour que vous soyez dans le même état d'esprit. Pour que vous vous focalisiez sur ces petits détails et ces raisons qui font que j'y ai mis de l'importance.
Et après ce discours de motivation sur l'attention à avoir sur le temps de réflexion sur votre jeu, et cette liste de choses à faire, je vais concentrer votre attention sur une des plus fabuleuses caractéristiques de C2 : l'expérimentation rapide et le prototypage.
Il n'y a aucun risque à essayer C2, la pire chose qui puisse vous arrivez, c'est quand vous testez votre jeu et qu'il ne ressemble pas à ce que vous attendiez.
Cela peut être frustrant mais la récompense que vous obtenez quand finalement, vous comprenez pourquoi cela ne marche pas de sorte que le jeu fonction, cela n'a pas de prix.
Une somme de nouvelles connaissances, une meilleures compréhension du travail innérant à C2, de programmation, de réalisation de l'esprit sur la machine, de travail, peut-être même un jeu fun, vous attends.
Alors n'hésitez pas à faire de nouveaux projets, expérimenter, essayer de nouveaux plugins, essayez, jouez.
C'est ce qui conduit souvent à des premiers prototypes. Un prototype est la première représentation jouable de votre jeu.
Avoir un prototype fonctionnel et drôle n'est pas l'accomplissement d'un jeu. C'est juste avoir quelque chose qui montre aux autres votre idée du jeu pour avoir des retours critiques dessus.
Néanmoins, c'est déjà une source inestimable de contentement. Avec C2, cela vous permet de construire rapidement un jeu au point de le terminer/polir comme si c'était un jeu complet.
Note: Pendant tout le tutoriel, pour avoir une meilleure vue des images, vous pouvez faire un clic droit dessus puis "affichez l'image".