Tir Parfait - GDevelop

Sur cette page, tu trouveras :

Le concept du jeu

Dans ce jeu, tu dois lancer un oiseau pour faire tomber des cochons.

Tu dois bien viser, car des caisses peuvent bloquer ton tir.
Tu as aussi un nombre limitĆ© d’essais.
oiseau-en-colere-gdvelop-COUV

Jouer sur tƩlƩphone avec le QR code :

  1. Scanne le code avec ton tƩlƩphone.
  2. Clique d’abord sur le bouton plein Ć©cran en bas du jeu.
  3. Puis tourne ton tƩlƩphone en mode paysage.

Jouer sur tƩlƩphone avec le QR code :

  1. Scanne le code avec ton tƩlƩphone.
  2. Clique d’abord sur le bouton plein Ć©cran en bas du jeu.
  3. Puis tourne ton tƩlƩphone en mode paysage.

ThĆØme

Dans cet exemple, le joueur propulse un projectile depuis une catapulte pour atteindre une cible, Ć  la maniĆØre d’Angry Birds.
Tu peux bien sĆ»r reprendre l’idĆ©e d’un oiseau lancé… mais ce n’est qu’un point de dĆ©part.

Tu es libre de personnaliser entiĆØrement l’univers du jeu :

  • remplacer l’oiseau par n’importe quel objet ou personnage,
  • changer l’apparence des projectiles,
  • modifier les dĆ©cors, les ennemis ou les obstacles,
  • inventer ton propre thĆØme (fantasy, espace, nourriture, monstres, etc.).

Le principe du jeu reste le mĆŖme : viser, lancer, dĆ©truire. C’est ensuite Ć  toi de crĆ©er un univers original autour de cette mĆ©canique.

CrƩer les ƩlƩments du jeu

CrƩer le hƩros

On va créer le personnage principal. Ajoute un objet de type Sprite. Tu peux dessiner ton oiseau dans Piskel. 

Tu peux changer la taille pour lui donner un taille plus grande, par exemple : 50px

Ā 

Fais attention Ć  ne pas laisser d’espace vide autour du dessin, sinon les collisions fonctionneront mal.

Renomme cet objet : OISEAUĀ  ou HEROS

Ensuite, ajoute le comportement Physics 2D.

Choisis le type Dynamique pour qu’il puisse bouger.
Choisis une forme cercle pour qu’il roule correctement.

Ā 

Ensuite, ajoute le comportement Camera Fluide.

Ainsi la camĆ©ra va suivre l’oiseau une fois qu’il sera sortit du canon.

Important : Ne place pas l’oiseau dans la scĆØne c’est le code qui le fera venir !

CrƩer le sol

Le sol sert Ć  dĆ©tecter quand le joueur rate son tir et que le l’oiseau touche le sol, alors la scĆØne recommencera.

Ajoute un sprite en forme de rectangle.
Renomme-le : SOL.

Ajoute le comportement Physics 2D, avec le type Fixe et une forme rectangle.

Place-le en bas de la scĆØne. Mais Ć©galement duplique le pour en positionner un Ć  gauche, Ć  droite et en haut, car si on tir trop vers le haut et qu’on ne touche pas le SOL, le HERO ne pourra pas mourir et revenir Ć  son point de dĆ©part.Ā 

Place le tout au tour mais en Ʃtant en dehors de la zone du cadre qui sera visible par le joueur en jeu.

CrƩer le canon

On va maintenant crĆ©er un canon qui s’orientera dans la direction du tir. Il va pivoter sur lui-mĆŖme, donc ne dessine pas son pied : celui-ci restera fixe et sera crƩƩ dans une image sĆ©parĆ©e juste aprĆØs.

Ā 

Le canon n’a besoin d’aucun comportement particulier. Une fois crƩƩ, place-le simplement dans la scĆØne, lĆ©gĆØrement au-dessus du sol.

Test ton jeu pour voir si il est bien placé dans la scène et à une bonne taille.

Important : Fais bien en sorte que ton canon soit orienter vers la droite !

En jeu :

CrƩer le support du canon

On va pouvoir dessiner le pied du canon et le placer sous le canon. C’est totalement optionnel de dessiner le support, Ƨa ne ajoute rien mise Ć  part de la cohĆ©rence visuelle. 

CrƩer les caisses

Les caisses vont servir d’obstacles. Tu peux en dessiner une sur Piskel ou crĆ©er un nouvel objet et vaĀ dans le magasin de ressources . Ce magasin regorge d’assets, son et autres gratuit ou payante.
Ā 

et cherche ā€œboxā€. Et choisis une caisse simple en 2D vue de cĆ“tĆ©. Et clic surĀ ajouter Ć  la scĆØne.

Clique sur l’objet et ouvre le via Piskel.Ā 

Si l’image est mal cadrĆ©e, redimensionne lĆ , il ne faut pas d’espace autour de l’objet.

Ajoute le comportement Physics 2D,avec le type Dynamique Ć  la caisse.

CrƩer les cochons

Les cochons sont les cibles Ć  faire tomber.

Ajoute un sprite et dessine un cochon ou importe une image.
Renomme-le : COCHON.

Ajoute le comportement Physics 2D, avec le type Dynamique et une forme cercle.
Cela permettra au cochon de rouler et de tomber.

Placer les ƩlƩments

Place tous les objets dans ta scĆØne :

  • les caisses,
  • les cochons.

Tu vas crƩer plusieurs niveaux, qui deviendront progressivement plus difficiles.
Pour commencer, fais un niveau simple : il servira aussi de test pour vƩrifier que tout fonctionne bien.

Important : place seulement 3 cochons par niveau, sauf si tu adaptes le code.

Ajouter une barre de puissance du Tir

Cette barre va se remplir plus on charge notre tir, pour pouvoir donner une estimation au joueur de la puissance de l’envoi !

Ensuite, ajoute le comportement Camera Fluide.

Ainsi la camĆ©ra va se reposition au niveau de la barre de puissance si l’oiseau n’est pas en jeu.Ā 

En fonction de son positionnement dans la scĆØne change la position en Xet/ou Y. Test en lanƧant ton jeu et en ajustant la camĆ©ra pour qu’on voit bien au moins le canon et le sol.

Ajouter un dƩcor

Pense aussi Ć  ajouter un arriĆØre-plan pour donner une vraie ambiance Ć  ton jeu.
Tu peux :

  • utiliser une image trouvĆ©e sur internet,
  • dessiner ton propre dĆ©cor sur Piskel,
  • ou aller chercher une image dans le Magasin de ressources de GDevelop.

Ā 

Dans le Magasin de ressources, tu peux simplement taper ā€œbackgroundā€ dans la barre de recherche pour trouver rapidement un dĆ©cor Ć  ajouter.

Pour placer un Ć©lĆ©ment devant ou derriĆØre un autre, clic droit sur l’objet :

  • Mettre au premier plan
  • Mettre Ć  l’arriĆØre-plan

Au choix :

  • Plus facile et Rapide : Tu peux maintenant utiliser l’image directement comme un sprite, mais le rendu risque de ne pas ĆŖtre trĆØs joli. Si cela te suffit, c’est trĆØs bien !
  • Plus long et plus complexe :Ā Sinon, tu peux suivre les Ć©tapes suivantes pour obtenir un meilleur rĆ©sultat, mais c’est un peu plus long et compliquĆ©.

Le mieux est de crĆ©er un nouvel objet de type MosaĆÆque. Donne-lui une taille un peu plus petite que l’image originale (par exemple passer de 1024 Ć  1220).

Ensuite :

  • Clique sur Ajouter une image
  • Choisis Depuis les ressources du projet
  • SĆ©lectionne ton image

Ouvre ensuite Piskel :

  • Prends l’outil Pipette
  • Clique dans le ciel, tout en haut de l’image
  • RĆ©cupĆØre le code de la couleur, car on en aura besoin aprĆØs

Applique ensuite la mosaïque et étire-la pour remplir la scène.

Fais un clic droit dessus puis Mettre en arriĆØre-plan.

oiseau-en-colere-gdvelop-DECOR4

Enfin, va dans la couleur d’arriĆØre-plan de la scĆØne et colle le code couleur rĆ©cupĆ©rĆ© avec la pipette.

oiseau-en-colere-gdvelop-DECOR5

Tir du canon et lancement de l’oiseau

CrƩer les variables qui vont servir au tir

Avant de pouvoir tirer, on doit crƩer deux variables.
Ces variables vont permettre au jeu de savoir :

  • si le joueur peut encore jouer
  • Ć  quelle puissance le projectile doit ĆŖtre lancĆ©

Sans ces variables, le canon ne saurait ni quand tirer, ni avec quelle force.

Ā 

La premiĆØre variable s’appelle ESSAIS.

Elle sert Ć  compter combien de tirs il reste au joueur. À chaque fois que le joueur tire et rate, on enlĆØve 1.Ā Quand cette variable arrive Ć  0, le joueur ne peut plus tirer.Ā C’est ce qui permet de limiter le nombre de tentatives.

La deuxiĆØme variable s’appelle VELOCITY.

Elle sert à stocker la puissance du tir. Quand le joueur garde le doigt appuyé, cette variable monte petit à petit. Quand il relâche, cette valeur est utilisée pour lancer le projectile. Plus VELOCITY est grande, plus le projectile part loin.

Faire tourner le canon

Ā 

Maintenant qu’on a les variables, on peut commencer Ć  coder le systĆØme de tir.

La première partie du code sert à viser. Quand le joueur garde le doigt appuyé, le canon se tourne vers la souris (ou le doigt). Cela permet de choisir la direction du tir.

En même temps, la variable VELOCITY augmente petit à petit. Cela simule une charge de puissance. Plus le joueur garde appuyé longtemps, plus le tir sera fort.

Comme condition, choisis :Ā ESSAIS > 0

PremiĆØre action :Ā 

  • Cannon > Tourner vers une position (vers le curseur de la souris) ) une vitesse de 0.

DeuxiĆØme action :Ā 

Ā 

  • Barre de Progression > Valeur > dĆ©finir Ć  la variable « VELOCITYĀ Ā» diviser par 10. Car en rĆ©alitĆ© la valeur de vĆ©locity tournera en moyenne entre 50 et 150. Et vu que la barre ne comprend les valeur qu’entre 0 et 100. On divise la valeur Ć  donner Ć  la barre.
oiseau-en-colere-gdvelop-demo8

Charger le tir

Cette condition vĆ©rifie si le joueur garde le doigt appuyĆ©. Tant qu’il appuie, le jeu comprend qu’il est en train de charger son tir.

Ā 

Le projectile ne part pas encore : on prƩpare seulement la puissance.

Créer un nouvel évènement : 

Autres Conditions > Bouton de souris appuyƩ ou pression tactile > Gauche.

Cette action augmente la puissance du tir.

Tant que le joueur garde le doigt appuyƩ, la variable VELOCITY monte.

Plus elle monte, plus le projectile partira loin quand il sera lancƩ.

oiseau-en-colere-gdvelop-cgargertir

Le Tir !

Quand le joueur relâche le doigt, le projectile est créé au bout du canon puis lancé dans la direction visée.

Le jeu utilise la valeur de VELOCITY pour choisir la force du tir. Plus la puissance était chargée, plus le projectile part loin.Une fois le tir lancé, VELOCITY revient à 0 pour préparer le prochain tir.

Créer un nouvel évènement : 

Autres Conditions > Bouton de souris relâché > Gauche.

Ā 

Et on rajouter une autre condition sous la premiĆØre, car on ne veut pas que le canon lance plusieurs oiseau Ć  la fois.Ā 

Ā 
Autres Conditions > AvancĆ© > Flux de contrĆ“le et d’Ć©vĆØnementsĀ  >Ā DĆ©clencher une seule fois tant que les conditions sont vraies.

On va crĆ©er l’action de l’arriver de l’oiseau au dĆ©clenchement du tir, au centre du canon. PremiĆØre Action :Ā 

  • OISEAU > CrĆ©er un objet > canon.CenterX() / canon.CenterY()

On va crĆ©er une deuxiĆØme Action.Ā On va donner une force Ć  l’oiseau pour pouvoir l’éjecter. Cette force dĆ©pendra de la charge accumulĆ©e pendant le temps où le joueur reste appuyĆ©, stockĆ©e dans notre variable Velocity.

La direction du tir dĆ©pend de la position du curseur de la souris (ou du doigt sur tĆ©lĆ©phone). Le point d’application de la force doit ĆŖtre placĆ© au centre de l’oiseau lui-mĆŖme (Le point d’applicationĀ correspond Ć  l’endroit exact où la force est appliquĆ©e sur l’objet).

Ā 

Puis on remet la variable VELOCITY à zéro pour pouvoir charger correctement un prochain tir. 

oiseau-en-colere-gdvelop-tir!!

GƩrer les essais

Dans cette partie, on va ajouter les rĆØgles qui permettent au jeu de savoir si le joueur rĆ©ussit ou rate son tir.Ā Cette Ć©tape est importante, car elle permet de donner une vraie rĆØgle au jeu :Ā le joueur ne peut pas tirer Ć  l’infini, il doit rĆ©ussir avec un nombre limitĆ© d’essais.

Le but est simple : si l’oiseau touche le sol ou une caisse, le tir est considĆ©rĆ© comme ratĆ©.
Dans ce cas, on enlĆØve un essai au joueur.Ā 

Si l’oiseau touche le sol

Ā Condition :
  • OISEAU est en collision avec SOL

Actions :

  • supprimer OISEAU
  • enlever 1 Ć  ESSAIS

Ƈa veut dire : si l’oiseau tombe au sol, le tir est ratĆ©.

Si l’oiseau touche une caisse

Ā Condition :
  • OISEAU est en collision avec CAISSE

Actions :

  • supprimer OISEAU
  • enlever 1 Ć  ESSAIS

Ƈa veut dire : si l’oiseau tombe au sol, le tir est ratĆ©.

RƩinitialiser la variable ESSAIS

Condition :
  • Au lancement de la scĆØne

Actions :

  • mettre ESSAIS Ć  10 (tu peux mettre la valeur que tu souhaites Ć©videmment)

Ā 

Ƈa sert Ć  remettre le compteur au dĆ©but du niveau.

Afficher les infos Ć  l’écran

Maintenant que la variable ESSAIS existe, on va l’afficher directement dans le jeu.Ā Le but est simple : permettre au joueur de voir combien de tirs il lui reste pendant la partie.Ā Pour cela, on va demander au jeu de mettre Ć  jour le texte en permanence avec la valeur de la variable.

Mais avant de coder l’affichage, il faut ajouter 1 objetĀ Texte dans la scĆØne.

Il servira Ć  afficher le nombre d’essais restants.

Ajoute donc 1 objet de type Texte, puis renomme-les clairement, par exemple :

  • Text_NOMBRE_ESSAIS

Tu peux ensuite modifier leur taille, leur police ou leur couleur dans les options pour qu’ils soient bien lisibles Ć  l’écran.

Place-le ensuite dans la scĆØne, en haut de l’écran par exemple, pour que le joueur puisse toujours voir ces informations pendant qu’il joue.

On va pouvoir coder le changement de texte Ć  l’Ć©cran. Pour Ƨa crĆ©er un nouvel Ć©vĆØnement.Ā 

On vĆ©rifie ici la valeur de la variable ESSAIS.Ā Cela permet au jeu de savoir combien d’essais il reste au joueur.Ā Tant que cette valeur est supĆ©rieure ou Ć©gale Ć  0, le jeu peut continuer Ć  afficher le compteur correctement.

Ā 

Le jeu remplace le contenu du texte par :

Nombre d’essais : suivi de la valeur actuelle de ESSAIS.

Cela permet au joueur de voir le compteur se mettre à jour en direct après chaque tir raté.

Condition :

  • La variable « ESSAISĀ Ā» est supĆ©rieure ou Ć©gale 0

Actions :Ā 

  • Text_Nombre_essais > Text >dĆ©finir Ć  : « Nombre d’essais : Ā Ā» + ESSAIS
oiseau-en-colere-gdvelop-texte

Game Over

CrƩer un Ʃcran de dƩfaite

Maintenant que le joueur a un nombre limitĆ© d’essais, on va ajouter une condition de dĆ©faite.

Le but est simple : si le joueur n’a plus d’essais, la partie s’arrĆŖte et il est envoyĆ© vers un Ć©cran de fin.

Avant de coder, il faut créer une nouvelle scène.

Cette scĆØne servira d’écran de fin quand le joueur perd.

Pour la créer, va dans la liste des scènes de ton projet.

Ā 

  • Tu peux en profiter pour renommer ta scĆØne de jeu en « Niveau 1″
  • Puis clique sur le bouton pour ajouter une nouvelle scĆØne.
  • Renomme cette scĆØne : « PERDUĀ Ā»

Ā 

Tu peux ensuite y ajouter un fond, un texte comme ā€œPerduā€ ou et un bouton pour rejouer.

oiseau-en-colere-gdvelop-scene

CrƩer un bouton

Rajoute l’objet bouton et place le dans la scĆØne Perdu.

Change le non dans la partieĀ LabelĀ que tu veux voir apparaitre Ć  l’Ć©cran.

Ā 

Coder la dƩfaite et le retour au jeu

Dans la scĆØne niveau 1 :

Dans cette scène, on va vérifier si le joueur a encore des essais.

Le but est simple : dĆØs que le joueur n’a plus d’essais, la partie s’arrĆŖte.

Il faut donc crƩer un ƩvƩnement qui :

  • vĆ©rifie si ESSAIS < 0
  • change de scĆØne
  • envoie le joueur vers la scĆØne PERDU

Cela permet de dƩtecter la dƩfaite automatiquement.

Dans la scĆØne PERDU :

Dans cette scĆØne, on va permettre au joueur de recommencer.

Ajoute un bouton dans la scĆØne PERDU.
Ce bouton servira Ć  relancer la partie.

Ensuite, dans la feuille d’évĆ©nements de PERDU, crĆ©e un Ć©vĆ©nement qui :

  • dĆ©tecte le clic sur le bouton
  • change de scĆØne
  • renvoie vers niveau 1

Cela permet au joueur de rejouer aprĆØs avoir perdu.

Faire gagner des points avec les cochons

On va maintenant faire en sorte que les cochons rapportent des points quand ils tombent au sol.

Ajouter un texte pour le score

Commence par crƩer un nouvel objet Texte.

Ce texte servira Ơ afficher le nombre de cochons tombƩs.

Renomme-le par exemple :Ā Text_OBJETS_TOMBES

Place-le dans la scĆØne, Ć  un endroit visible pour le joueur.

CrƩer une variable

Va dans les variables globales et crƩe une nouvelle variable.

  • Nom de la variable :Ā OBJETS
  • Valeur de dĆ©part :Ā 0

Cette variable va compter le nombre de cochons tombƩs au sol.

Ajouter des points quand un cochon touche le sol

Dans la feuille d’évĆ©nements du niveau 1, crĆ©e un nouvel Ć©vĆ©nement.

Condition :

  • COCHON est en collision avec SOL

Actions :

  • supprimer COCHON
  • ajouter 1 Ć  la variable OBJETS

Cela veut dire : quand un cochon tombe au sol, il disparaƮt et le score augmente.

Afficher le nombre de cochons tombƩs

Ajoute ou complĆØte l’évĆ©nement qui met Ć  jour les textes Ć  l’écran.

Action :

  • Changer le texte de Text_OBJETS_TOMBES en : « Cochons tombĆ©s : Ā Ā» + OBJETS

Comme Ƨa, le joueur voit le nombre de cochons tombƩs pendant la partie.

Remettre le compteur Ơ zƩro au dƩbut

Dans l’évĆ©nement Au lancement de la scĆØne, ajoute :

  • dĆ©finir OBJETS Ć  0

Ā 

Cela permet de recommencer proprement si la scène est relancée.

CrƩer le niveau 2

Pour passer au niveau suivant, crée une nouvelle scène.

Le plus simple est de dupliquer le niveau 1 :

  • Va dans la liste des scĆØnes
  • Clique sur les trois petits points du niveau 1
  • Clique sur Dupliquer
  • Renomme la nouvelle scĆØne : niveau 2

Tu peux ensuite modifier les obstacles, les caisses ou les cochons pour crƩer un nouveau niveau.

Dans la feuille d’évĆ©nements du niveau 1, crĆ©e un nouvel Ć©vĆ©nement.

Condition :

  • OBJETS = 3

Action :

  • Aller Ć  la scĆØne niveau 2

Cela veut dire : quand 3 cochons sont tombƩs au sol, le joueur passe automatiquement au niveau suivant.

Et voilĆ  Bravo !!! Il ne teste plus qu’Ć  rĆ©er des niveau supplĆ©mentairesĀ  diffĆ©rents et de plus en plus dur !Ā 

Bonus : CrƩer un menu de sƩlection des niveaux

Créer une scène menu

En bonus, on peut crĆ©er unĀ menu d’accueilĀ avec un bouton pour chaque niveau.

Ce menu permet au joueur de choisir directement le niveau qu’il veut essayer.
Ā 

Crée une nouvelle scène et renomme-la : MENU

Dans cette scĆØne, ajoute :

  • un titre
oiseau-en-colere-gdvelop-BONUS1

Ajouter un titre avec Textcraft

Pour donner une identitƩ Ơ ton jeu, tu peux crƩer un titre stylisƩ.
Pour ça, tu peux utiliser : https://textcraft.net/

Tu vas simplement :

  • Ć©crire le nom de ton jeu
  • choisir un style (pixel, contour, ombre…)
  • Clic surĀ CREATE
  • tĆ©lĆ©charger l’image en cliquant surĀ DOWNLOAD
  • l’importer dans GDevelop comme un sprite

Ensuite, tu places ce titre en haut de ton Ʃcran.

oiseau-en-colere-gdvelop-BONUS0

Ajouter les boutons des niveaux

Rajoute l’objet bouton et place le dans la scĆØne Perdu.

Change le non dans la partie Label que tu veux voir apparaitre Ć  l’Ć©cran.

Duplique le bouton depuis les objets de scĆØne, en cliquant sur les 3 petits points.Ā 

Change le label de chaque bouton et place les dans la scĆØne.

oiseau-en-colere-gdvelop-BONUS6

Fais en sorte que ton jeu s’ouvre sur la scĆØne Menu. En cliquant sur les 3 petits points de la scĆØne Menu et cliquer sur « DĆ©finir comme scĆØne de dĆ©partĀ Ā»

oiseau-en-colere-gdvelop-menu

Coder les boutons du menu

Dans la feuille d’évĆ©nements duĀ MENU, ajoute :

Si le joueur clique sur Bouton_Niveau_1

→ aller Ć  la scĆØne niveau 1

Si le joueur clique sur Bouton_Niveau_2
→ aller Ć  la scĆØne niveau 2

oiseau-en-colere-gdvelop-BONUS8

Revenir au menu après une défaite

Dans le code de la scĆØne PERDU, modifie le code pour
Condition :Ā 
  • Si bouton est cliquĆ©
Action :Ā 
  • → aller Ć  la scĆØne MENU
oiseau-en-colere-gdvelop-BONUS7

Bonus : Créer un Scène Victoire

On peut aussi créer une scène VICTOIRE pour afficher un écran de fin quand le joueur termine le jeu.

Le principe est le mĆŖme que pour l’écran de dĆ©faite.

Il suffit de crĆ©er une nouvelle scĆØne, de la renommer VICTOIRE, puis d’y ajouter un fond, un texte comme ā€œBravo !ā€ ou ā€œTu as terminĆ© le jeu !ā€, ainsi qu’un bouton pour revenir au menu.

Ensuite, dans la feuille d’évĆ©nements du dernier niveau (par exemple niveau 3), il suffit d’ajouter une condition :

si OBJETS = 3
→ aller Ć  la scĆØne VICTOIRE

Cela permet de terminer le jeu proprement aprĆØs le dernier niveau.

oiseau-en-colere-gdvelop-BONUS9
oiseau-en-colere-gdvelop-BONUS7

Bravo ! Ton jeu est terminƩ ! Mais tu peux encore rajouter des niveaux supplƩmentaires !!

Retour en haut