Casse brique game Maker/fr : Différence entre versions

(Mise à jour pour être en accord avec la nouvelle version de la source de la page)
 
(set pageLanguageSource property)
Ligne 1 : Ligne 1 :
 
{{ {{tntn|Tuto Details}}
 
{{ {{tntn|Tuto Details}}
|SourceLanguage=fr
+
|SourceLanguage=none
 
|Language=fr
 
|Language=fr
 
|IsTranslation=1
 
|IsTranslation=1

Version du 19 septembre 2017 à 16:00

Auteur avatarI-lab Toulon | Dernière modification 9/12/2019 par Clementflipo

Casse brique game Maker Final.jpg
création d'un casse brique avec game maker
Difficulté
Facile
Durée
3 heure(s)
Catégories
Jeux & Loisirs
Coût
0 EUR (€)
Autres langues :
Licence : Attribution - Pas d'utilisation commerciale + Partage dans les Mêmes Conditions (CC-BY-NC-SA)

Introduction

Voici un tuto pour coder un casse brique simple à l'aide de Game Maker

Étape 1 - Création des sprites

Tout d'abord il vas vous falloir créer des sprites pour vos éléments de jeux.

Pour ce casse-Brique nous auront besoin de 4 éléments (donc 4 sprites) :

  • les briques
  • la raquette
  • la balle
  • et les bordures du terrain pour éviter que la raquette ou la balle sorte du niveau par les cotés.


Bien penser à centrer l'origine de vos sprites et à appliquer un masque de collision le plus près possible de vos formes originale.

Les sprites sur le coté sont ceux qui ont été créer à la base pours les différents objets, mais vous pouvez en créer d'autre si vous le souhaitez.


Étape 2 - Création des objets : la raquette

Comme pour les sprites, vous allez devoir créer un objet par élément de votre jeu. Nous allons d'abords créer chaque objet (raquette, mur, brique, balle), c'est important de créer chaque objet avant de commencer à les paramétrer en profondeur.

Une fois chaque objet créer nous allons nous intéresser à la raquette.

Tout d'abord dans l'évenement create de votre raquette, initialisez quatre variables :

  • nb_brique à 0
  • ismoving_right à 0
  • ismoving_left à 0
  • ismoving à 0

la première servira à savoir s'il reste des briques sur le terrain et les trois autres seront utiles pour le contrôle des mouvement de la raquette.

sur l'évènement Step, entrez l'algorithme suivant : si nb_brique = 0

{
  alors restart la room;
}

ensuite créer un évènement "collision avec mur", et mettez comme le "bounce" avec les paramètre suivant : appliquer aux autre, précision précise, et rebondir sur tous les objet.

maintenant passons aux mouvement : pour tout ce qui concerne la gauche, créez un évènement left pressed et left released. Dans left pressed, implantez l'algo suivant : si ismoving =0

{
  start moving in a direction (droite, force -7, relative)
  set variable ismoving_left to 1
  set variable ismoving to 1
}

Ce bout de code signifie, que si la raquette ne bouge alors elle commence à se déplacer à gauche lorsque l'on appuie sur la flèche de gauche, il permet aussi d'empécher certain bug si jamais la flêche droite et la flèche gauche sont appuyées en même temps.

Pour left released le code ressemblera à ça : si ismoving_left = 1

{
  start moving in a direction (droite, 7, relative)
  set variable ismoving_left to 0
  set variable ismoving to 0
}

Sachez que le 7 est une valeur arbitraire, vous pouvez la changer à tout moment pour moduler la vitesse de votre raquette. Par contre n'oubliez pas que la vitesse lors du pressage de touche doit être l'opposée de celle lors du release.

Pour faire le déplacement vers la droite il suffit d'inverser la puissance de déplacement et de remplacer tout les ismoving_left, par des ismoving_right.

Et voilà vous n'aurez plus à toucher la raquette.




Étape 3 - Création des objets : briques

Ici nous irons plus vites car les briques sont simple à manipuler.

Tout d'abord, dans l'évènement create de la brique il faut set la variable nb_briques, à 1 relative, appliqué à l'obj_raquette.

Ensuite, pour l'évènement destroy, faire de même mais au lieu de 1 il faut set la variable à -1.

Étape 4 - Création des objets : Bordure du terrain

Il n'y a rien à faire dans cet objet, ce sont les autres objets qui interagissent avec qui font toute les opérations.

Étape 5 - Création des objets : la balle

Cet objet est le plus compliqué à faire mais aussi le plus important de votre jeu.

Tout d'abord, dans l'évènement create, il faut set des les variables ismoving, ismoving_right, ismoving_left, et une variable lancée à 0. Les variables ismoving serviront à manipuler la balle avant de la lancer.

Maintenant pour l'évenement de collision avec la raquette, il faut un bounce avec les paramètre suivants : appliquer à sois, bounce contre tout objet, et rebond précis.

Pour la collision avec une brique il faut un rebond comme pour la raquette, et ensuite détruire l'instance contre laquelle la balle entre en collision.

Pour la collision avec les bordure du terrain c'est plus compliqué.

Si la balle n'est pas lancée alors il faut que le rebond soit appliqué sur la bordure et si la balle est lancée alors il faut l'appliquer à la balle


Si la balle sort des limites de la room, il faut restart la room

Lorsqu'on appuie sur espace, si lancée vaut 0, il faut set la variable lancée à 1 et donner une vitesse verticale à la balle (dans mon jeu j'ai mis la vitesse de la balle à 5)

enfin pour les actions sur les touches fléchée, c'est exactement le même algo que pour la raquette à ceci prés qu'il faut vérifier si la balle est lancée, si lancée = 0 alors la balle peut bouger, sinon elle ne doit pas être influencée par les touches fléchée




Étape 6 - Création de la room

Il ne vous reste plus qu'a créer une room qui vous servira d'espace de jeu, je recommande de mettre une vitesse de 30. Voilà la room que j'ai fait, mais vous êtes libre de faire un niveau comme vous le souhaitez




Étape 7 - Etoffez votre création.

Maintenant que vous avez la base d'un casse brique, il est temps d'ajouter du son, des graphismes moins sommaires, des menus, un systèmes de scores etc... Bref amusez vous à rendre votre petit jeu un peu plus "pro"

Notes et références

Les touches sont gauche droite et espace car cela permet de controller le jeu avec un Makey makey.

Commentaires

Yes