2.18 JEU - Clone de Breakout

Ici, nous utilisons le potentiomètre pour jouer à un jeu clone de Breakout.

Après avoir cliqué sur le drapeau vert, vous devez utiliser le potentiomètre pour contrôler la raquette sur la scène pour attraper la balle afin qu’elle puisse monter et frapper les briques, toutes les briques disparaissent alors le jeu est gagné, si vous ne rattrapez pas la balle, le jeu est perdu.

../_images/17_brick.png

Composants requis

Pour ce projet, nous aurons besoin des composants suivants.

Il est certainement pratique d’acheter un kit complet, voici le lien :

Nom

ÉLÉMENTS DE CE KIT

LIEN

3 in 1 Starter Kit

380+

3 in 1 Starter Kit

Vous pouvez également les acheter séparément via les liens ci-dessous.

INTRODUCTION DES COMPOSANTS

LIEN D’ACHAT

Carte SunFounder R3

BUY

Plaque d’essai

BUY

Fils de Cavalier

BUY

Potentiomètre

BUY

Construisez le Circuit

Le potentiomètre est un élément résistif à 3 bornes, les 2 broches latérales sont connectées à 5V et GND, et la broche centrale est connectée à A0. Après la conversion par le convertisseur ADC de la carte Arduino, la plage de valeurs est de 0-1023.

../_images/potentiometer_circuit.png

Programmation

Il y a 3 sprites sur la scène.

1. Sprite Raquette

L’effet à atteindre par la Paddle est que la position initiale est au milieu du bas de la scène, et elle est contrôlée par un potentiomètre pour se déplacer vers la gauche ou vers la droite.

  • Supprimez le sprite par défaut, utilisez le bouton Choose a Sprite pour ajouter le sprite Paddle, et réglez ses x et y à (0, -140).

../_images/17_padd1.png
  • Allez à la page Costumes, retirez le Contour et changez sa couleur en gris foncé.

../_images/17_padd3.png
  • Scriptez maintenant le sprite Paddle pour définir sa position initiale à (0, -140) lorsque le drapeau vert est cliqué, et lisez la valeur de A0 (potentiomètre) dans la variable a0. Comme le sprite Paddle se déplace de gauche à droite sur la scène aux coordonnées x -195~195, vous devez utiliser le bloc [map] pour mapper la plage de la variable a0 de 0~1023 à -195~195.

../_images/17_padd2.png
  • Maintenant, vous pouvez tourner le potentiomètre pour voir si la Paddle peut se déplacer à gauche et à droite sur la scène.

2. Sprite Balle

L’effet du sprite balle est qu’il se déplace autour de la scène et rebondit lorsqu’il touche le bord ; il rebondit vers le bas s’il touche le bloc au-dessus de la scène ; il rebondit vers le haut s’il touche le sprite Raquette pendant sa chute ; si ce n’est pas le cas, le script cesse de fonctionner et le jeu se termine.

  • Ajoutez le sprite Ball.

../_images/17_ball1.png
  • Lorsque le drapeau vert est cliqué, réglez l’angle du sprite Ball à 45° et positionnez-le initialement à (0, -120).

../_images/17_ball2.png
  • Laissez maintenant le sprite Ball se déplacer autour de la scène et rebondir lorsqu’il touche le bord, et vous pouvez cliquer sur le drapeau vert pour voir l’effet.

../_images/17_ball3.png
  • Lorsque le sprite Ball touche le sprite Paddle, faites un rebond. La façon simple de faire cela est de laisser l’angle être directement inversé, mais alors vous trouverez que la trajectoire de la balle est complètement fixe, ce qui est trop ennuyeux. Par conséquent, nous utilisons le centre des deux sprites pour calculer et faire rebondir la balle dans la direction opposée au centre de la raquette.

../_images/17_ball4.png ../_images/17_ball6.png
  • Lorsque le sprite Ball tombe au bord de la scène, le script cesse de fonctionner et le jeu se termine.

../_images/17_ball5.png

3. Sprite Bloc1

Le sprite Block1 doit apparaître avec l’effet de clonage 4x8 de lui-même au-dessus de la scène dans une couleur aléatoire, et supprimer un clone s’il est touché par le sprite Ball.

Le sprite Block1 n’est pas disponible dans la bibliothèque PictoBlox, vous devez le dessiner vous-même ou le modifier à partir d’un sprite existant. Ici, nous allons le modifier avec le sprite Button3.

  • Après avoir ajouté le sprite Button3, allez à la page Costumes. Maintenant, supprimez d’abord button-a, puis réduisez à la fois la largeur et la hauteur de button-b, et changez le nom du sprite en Block1, comme indiqué dans l’image suivante.

Note

  • Pour la largeur de Block1, vous pouvez probablement la simuler sur l’écran pour voir si vous pouvez en mettre 8 de suite, sinon, réduisez la largeur de manière appropriée.

  • Lors du rétrécissement du sprite Block1, vous devez garder le point central au milieu du sprite.

../_images/17_bri2.png
  • Créez maintenant 2 variables en premier, block pour stocker le nombre de blocs et roll pour stocker le nombre de rangées.

../_images/17_bri3.png
  • Nous devons faire un clone du sprite Block1, pour qu’il s’affiche de gauche à droite, de haut en bas, un par un, au total 4x8, avec des couleurs aléatoires.

../_images/17_bri4.png
  • Après avoir écrit le script, cliquez sur le drapeau vert et regardez l’affichage sur la scène, si c’est trop compact ou trop petit, vous pouvez changer la taille.

../_images/17_bri5.png
  • Écrivez maintenant l’événement déclencheur. Si le sprite cloné Block1 touche le sprite Balle, supprimez le clone et diffusez le message crush.

../_images/17_bri6.png
  • Retour au sprite Ball, lorsque la diffusion crush est reçue (le sprite Ball touche le clone du sprite Block1), la Ball est éjectée de la direction opposée.

../_images/17_ball7.png