Introduction au développement de jeux Javascript | Chris Dixon | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Introduction au développement de jeux Javascript

teacher avatar Chris Dixon, Web Developer & Online Teacher

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      1 Introduction

      2:12

    • 2.

      Partagez votre travail sur Skillshare !

      1:09

    • 3.

      La mise en place de la toile HTML

      6:37

    • 4.

      Grilles et Co-Ordinates

      1:27

    • 5.

      Dessiner sur la toile

      10:48

    • 6.

      Texte, lignes et parcours

      8:32

    • 7.

      La boucle

      8:21

    • 8.

      Déplacer des objets avec le clavier

      5:32

    • 9.

      La détection des collisions et des rebondissements

      10:24

    • 10.

      Paddle Contact

      9:05

    • 11.

      Les résultats de suivi

      3:33

    • 12.

      Mettre fin au jeu

      7:38

    • 13.

      Démarrer et redémarrer le jeu

      8:41

    • 14.

      Direction aléatoire

      6:17

    • 15.

      Mouvement par ordinateur

      3:54

    • 16.

      Rebondissement aléatoire

      6:26

    • 17.

      La tenue de la palette sur la toile

      2:52

    • 18.

      Réflexions finales

      0:31

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

384

apprenants

4

projets

À propos de ce cours

Une fiche de référence gratuite pour le téléchargement :

https://github.com/chrisdixon161/HTML5-Canvas-Quick-Reference

Les étapes du projet pour comparer :

https://github.com/chrisdixon161/Introduction-To-Javascript-Game-Development-Course-Part-1

Si vous vous êtes déjà demandé comment développer des jeux en 2D simples qui fonctionnent dans votre navigateur, ce cours sera exactement ce que vous cherchez !


Comme Javascript est intégré à tous les principaux navigateurs, il est parfait pour la conception de jeux basés sur un navigateur et pendant ce cours, nous allons développer un jeu en pong simple pour apprendre ce que vous devez savoir.

En commençant par la toile HTML5. Cet élément est utilisé pour le dessin à l'intérieur du navigateur, y compris les images, formes, textes et animations. Ce qui est parfait pour les jeux 2D. Si vous n'avez pas déjà utilisé, nous examinons tout ce que vous devez savoir pour dessiner, y compris le fonctionnement du réseau.

En plus de cela, nous examinons également :

  • Texte, lignes et parcours
  • Coordonnées
  • Les calculs de mathématiques
  • La boucle
  • Déplacer des objets avec le clavier
  • Détection des collisions et rebondissements sur les murs et les pagaies
  • La tenue de la route.
  • Démarrer et finir le jeu
  • Ajouter un hasard au rebond pour rendre le jeu moins prévisible.
  • Mouvement informatique
  • La limitation du mouvement sur la toile

Tous ces jeux sont combinés dans un jeu en 2D qui couvre tous les éléments essentiels dont vous avez besoin pour développer plus de jeux par votre propre jeu.

Le cours est conçu pour les débutants et j'essaie de tout expliquer au fur et à mesure. Cependant, une petite expérience Javascript vous aidera à vous aider à comprendre votre expérience et à vous aider. J'ai également des cours sur ce sujet si nécessaire.

Au plaisir de vous voir dans la première leçon !

Rencontrez votre enseignant·e

Teacher Profile Image

Chris Dixon

Web Developer & Online Teacher

Enseignant·e

Hello, My name is Chris and I am a Web Developer from the UK. I am an experienced trainer leading web development bootcamps and also teaching online courses.

My main areas of interest are Vue.js, Nuxt.js, Shopify, JavaScript, eCommerce, and business. I am passionate about what I do and about teaching others.

Whatever your reason for learning to build websites you have made an excellent career choice.

My personal motivation was to become my own boss and have more freedom and flexibility in my life. I also enjoy the technical challenge it provides and the way it constantly evolves. I built my first website back in 1999 and I have watched the web evolve into what it is today.

I try to make my courses enjoyable and try to remember what it was like when I was lea... Voir le profil complet

Level: Beginner

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. 1 Introduction: Vous vous êtes déjà demandé comment créer des jeux 2D simples qui fonctionnent à l'intérieur du navigateur, alors cette classe est conçue pour vous. Puisque JavaScript est intégré à tous les principaux navigateurs, il est parfait pour créer des jeux basés sur un navigateur. Ce cours vous apprendra tous les concepts que vous devez connaître lors de la construction d'un jeu de style Pong, mettre tout en pratique. Ce cours n'est pas conçu pour aller trop loin ou si vous possédez des connaissances JavaScript existantes, il vous aidera vraiment à progresser. Nous allons essayer de couvrir tous les principaux concepts dont vous avez besoin pour créer jeux 2D de base à l'intérieur du navigateur, et pour cela, nous commençons par configurer HTML Canvas. Le Canvas est un moyen idéal pour dessiner à l'intérieur du navigateur. Il est parfait pour dessiner notre zone de jeu , comme la balle, les flaques d'eau. Nous pouvons également utiliser JavaScript pour les déplacer sur le Canvas. Mais en travaillant avec un Canvas, nous avons besoin d'un peu de connaissances de base sur le système de grille. Tout cela est également couvert dans cette classe. Mais ne vous inquiétez pas, c'est vraiment facile à décrocher. Nous examinerons toutes les fonctions de dessin de base telles que la façon de dessiner du texte, comment dessiner des lignes, comment dessiner des carrés et des rectangles, des cercles et la façon dont nous pouvons également appliquer la boucle pour pouvoir répéter processus qui font un jeu vraiment fluide. Nous examinerons également comment interagir avec notre jeu et déplacer des objets à l' aide du clavier. Bien sûr, quel genre de jeu de Pong serait complet ? Nous n'avons pas géré la balle qui rebondit sur divers objets. La balle doit rebondir de tous les côtés de notre jeu. Nous devons décrocher un score s' il touche un côté particulier. Nous devons rebondir sur les pagaies en mouvement. Tout cela est couvert dans cette classe. Vous n'avez pas besoin d'outils supplémentaires ou de faire des achats pour ce cours. Tout ce dont nous avons besoin, c'est d'un navigateur Web et d'un éditeur de texte gratuit. Si cela ressemble quelque chose qui vous excite et que vous voulez en savoir plus, sautez dans la classe et je vous verrai dans la première leçon où nous commencerons par configurer le Canvas HTML. 2. Partagez votre travail sur Skillshare !: Lorsque vous suivez un cours, il est très important de ne pas prendre l'habitude de suivre un cours juste pour le plaisir de cocher une autre conférence. Prenez le temps de lire chaque leçon, revoir le code que vous écrivez et de réfléchir à la manière dont vous pourriez aborder ces solutions vous-même. Dans cet esprit, ce cours est basé sur des projets, ce qui vous donne l'opportunité de vraiment créer quelque chose de personnel et d'unique. Vous n'avez pas besoin de trop vous perdre et de vous éloigner de la classe Vous pouvez même prendre du recul une fois que vous avez terminé le cours et revenir et apporter des modifications au projet par la suite. Cela vous donnera vraiment une bonne chance de mettre en pratique ce que vous avez appris en classe. N'oubliez pas non plus de partager votre projet ici sur Skillshare et je suis le seul à y jeter un coup d'œil, mais il inspirera également les autres étudiants. Pour plus d'informations sur le projet de classe, rendez-vous dans l'onglet Projet et ressources où vous pouvez non seulement télécharger votre projet, mais également voir d'autres projets de classe. Dans cet esprit, j'ai hâte de voir ce que vous créerez et téléchargerez ici sur Skillshare. 3. Configurer la toile HTML: Puisque nous créons un jeu 2D, nous avons besoin d'un moyen de créer différentes formes et différents éléments et de les placer sur l'écran. Pour ce faire, nous utiliserons fortement le canevas HTML5. Canvas n'est qu'un élément HTML comme une div ou même une image. Il a une balise d'ouverture et de fermeture, et à elle seule, il ne fait rien. Mais une fois que nous l'avons mis en place, nous pouvons utiliser l'API Canvas pour dessiner des graphiques. Nous pouvons également faire beaucoup plus pour les cas de surutilisation tels que manipulation de photos en changeant les pixels et les animations, pour n'en nommer que quelques-uns. Ce cours sera plus axé sur un graphisme 2D. De nombreuses autres API et bibliothèques sont également disponibles pour gérer les fonctionnalités 3D. Pour accéder à ces fonctionnalités 2D, l'API Canvas dispose d'une interface disponible appelée CanvasRenderingContext2D. Ce n'est pas quelque chose que vous devez mémoriser. Mais sachez simplement que c'est pourquoi nous avons accès aux fonctionnalités de dessin 2D sur le canevas en utilisant JavaScript. Ici, vous pouvez voir une sélection de certaines propriétés et méthodes auxquelles nous avons accès et qui nous permettront de dessiner sur le canevas. Vous en verrez d' autres pendant le cours. Passons maintenant à l'éditeur de texte et mettons en place un nouveau projet. Tout d'abord, nous avons besoin d'un nouveau dossier de projet pour stocker tous nos fichiers à l'intérieur. Laissez-moi appeler ce jeu, tout ce que vous voulez, mais je veux appeler ce jeu et cliquer sur « Entrer ». Ouvrez Visual Studio Code. Si vous préférez, vous pouvez utiliser un autre éditeur si vous le souhaitez. Faites glisser ça. Ensuite, nous avons besoin de deux nouveaux fichiers pour commencer. Le premier que vous pouvez cliquer sur l'icône Nouveau fichier juste ici, cela créera un nouveau fichier. Je vais appeler ça le index.html. Le deuxième fichier dont nous avons besoin sera pour notre script, le script.js. Cela va gérer toutes nos fonctions de dessin dans notre code de jeu. Reprenons à zéro dans notre index.html. À l'intérieur, Visual Studio Code dispose d'un raccourci pratique appelé html:5, qui nous donnera toute notre structure HTML de base. Le titre est le même. Nous n'avons pas besoin de beaucoup de contenu à l'intérieur de la section du corps, mais la première chose dont nous avons besoin, c'est le canevas. Comme mentionné précédemment, la toile comporte les étiquettes d'ouverture et de fermeture. Si nous l'enregistrons et que nous l'ouvrons dans le navigateur, vous ne verrez pas encore de contenu à l'écran. Si nous copions la page d'index du chemin, collez-la dans, vous ne voyez aucun contenu dans le navigateur. Pour réellement voir le canevas, nous devons dessiner des objets à l'intérieur de notre fichier JavaScript ou ajouter un peu de style à l'intérieur pour rendre notre canevas plus visible. Sur le style, tout ce que nous voulons faire à l'intérieur est de saisir notre toile, définir une couleur d'arrière-plan pour rendre cela plus visible. Vous pouvez faire cela n'importe quelle couleur que vous voulez , mais je vais opter pour une valeur RVB. Le rouge de 61 et 59 pour le vert et le bleu. Cela nous donnera cette couleur de fond plus foncée. Nous pouvons maintenant voir le canevas à l'intérieur du navigateur. Vous pouvez voir par défaut qu' il s'agit d'une toile assez petite. Par défaut, le canevas sera rendu 300 pixels de large et de 150 pixels de hauteur. Nous pouvons remplacer cela à l'intérieur de notre script. Pour le faire au centre, nous pouvons le faire comme nous le ferions avec d'autres éléments HTML habituels. abord, définissez le type d'affichage sur la valeur du bloc. Ensuite, nous pouvons définir la marge sur zéro en haut et en bas, puis automatiquement à gauche et à droite. Enregistrez et actualisez, et cela apparaîtra maintenant à l'intérieur du centre car j'ai automatiquement divisé l'espace à gauche et à droite. La dernière chose à faire à l'intérieur de notre page d'index, juste en dessous du canevas, est le lien de notre fichier de script. Placement de la source qui pointe vers notre script.js. Ensuite, nous pouvons passer à ce fichier pour ajouter du contenu. La première chose que nous devons faire à l'intérieur d' ici est de saisir réellement notre élément de toile. Nous le faisons comme nous le ferions avec n'importe quel autre élément HTML. Nous avons accès à nos éléments en utilisant des éléments tels que QuerySelector, GetElementByID, GetElementByClassName, et nous pouvons stocker cela à l'intérieur d'une constante appelée canevas. Pour cet accès, le document complet, je vais utiliser QuerySelector passant dans notre élément canevas. Maintenant, cela stocke notre référence à nos éléments à l'intérieur de cette variable ou constante. Nous pouvons maintenant y accéder juste ci-dessous. Commencez par remplacer cette valeur par défaut, soit une taille de 150 x 300 pixels. Prenez notre toile. Nous pouvons définir la largeur de cet élément sur n'importe quelle valeur souhaitée. Disons 800. Ensuite, la hauteur de 400. Cela devrait maintenant être mis à jour à l'intérieur du navigateur. La dernière chose que nous devons faire à l'intérieur de ce fichier est d'accéder aux fonctions de dessin 2D des toiles avec GetContext. Nous pouvons stocker cela à l'intérieur d'une constante appelée ctx, saisir nos éléments de canevas, puis appeler une méthode appelée GetContext. Transmission d'une chaîne de 2D pour nous donner accès aux fonctions de dessin 2D. Le nom constant de ctx dépend de nous, mais il s'agit d'une convention de dénomination courante pour accéder au contexte de rendu, et cette constante peut maintenant être utilisée pour dessiner sur le canevas lorsque nécessaire. Nous l'utiliserons beaucoup tout au long de ce cours. Cette toile est maintenant prête à dessiner également. Mais juste avant de le faire, dans la vidéo à venir, nous allons examiner comment travailler avec les grilles et les coordonnées, ce qui nous aidera vraiment à comprendre l'emplacement de nos objets sur la toile. 4. Grilles et codes: Nous n'allons pas trop loin vers le Canvas, si nous ne comprenons pas d'abord certaines coordonnées de base. Vous comprenez peut-être déjà certains de ces éléments, et nous n'avons pas besoin d' aller trop loin, mais sinon, nous allons maintenant faire un récapitulatif rapide. Lorsque nous le dessinons sur le Canvas, ou en fait, la plupart des systèmes de grille 2D, nous avons deux directions que nous devons connaître. Il s'agit de l'axe X et de l'axe Y, x est horizontal de gauche à droite, et y est vertical de haut en bas. qui signifie que si vous vouliez localiser le coin supérieur gauche de cette grille, x et y, seront tous les deux zéro, mais qu'en est-il de quelque chose comme ce carré de nombreuses formes comme celle-ci ? Bien qu'il occupe plusieurs espaces de grille, l'emplacement de départ est en haut à gauche. C'est ici que nous avons ce point rouge. Encore une fois en haut à gauche de cette grille, nous traverserons trois espaces sur l'axe des X et deux espaces sur l'axe Y, ce qui nous donne notre position de départ. Après cela, une fois que nous avons notre position de départ dans le coin, nous pouvons définir la hauteur et la largeur de n'importe quelle forme que vous souhaitez. C'est tout ce que vous devez vraiment savoir pour commencer. Nous pouvons ensuite définir la taille des graphiques et faire d'autres choses lorsque nous les créons également. C'est ce que nous allons faire à venir. 5. Dessiner la toile: Pour vous aider à dessiner sur le canevas, j'ai créé un téléchargement que vous pourrez utiliser pendant ce cours et également à l'avenir. Il vous suffit d' accéder à ce lien que vous pouvez voir à l'écran, télécharger le PDF et de le conserver en lieu sûr. Jetons maintenant œil à notre script et un coup d'œil à notre script et voyons comment nous pouvons utiliser certains d'entre eux. Dans la vidéo des coordonnées précédemment, nous avons examiné un exemple de dessin d'un carré. Commençons par ça. Notez également que les carrés et les rectangles utilisent la même méthode de dessin. Nous venons de modifier les valeurs de largeur ou de hauteur Pour dessiner un rectangle ou un carré à l'aide du canevas, nous devons d'abord accéder à notre variable de contexte, donc ctx, et ceci a une méthode. disponible appelé FillRect. Cela remplira un rectangle d' une couleur unie ou même d'un dégradé. Nous allons analyser les différentes valeurs de l' année 4. Tout comme nous l'avons vu avec la vidéo des coordonnées précédemment, les deux premières valeurs sont l'emplacement où nous voulons placer ce rectangle. Puisque cela est basé sur le coin supérieur gauche du rectangle ou du carré, je veux commencer cet exemple en montrant cela en haut à gauche. La partie supérieure gauche sera x, 0 et y, 0. Ensuite, nous analysons la largeur et la hauteur que nous voulons que la forme soit. Pour en faire un carré, nous pouvons analyser certaines valeurs égales comme 100. Cela placera un carré de 100 x 100 pixels en haut à gauche de notre toile. Nous pouvons également faire passer cela sur l'axe des X ou l'axe Y, n'importe quelle valeur souhaitée. Si nous modifions l' axe des Y pour qu'il soit 50, cela le poussera plus loin dans le canevas. En plus de la méthode FillRect, nous pouvons également modifier cette méthode pour être un trait, donc StrokeRect. Plutôt que de remplir une couleur unie comme nous le voyons, trait placera un contour autour de la forme. Cela nous donnera le contour d'un rectangle ou d'un carré. Pour la plupart des choses que nous dessinons sur la toile, aurons un trait ou une alternative de remplissage. Je vais juste changer ça pour être rempli. Nous pouvons également créer un rectangle en modifiant la hauteur ou la largeur. Si nous changeons cette valeur par 200, par exemple, cela nous donnera un rectangle. Par défaut, nous aurons cette couleur noire unie. Nous pouvons modifier cela en accédant à une propriété dans ce contexte appelée FillStyle, juste au-dessus de FillRect, encore une fois, accédez à notre contexte comme nous le ferons avec toutes ces entités de dessin. Nous pouvons accéder à la propriété FillStyle. FillStyle va être égal à une chaîne et la définir à une couleur telle que le rouge. Si nous actualisons le navigateur, couleur d'arrière-plan sera désormais mise à jour. Si nous utilisions le StrokeRect au lieu de remplir comme nous l'avons vu auparavant, pour faire le contour, nous devrions également mettre à jour pour qu' il corresponde à StrokeStyle. Cela modifiera la couleur du contour pour qu'elle soit rouge. Il suffit d'annuler ces deux modifications et de partir comme remplissage. Comme vous pouvez vous y attendre, ces rectangles seront utiles à l'intérieur de notre jeu. Nous pourrions les utiliser pour dessiner le joueur et aussi la pagaie de l'ordinateur, qui sera utilisée pour frapper la balle. Allons y aller en commençant par les joueurs qui pagaient sur la gauche. Pour commencer, comme nous avons un canevas de 400 pixels de hauteur, nous pouvons commencer par le placer au centre en modifiant la valeur Y à 200. La largeur de la toile, définissons la valeur de huit et la hauteur de 80. Actualisez. Vous vous attendez à ce que la pagaie soit au milieu puisque nous avons défini cette valeur Y à 200, soit la moitié de la hauteur. Mais comme nous l'avons déjà appris, la position de départ des coordonnées x et y se trouve dans la position supérieure gauche de notre forme, ce qui signifie que le haut de la forme se trouve au centre de la toile plutôt que dans le au centre de notre rectangle. C'est ici que nous devons commencer à réfléchir plus attentivement aux choses. Pour que la pagaie soit correctement au centre de la toile, il faut maintenant déduire la moitié de la hauteur de la pagaie. Comme nous savons que la hauteur de la pagaie est de 80 pixels, nous pourrions en déduire 40 de la position de départ. Cela fonctionne, mais une meilleure option serait de modifier ces valeurs pour utiliser des variables. Les variables seraient alors utilisées pour effectuer ce calcul pour nous, et il serait également utile à l'avenir de modifier l'une ou l'autre de ces valeurs. Juste les deux, nous pouvons créer des variables. La première est la largeur de la palette utilisant les mêmes valeurs, donc la largeur de huit pixels. Ensuite, le second concerne la hauteur de la pagaie. La hauteur de la palette est de 80 pixels, comme nous l'avons déjà fait. Nous pouvons ensuite les utiliser dans notre méthode FillRect. La largeur de la pagaie, également la hauteur, et cela devrait toujours fonctionner exactement de la même manière. Mais maintenant, au lieu de coder en dur cette valeur de 160, ce que nous allons maintenant faire est de calculer cela à l'aide de JavaScript. Nous pouvons saisir la hauteur du canevas, qui est actuellement de 400 pixels, diviser celle-ci par deux pour obtenir le centre qui nous donne actuellement la valeur de 200. Mais comme nous le savons, 200 ne le placeront pas au centre de la toile. Nous devons également déduire la moitié de la hauteur de la pagaie, donc toile.hauteur divisée par 2. Je retirerai également la hauteur de la pagaie divisée par deux. Ce que nous avons ici est exactement le même qu'avant. Nous avons la valeur de 200, à emporter 40. C'est exactement la même chose qu'avant, mais en utilisant des variables. Enregistrez et rafraîchissez. Maintenant, pour la pagaie de l'ordinateur, qui va être terminée sur la droite, et tout cela devrait ressembler, il suffit de changer la position x pour être sur la droite. Nous pouvons également modifier le FillStyle pour qu'il soit une couleur différente. En descendant, tout le code aura désormais une couleur différente en changeant le FillStyle. Allons-y pour le bleu. Ensuite, nous utilisons CTX.FillRect. Comme mentionné précédemment, la seule différence entre la pagaie des joueurs et la pagaie de l'ordinateur est que nous voulons pousser sur le côté droit. La pagaie des joueurs a l'emplacement de départ x de zéro, qui est terminé sur la gauche. Ce que nous voulons faire pour la version de l'ordinateur, c' est placer cela sur la droite en accédant au canvas.width, qui est actuellement égal à 800. Mais comme cette position de départ est basée sur le haut à gauche du rectangle, cela pousserait cette position hors du bord de la toile. Ce que nous devons faire, c'est de ramener cela en déduisant la largeur de la pagaie. Les trois dernières valeurs sont exactement les mêmes que ci-dessus. Cela va commencer au centre. Nous pouvons l'utiliser, et la largeur et la hauteur de la pagaie ont également été définies. Prenez les trois, ajoutez-les juste après la virgule, en nous laissant deux pagaies maintenant en place à l'écran. La prochaine chose que nous devons dessiner, c'est une balle. Vous vous attendez peut-être à une méthode appelée FillCircle ou quelque chose du genre. Mais pour les cercles, nous utilisons une méthode appelée arc. Encore une fois, dans le contexte, appelez la méthode arc. Il est utilisé pour créer un arc ou une courbe. Nous pouvons former un cercle en faisant pivoter cette courbe tout autour de la position de départ. Contrairement à un rectangle, étant donné qu'un arc est courbé, la forme ne possède pas d'angle supérieur pour le localiser. Au lieu de cela, nous le localisons près du centre. Pour le placer au milieu de la toile, nous pourrions faire quelque chose comme ça. Nous pourrions accéder au canvas.width diviser par 2. Ceci est placé au centre de l'axe X. Ensuite, la même chose pour la hauteur. Mais nous n'avons pas encore fini. Vient ensuite le rayon du cercle, qui correspond à la dimension du centre du cercle jusqu'au bord très extérieur. Fondamentalement, la moitié de la largeur du cercle. Mettons-le en 50, séparé par une virgule. La valeur suivante dans sens des aiguilles d'une montre est le début et l'angle de fin. Pour commencer cela verticalement à 12h00, nous commençons par la position zéro. Pour que la position de fin le fasse pivoter tout autour et créer un cercle, nous devons le faire pivoter de 360 degrés. Mais lors de l'utilisation de la méthode de l'arc, cette rotation se fait en radians et non en degrés. L'équivalent de 360 degrés en radians est 2 fois math.pi. C'est ainsi que nous pouvons le faire en utilisant JavaScript. Maintenant, si nous sauvegardons cela et actualisons le navigateur, nous ne voyons actuellement aucun cercle sur le canevas. Nous ne voyons pas encore notre cercle sur la toile, car nous devons d'abord déclarer si nous voulons que ce cercle soit un remplissage ou un trait. Nous pouvons le faire avec ctx.fill. C'est une méthode, donc nous avons besoin des supports juste après. Actualisez. Cela va maintenant remplir notre cercle d'une couleur de fond unie. Comme on peut s'y attendre, nous pourrions également utiliser la méthode du trait pour nous donner le contour de notre cercle. Je vais garder ça plein. Changez également la couleur de remplissage juste au-dessus à l'aide FillStyle et définissez cette couleur sur gris. Puisque 2 fois Math.pi est un cercle complet, vous pouvez probablement deviner que la moitié de cette valeur est un demi-cercle, donc plutôt que de la chronométrer par deux, on peut simplement dire math.pi. Ce sera un demi-cercle. Encore une fois, si vous voulez qu' il s'agisse d'une ligne, vous pouvez modifier cette ligne en un trait. Vous pouvez également réduire ou augmenter la valeur de Math.pi. Si nous divisons la valeur de Math.pi par 2, cela nous donnera alors un quart de cercle. Comme vous pouvez l'imaginer, cet arc est une méthode assez polyvalente. Mais comme nous avons besoin d'une balle, je vais rétablir pour être deux fois Math.PI, comme nous l'avions fait auparavant. Nous pouvons également modifier cette couleur pour obtenir une couleur de remplissage, ainsi qu'un rayon de boule plus petit de 10 pixels. Ce n'est qu'un premier regard de base sur le dessin sur la toile. Comme on peut s'y attendre, il y a beaucoup plus à apprendre et beaucoup d'autres choses que vous pouvez faire. Nous commencerons à regarder quelques-uns de ces éléments dans la vidéo à venir. 6. Texte, lignes et chemins: suite de la vidéo précédente, nous allons maintenant découvrir d' autres techniques que nous pouvons utiliser pour dessiner sur la toile, dessiner des lignes et aussi du texte. Cela va être très pratique pour notre jeu. Je vais commencer par dessiner des textes sur le Canvas qui servira à dessiner le score de l'utilisateur et à inviter l'utilisateur à commencer le jeu. Les textes de dessin sur le Canvas nous ont à la fois un contour, mais un contour, et le FillText, ou une couleur unie. Commençons par le bas de notre script. Accédez au contexte et nous commencerons par FillText. Pour FillText, la première chose que nous devons ajouter est une chaîne, c' est-à-dire le texte que nous voulons afficher, donc hé, suivi des positions x et y où nous voulons le placer. Allons-y pour 150. Enregistrez et rafraîchissez. Nous pouvons à peu près voir ce petit texte sur la toile, mais c'est vraiment difficile à voir car la taille par défaut est 10 pixels avec une police sans empattement. Mais nous pouvons bien sûr changer cela dans notre JavaScript. Tout d'abord, modifions le FillStyle pour qu'il soit égal à n'importe quelle couleur telle que rouge et aussi pour modifier la taille ainsi que la famille de polices. Nous pouvons accéder à ctx ou à la police. Définissez cette valeur égale à une chaîne. Cela prend exactement la même syntaxe que celle que nous ferions avec la propriété CSS on afin que nous puissions transmettre une chaîne de la taille du pixel. Allons pour 30 et ensuite la famille de polices Helvetica. Rafraîchissez et cela prend effet. Ce qui serait bien d'avoir, c'est le score du joueur affiché des deux côtés de la toile. Si nous avions le score du joueur au milieu de la moitié gauche et le score de l'ordinateur au milieu de la moitié droite. Pour simuler cela pour le score du joueur, nous devons effectivement nous pousser dans un quart de la largeur de la toile. Pour simuler un score, nous pouvons simplement placer n'importe quelle valeur à l'intérieur d'ici, par exemple trois, puis pousser plus d'un quart de la largeur. Nous pouvons d'abord saisir la toile, cette largeur et la diviser par 4. Le score informatique doit être aux trois quarts du chemin à travers le Canvas et nous pouvons dupliquer cela. Changez le score pour l'instant. Mais plutôt que de diviser le Canvas par 4, nous allons multiplier cela par 0,75, poussant notre texte aux trois quarts du chemin travers le Canvas. Enfin, nous pouvons également stocker ces deux valeurs dans des variables afin de pouvoir y accéder et les utiliser plus tard dans le cours. Retour en haut, en utilisant LET pour que nous puissions les mettre à jour au fur et à mesure que le jeu progresse. La première variable est le score du joueur. Nous avons une valeur initiale de 0, suivie du score de notre ordinateur. Ces variables peuvent désormais être utilisées dans notre méthode FillText. Supprimez la valeur codée en dur, et c'est le score du joueur. Le second est le score de l'ordinateur. Une autre chose que Canvas nous donne est la possibilité de dessiner à l'aide de lignes. Nous avons deux méthodes utiles disponibles, appelées outil de déplacement et outil de ligne. Jetons un coup d'œil à ces questions. CTX.MoveTo et CTX.LineTo. Le premier de Move to est utilisé pour passer à la position de départ, puis ligne vers est ce qui permet de tracer une ligne sur la toile jusqu'à la position finale que nous avons définie. Se déplacer vers, c' est comme retirer le stylo papier et le déplacer vers une certaine position. ligne vers est utilisée pour dessiner la ligne. Ce que je vais utiliser, c'est de dessiner une ligne centrale verticalement sur la toile et aussi le cercle central. abord, commençons par cette ligne verticale et nous devons d'abord déplacer la position du stylo pour être au centre de la toile et en haut. Les valeurs pour cela, tout d'abord, pour x sont la moitié de la largeur de la toile et la position y est 0, car nous voulons garder cela tout en haut. Déplacez-vous dépendant pour être dans cette position juste ici. Maintenant, nous devons utiliser la méthode line to. Tracez en fait une ligne jusqu'à l'emplacement final, qui est en bas, en passant à l' emplacement final, ce qui est toujours au centre de la toile afin que nous puissions saisir la largeur de la toile divisée par 2 et la position Y finale est en bas. C'est la toile. Hauteur. Cela définira ensuite l'endroit où nous voulons dessiner notre ligne mais se place réellement sur le Canvas, nous devons utiliser la méthode du trait, donc ctx.stroke et il y a une ligne du haut vers le bas. C'est vraiment bien, mais si nous regardons de près, nous avons également une ligne indésirable supplémentaire autour de cette balle. Cela se produit parce qu' à l'heure actuelle, nous n' avons aucune séparation entre tous ces chemins Canvas et les graphiques que nous avons créés. Par exemple, juste au-dessus, nous avons dessiné un cercle à l'aide de la méthode du film. Nous avons dessiné ceci, comme vous vous y attendiez avec cette couleur grise, mais le code continue de fonctionner jusqu'au bas et il dessine également le même cercle en utilisant la méthode du contour. C'est pourquoi la balle a un remplissage et un contour du trait jusqu'à. Lorsque cela se produit, nous pouvons séparer chacune de ces sections à l'aide d'une méthode appelée chemin de début. Nous appellerons cela juste au-dessus notre ligne avec ctx.beginpath. chemin de début effacera efficacement tous les Le chemin de début effacera efficacement tous les chemins existants au-dessus et commencera à partir de cette ligne. Enregistrez et actualisez et maintenant notre ligne a été retirée du cercle, ne laissant que la ligne verticale que nous voulions ainsi que cette ligne solide. Nous pouvons également modifier cette ligne en pointillés. Nous pouvons le faire juste avant de tracer notre ligne avec ctx.setlinedash. Set line dash est une méthode qui prend en compte un tableau à l'intérieur de ce tableau JavaScript, nous définissons la taille de telle sorte que les tirets et les espaces entre chacun d'entre eux. Si nous avons fait quelque chose comme ça, 10 , 20, 20 et 30, cela définira toutes les valeurs de nos tirets et espaces afin que nous ayons la taille du premier tiret, la taille du premier espace, le la taille du deuxième tiret, la taille du deuxième espace, puis la taille du troisième tiret puis elle se répète jusqu'à la fin de la ligne. Dix pixels pour la première ligne, puis 10 pixels pour le premier écart, puis nous passons à 20, puis 30. Pour que cela reste simple, je vais juste passer une seule valeur de 6, ce permettra de s'assurer que chacun de nos espaces ainsi que nos tirets sont en valeur égale. La dernière chose à dessiner, c'est un cercle central. Nous savons dessiner un cercle en utilisant la méthode de l'arc. Mais cette fois, nous allons également définir une ligne pointillée tout en bas et nous commencerons une nouvelle section avec ctx.beginpath. Pour notre cercle, ctx.arc. Tout comme notre position de balle de départ, nous devons placer cela au milieu de la toile avec toile. Largeur divisée par 2 et également la même hauteur pour la hauteur. Prends ça, colle-les dedans. La troisième valeur est le rayon et puisque nous avons une boule de 10, faisons de cette valeur une valeur de 20. Pour le cercle, la position de départ est 0 et un cercle complet est 2 fois math.pi. Dessinez le cercle dont vous avez besoin pour appeler la méthode du trait en laissant notre cercle central maintenant en place sur la toile. C'est la plupart de ce dont nous avons besoin pour nos jeux lors fonctions de dessin, et la grande partie de l'utilisation variables comme celle-ci est que nous pourrons mettre à jour ces valeurs pour déplacer nos objets sur le Canvas. 7. Looping: bouclage va être un élément très important déplacer les choses à l'intérieur de notre jeu. Si vous y réfléchissez actuellement, nous dessinons actuellement des choses comme une balle et les pédales sur l'écran. Mais ce que nous devons faire, c'est de mettre à jour ces valeurs pour les déplacer dans une autre direction, puis nous devons continuellement redessiner et répéter cela à l'aide d'une boucle. C'est ce que nous allons examiner maintenant. Au bas de notre script, la première chose à faire est de créer une fonction que vous souhaitez répéter en boucle. Vous pouvez donner n'importe quel nom de votre choix, je vais m'en tenir à la boucle celui-là. Le but de cette fonction est de dessiner à plusieurs reprises autographies telles que la balle et les pagaies après avoir bougé leur position. Pour l'appeler, nous pouvons utiliser une méthode JavaScript appelée SetInterval. SetInterval répétera notre fonction de boucle après quelques millisecondes. Nous appelons cela tout en bas, cela va prendre en compte deux choses, la première chose est la chose que nous voulons répéter, et dans notre cas, c'est notre fonction de boucle. Nous le transmettrons, suivis d'un délai en millisecondes. Définissons actuellement cette valeur sur 15, et vous pouvez l'augmenter pour le jeu le plus lent et le réduire pour une partie plus rapide. Cette fonction de boucle finira par répéter plusieurs parties de notre code que nous avons ci-dessus, mais pour l'instant, placons dans un simple journal de console pour que nous puissions vérifier que cela fonctionne. Donc, n'importe quel texte à l'intérieur d' ici, enregistrez-le, et maintenant nous pouvons aller dans la console et vérifier notre SetInterval appelle notre fonction, inspecte, saute dans la console, et maintenant si nous actualisons, on peut voir que c'est ce qu'on appelle toutes les 15 millisecondes. Commençons par remplacer ce journal de console par notre balle. Pour dessiner notre balle, nous pourrions couper et coller le code que nous utilisons pour dessiner notre balle, qui est la méthode ctx.arc. Ou plutôt, nous pourrions envelopper cela dans une fonction et l'appeler directement. Juste au-dessus de cela va créer une nouvelle fonction appelée DrawBall. Cela va emballer tout notre code juste en dessous. Ouvrez les supports bouclés comme ceci, puis nous pouvons couper et coller et déplacer cela directement à l'intérieur de notre fonction. Maintenant, nous pouvons appeler notre fonction DrawBall depuis l'intérieur de notre boucle, remplacer le journal de la console, passer notre fonction DrawBall, et nous l'appellerons toutes les 15 millisecondes et actualiserons le navigateur. Quelques choses à noter ici, la première chose que vous remarquerez, c' est que notre balle est maintenant trop grosse. Nous semblons avoir un conflit entre les chemins que nous dessinons à nouveau, qui peut être corrigé avec CTX.BeginPath. Je vais ajouter cela à l'intérieur de notre fonction DrawBall, actualiser et cela corrige maintenant notre premier problème. Le prochain problème est que le ballon ne bouge pas encore. On peut s'y attendre car même si nous avons tiré cette balle à plusieurs reprises toutes les 15 millisecondes, nous l'avons toujours dessinée au même endroit. Dans la fonction DrawBall, nous avons toujours dessiné cela au centre, et nous pouvons modifier ces deux valeurs avec des variables que nous pouvons mettre à jour. Pour la largeur, qui est l'exposition, nous le remplacons par BallX et Bally pour la position Y. Nous voulons toujours que ces deux variables soient initialement au centre du canevas. Tout d'abord, BallX, il sera égal à la largeur du canevas divisée par 2. Placez-le d'abord au centre, puis pour Bally juste en dessous, nous diviserons la hauteur de la toile par 2. Comme nous nous y attendions si nous sauvegardons et actualisons, nous ne voyons pas encore de mises à jour car nous devons réellement mettre à jour les valeurs de BallX et Bally chaque fois que la trame a été répétée. Nous pouvons le refaire dans notre fonction DrawBall une fois que cela a été dessiné. Dès que nous passerons à la boucle suivante, nous mettrons à jour la valeur de ces deux variables , plus 2. De plus, nous ajouterons la valeur de deux à notre variable BallX, puis mettrons à jour la variable, Bally est égale. Nous allons rester court car nous n'avons pas autant de problèmes sur l'axe des Y, donc la valeur de un est correcte. Rafraîchissez ça. Nous allons maintenant voir le ballon voyager sur la toile. Ceci est en cours de mise à jour, mais nous avons toujours cette piste solide sur la toile puisque la position précédente du ballon doit être retirée. Nous pouvons résoudre ce problème avec une méthode de canevas appelée ClearRect, qui effacera tous les dessins existants de la toile avant de redessiner notre boule jusqu'à notre boucle, la placer au début, juste avant que nous répété pour appeler notre fonction, en passant ClearRect, qui est disponible dans le contexte. Si nous voulons avoir la possibilité de supprimer uniquement de petites pièces ou une section particulière du canevas, dans notre cas, nous effacerons le canevas complet. abord, nous passons à l'emplacement de départ situé en haut à gauche, qui correspond à la coordonnée 0, 0, puis nous effacons toute la largeur et la hauteur totale. Tout d'abord, en passant canvas.width, séparé par une virgule, canvas.height, et remplacez-le à nouveau par de petites valeurs. Si vous voulez simplement retirer une petite partie du canevas sur le navigateur, la balle se déplace désormais comme prévu sans quitter cette piste solide. Allez au ballon, bougez maintenant comme prévu, et nous ne voyons rien d'autre sur la toile depuis que nous l'avons effacé avec ClearRect. Nous effacons le canevas à chaque fois, nous appelons cette fonction de boucle. Ce que nous devons faire, c'est saisir nos fonctions de dessin haut et les déplacer dans notre boucle. De plus, l'avantage supplémentaire de toutes ces fonctions de dessin étant dans la boucle est que très bientôt nous allons mettre à jour la position de la palette avec un clavier, ce qui mettra également à jour la position sur la toile de chaque boucle. Mais pour l'instant, nous allons aller à l' endroit où nous dessinons nos formes, et nous ferons la même chose qu'avec la balle, qui consiste à envelopper tout le code pertinent dans une fonction autonome. On peut donc l'appeler de l'intérieur de notre boucle. abord, la fonction de dessin était la pagaie du joueur, qui se trouve juste en dessous de nos variables. Découpez cela et créez une nouvelle fonction appelée DrawPlayerPaddle, collez-la à nouveau dans notre fonction. Le second est de dessiner une pagaie d'ordinateur, et c'est pour toute la section bleue. Découpez cela et créez notre nouvelle fonction appelée DrawComputerPaddle. Encore une fois, collez notre code, fonction DrawBall est toujours en place. Le suivant était FiltText, et il s'agit de dessiner la partition sur le canevas. Découpez cela, créez une nouvelle fonction appelée DrawScore, puis collez-la dans le corps. Les deux sections suivantes servent à dessiner nos lignes sur le canevas. Celui-ci était destiné à la ligne médiane et aussi au cercle au milieu. Nous allons les placer dans une seule fonction appelée DrawCanvas. Collez ça dans. Maintenant, nous pouvons appeler toutes ces nouvelles fonctions depuis notre boucle : DrawPlayerPaddle qui était la première, suivi de DrawComputerPaddle, DrawScore et enfin DrawCanvas. Essayons cela, voyons le navigateur. Maintenant que nous avons effacé notre rectangle avec la balle, toutes les autres fonctions de dessin fonctionnent maintenant. Comme on peut s'y attendre, il s'agit d'une partie très importante de notre jeu et d'un grand pas dans la bonne direction. À la prochaine leçon, nous examinerons comment utiliser le clavier pour déplacer les joueurs vers le haut et vers le ballon. 8. Déplacer des objets avec le clavier: Nous arrivons maintenant à la partie amusante où nous pouvons réellement faire bouger les choses sur le Canevas à l'aide de commandes telles que la souris ou le clavier. Le but de cette vidéo est d' écouter lorsque l'utilisateur appuie sur le bouton haut ou bas du clavier, puis nous allons déplacer les utilisateurs à la pagaie. Nous pouvons faire tout cela avec JavaScript normal. Pour le moment, nous avons ce joueur pagayer sur la gauche. Si nous allons à la fonction Draw Player Paddle , qui contrôle cela, juste ici, nous pouvons voir avec l'emplacement des coordonnées x et y. Bien que cela soit terminé sur la gauche car nous avons la valeur x à 0 et que la valeur y est définie pour être au centre. Pour mettre à jour notre palette avec le clavier, nous devons remplacer cette valeur Y par une variable. Pour le maintenir positionné au centre plutôt qu'en haut à gauche, nous pouvons toujours maintenir cette hauteur de collage divisée par 2. Mais la hauteur de la toile divisée par 2 peut être remplacée par une variable appelée position du joueur. Une position devra être créée en haut avec le reste de nos variables. Nous utilisons let car cela doit être mis à jour. Position de jeu et définissez cette valeur égale à la hauteur de la toile divisée par 2. Pour commencer, cela laissera notre joueur au centre de la toile, comme avant. Mais maintenant, nous avons une variable que nous pouvons mettre à jour. Cela sera également vérifié sur chaque boucle puisque nous appelons notre fonction à partir de notre boucle. Avec cette variable maintenant configurée, nous pouvons commencer à écouter les événements d'un clavier, déplacer la position de notre joueur. Juste en dessous, ce que nous devons faire est d'écouter un événement clavier avec AddEventListener. Il s'agit simplement d'un document JavaScript normal . AddEventListener. Nous allons écouter l'événement d'un utilisateur. L'événement que nous voulons écouter est une touche enfoncée, qui déclenchera ensuite une fonction que j' appellerai MovePaddle. Fonction MovePaddle. Comme il ne s'agit pas d'un événement, nous devons accéder aux informations de l' événement pour savoir exactement sur quelle touche l'utilisateur a pressée, nous devons transmettre les informations sur l'événement dans notre fonction. abord, nous allons commencer par un journal de console qui transmet la valeur de e. Nous pouvons voir exactement quelles informations d'événement nous avons pour notre événement clé. Plongez dans la console, rafraîchissez-vous. Cela ne fera rien pour commencer tant que l'utilisateur n'aura pas appuyé sur la touche. Commençons par la touche levée, qui imprimera ensuite toutes les informations de nos événements clavier. Il y a beaucoup d' informations ici dont nous n'avons pas besoin. Mais la principale chose dont vous avez besoin pour ce projet est cette propriété de code. Vous pouvez voir qu'il s'agit d'une chaîne de flèche vers le haut. Si nous le fermons maintenant et que nous appuyons sur la flèche vers le bas, le code dont vous avez besoin pour celui-ci est Flèche vers le bas. Nous pouvons accéder à e.code et vérifier si chacun d' eux est égal à la flèche vers le haut ou la flèche vers le bas, puis nous pouvons définir la valeur de la position du joueur. Supprimons le journal de la console car nous savons ce que nous recherchons maintenant et remplacons celui-ci par une instruction de commutateur JavaScript. La valeur que nous voulons vérifier, comme nous venons de le voir, est e.code. Puisque nous ne sommes que la liste actuelle pour la flèche vers le haut ou la flèche vers le bas, cela pourrait remplacer cela par une instruction if else si vous préférez. Mais je veux utiliser une instruction switch pour que nous puissions étendre cela plus tard pour utiliser le clavier pour démarrer le jeu. Pour commencer, le premier cas que nous devons écouter est Arrow Up. Assurez-vous que cela correspond exactement à la chaîne comme nous le voyons à l'intérieur de la console. Chaque mot commence par une majuscule. Si la flèche vers le haut a été pressée, il est nécessaire de mettre à jour la position du joueur en déduisant une valeur. Parce que rappelez-vous, la valeur de y en haut est 0. Cela se met à jour lorsque la position du joueur se déplace en passant par notre variable de position du joueur. Pour cela, nous utiliserons l'opérateur d' affectation de soustraction, qui soustrait nos valeurs particulières telles que 15 de notre valeur actuelle, puis réactualisera 15 de notre valeur actuelle cette variable. Chacun de nos cas doit être suivi d'une clause de rupture. Sortez de notre instruction switch si cette affaire est appariée. Il suffit également de le placer dans un côlon à l'intérieur d'ici. Notre deuxième cas se trouve juste en dessous. Celle-ci sera pour le cas de Flèche vers le bas : Cette fois, nous mettrons à jour la position du joueur avec l'opérateur d'affectation d'ajout, qui ajoutera 15, puis réaffecterons notre nouveau avec la valeur mise à jour. Nous allons sortir de ça si celui-ci est vrai. Puisque notre position de joueur est utilisée à l'intérieur de notre fonction lorsque nous dessinons la pagaie, nous devrions maintenant pouvoir le mettre à jour lorsque nous appuyons sur les touches haut et bas. Nous pouvons également déplacer n'importe quoi d'autre sur la toile en utilisant la même technique. Dans une prochaine vidéo, nous allons voir comment déplacer la pagaie de l'ordinateur vers le haut ou vers le bas, mais celle-ci doit être effectuée automatiquement. Ensuite, nous allons voir comment gérer la balle qui rebondit sur nos objets. 9. Détenir les collisions et les rebondissements: Quel genre de jeu aurait-on si la balle ne rebondissait sur les côtés ou aussi sur les pagaies ? Eh bien, c'est délicat car cela implique un peu de travail parce que toutes nos coordonnées actuelles sont basées sur les lignes centrales de choses comme la balle et aussi la pagaie. Mais nous ferons de notre mieux pour comprendre les choses et nous allons y passer maintenant. Si nous localisons cette fonction de balle de tirage, nous savons que ces deux lignes de code à la toute fin sont responsables du déplacement de notre balle. Chaque fois que la balle est attirée sur la toile, nous allons déplacer la valeur de balle X et aussi la valeur de la boule Y. De plus, nous savons comment changer la direction. Si nous les actualisons maintenant, cela ira dans une direction positive. Nous pouvons également changer de direction en changeant n'importe laquelle de ces valeurs en nombre négatif. Ce sera la base du rebondissement de nos murs et aussi de la pagaie. Pour ce faire, plutôt que d'avoir nos valeurs codées en dur comme celle-ci, mettons à jour cette fonction pour utiliser plutôt des variables. Déplacez x vers l'emplacement x et déplacez y dans la direction y. Cela facilitera la mise à jour dynamique de ces valeurs dynamique de ces valeurs afin que nous puissions inverser la direction en cas de collision. En haut, configurons ces variables. Tout d'abord, déplacez x et, pour l'instant, gardons les mêmes valeurs codées en dur que celles que nous avions auparavant. Ce mouvement était égal à un. Mais vous pouvez les mettre à jour pour qu'il s' agisse de valeurs différentes si vous le souhaitez. Également une variable supplémentaire pour le rayon de la balle, qui est une valeur initiale de 10. Nous en aurons beaucoup besoin lorsque nous calculerons les collisions. Cela est dû au fait que la balle est positionnée à partir du centre du cercle, mais lorsqu'elle monte vers le haut, par exemple, faut également prendre en compte le rayon de la balle. Nous pouvons également mettre à jour nos fonctions pour utiliser le rayon de la balle juste en dessous. Redescendez pour dessiner la balle. Ici, nous définissons le rayon de la balle sur quelques pixels, ou nous pouvons le mettre à jour pour utiliser notre variable. Maintenant, passez à la fonction pour vérifier s'il y a collision. Mettons en place une fonction en bas juste au-dessus de notre boucle. Je vais appeler ma fonction en collision. Cette fonction sera alors chargée de vérifier quatre choses différentes. La première chose à faire est de rebondir en haut et en bas. Nous voulons également vérifier s'il y a contact à gauche ou à droite de notre jeu Nous devons donc vérifier le score sur l'axe X. Cela vaut pour les deux côtés. Nous voulons également vérifier s'il y a contact avec les joueurs de pagaie. Il en va de même pour la pagaie de l' ordinateur. Bien. Nous savons maintenant ce que nous voulons faire dans cette fonction, et nous pouvons l'appeler juste en dessous de notre boucle. Cela signifie que nous allons vérifier tous les points de collision à n'importe quelle trame donnée de notre boucle. Nous vérifierons le contact chaque fois que quelque chose bouge. Nous avons maintenant un peu de travail à faire à l'intérieur de cette fonction de collision. Juste avant de commencer à définir nos quatre points de contact, je vais dessiner une balle temporaire sur la toile. Nous pouvons déplacer cela et nous assurer que nous avons les bons points de contact. Tout d'abord, nous commencerons une nouvelle voie. Il n'interfère pas avec les autres dessins. Le style de remplissage. Tu peux faire ça n'importe quelle couleur que tu veux juste pour qu'elle se démarque, je vais opter pour le violet. Puis ctx.arc pour dessiner notre balle sur la toile. N'importe quel emplacement pour l'instant, n'importe quel emplacement aléatoire est correct, 10 pixels sur les x et y comme dans le rayon de la balle. Pour faire notre cercle, l'angle de départ peut être zéro, puis 2 fois math.pi. Dessinez ceci, la dernière chose que nous devons faire est ctx.fill, save, et il y a une balle dans le coin supérieur de notre écran. OK. Les premiers points de contact que nous voulons vérifier sont le haut et le bas de la toile. En commençant par le bas. Déplacons notre balle temporaire vers le bas de la toile et veillons à ce que nous ayons le bon point de collision. L'axe des X n'a pas d' importance pour l'instant, mais nous devons changer la direction Y. Mais tout d'abord, nous allons passer dans la toile.hauteur, sauvegarder ça. Comme vous pouvez le voir, cela poussera cela du bord de la toile, donc nous devons tirer cette moitié arrière du rayon de la balle. Nous l'avons déjà stocké sous forme de variable, sorte que nous pouvons le déduire de la hauteur de notre toile. On y va. C'est le point de collision au bas de la toile que nous voulons surveiller. Maintenant, nous pouvons utiliser cela dans une déclaration if. Nous voulons vérifier si quelque chose est vrai. La vérification que vous voulez faire est si la balle y, qui est l'emplacement au centre de la balle, est supérieure à l' est supérieure emplacement de la balle que nous venons de dessiner ; si la balle est allée plus loin plus bas que ce point actuel, il est alors considéré comme hors du canevas, et nous devons ensuite faire pivoter la direction. Juste avant de faire cela, nous allons tester cela fonctionne correctement avec le journal de la console de hit bottom. Accédez à la console et actualisez le navigateur. Dès que le point de contact arrive au bas du canevas ou s'éteint, nous voulons que notre journal de console soit exécuté ici. Rebondir cette balle est assez simple. Actuellement, lorsque le jeu commence, la balle va dans une direction positive ou descendante, mais nous pouvons inverser cela en changeant ce chiffre par un nombre négatif, comme nous l'avons vu au début de cette vidéo. Maintenant, dans ce contexte et puisque nous travaillons sur la direction Y, nous pouvons remplacer notre journal de console en mettant à jour la variable. déplacement y, qui est l'emplacement actuel, est égal à une version négative du mouvement y. Ce qui inversera effectivement le positif négatif et négatif en positif. Gardons ça et essayons ça. Rafraîchissez-vous, et nous devrions voir un rebond tout en bas. Bien sûr, il sort toujours du coin du côté droit de la toile, mais c'est très bien. Nous pouvons maintenant voir que notre rebond fonctionne. Bien. Nous devons maintenant tenir compte de la collision sur le dessus de la toile. À l'intérieur de l'instruction if, nous ajouterons une condition or. Cette fois, nous voulons vérifier si l'emplacement de la balle y touche simplement le haut de la toile. Nous ne voulons pas vérifier si cela est égal à zéro, car si c'était le cas, cause du rayon de la balle, cela serait moitié sur la toile. Nous voulons également déduire le rayon de la balle. Nous vérifions si c'est inférieur ou égal à zéro. Si c'est le cas, il devrait rebondir sur le dessus de la toile. Actuellement, lorsque nous rechargeons le navigateur, la balle se déplace vers le bas. Mais pour les tests, nous pouvons déplacer la direction Y du pour devenir un nombre négatif, ce qui entraînera le déplacement de la balle vers le haut. C'est la base de la façon dont nous pouvons faire rebondir une balle. Il s' agit surtout de vérifier que nos points de contact sont corrects et de s'assurer que nous prenons également en compte le rayon de la balle. Nous allons maintenant ajouter une condition pour vérifier si la balle frappe le côté gauche ou droit de notre canevas, et plus tard, cela augmentera les scores. Celui-ci sera basé sur l' emplacement de la balle x du côté gauche et droit de notre jeu. Revenez à notre fonction, qui est en collision. Ensuite, juste en dessous de nos commentaires, nous voulons également placer dans une déclaration if. Tout d'abord, vérifier si le ballon est entré en collision sur le côté gauche. Actuellement, notre balle temporaire est exactement là où nous voulons que le point de contact soit, qui est défini sur une valeur de 10. Tout cela fonctionne bien car notre rayon de balle est fixé à 10. Nous voulons vérifier si l'emplacement stocké à l'intérieur de la variable de la boule x est inférieur ou égal au rayon de la balle. fait, si la balle se trouve à gauche là où elle se trouve maintenant, nous voulons ensuite passer un score à l'ordinateur. Nous vous fournirons un moyen de le faire plus tard, mais pour l'instant, il suffit de coller dans un journal de console de partition informatique. Ensuite, en dessous, une section autre. Ce sera pour notre vérification pour voir si le joueur a marqué en déplaçant le ballon vers la droite. Pour celui-ci, nous passons à l'emplacement de la balle x. Nous voulons nous assurer que la balle touche le côté droit de la toile. Encore une fois, la position x verticalement se trouve au centre de la balle. Nous voulons également vérifier si la boule x plus le rayon de la balle est supérieur à la largeur totale de notre toile. Nous pouvons saisir cela avec la largeur de la toile. Ensuite, en plaçant un journal de console pour le score du joueur, testez-le dans la console. C'est un peu plus gros. Vous avez une faute de frappe sur la ligne 85. Cela veut juste être ensemble, sans espace entre les deux. Essayons ça maintenant. Si le ballon se déplace vers la droite, nous voyons qu'il y a un score de joueur. Si nous montons à notre emplacement x tout en haut, il peut s'agir d'un nombre négatif. Nous pouvons ensuite tester le score de l'ordinateur. On y va. Tout cela fonctionne maintenant comme prévu. Les choses commencent vraiment à prendre forme maintenant avec notre jeu. Ensuite, nous allons jeter un coup d'œil à une autre section importante, qui consiste à faire rebondir la balle sur les pagaies en mouvement. 10. Contact de paddle: De la même manière pour rebondir sur les côtés de notre toile, nous devons également tenir compte que la balle frappe également nos pagaies mobiles. Cela implique un peu plus de travail car nous devons tenir compte non seulement de la balle qui frappe l'avant de la pagaie, mais nous devons également vérifier que l'emplacement de la balle se situe entre le haut et le bas du pagaie aussi. En commençant par la pagaie de notre joueur, pour vérifier que nous travaillons correctement, nous pouvons utiliser cette balle temporaire, placer sur le devant de la pagaie et vérifier que nous avons le bon point de contact. Sautez dans la fonction collide et en haut, nous avons cet arc qui crée cette balle temporaire. Supprimez cette valeur et placez-la sur la face de la pagaie, nous devons la déplacer sur l'axe X, le rayon de la balle, plus la largeur de la pagaie qui est stockée dans la variable largeur de la palette. Rafraîchissez et tout d'abord, nous pouvons voir ce mouvement, et pour confirmer cela, nous pouvons le déplacer au centre en ajustant l'axe Y égal à la hauteur du canevas divisée par 2. On y va. Nous avons maintenant le bon point de contact pour notre pagaie. Nous pouvons utiliser ce point de contact maintenant pour vérifier si la balle est inférieure ou égale à cette valeur X. Encore une fois, nous avons mis en place une déclaration if comme celle-ci. Aller à notre commentaire, qui est vérifier le contact du joueur paddle. L'instruction if va vérifier si la position X de la balle est inférieure ou égale à la position X que nous venons de définir, c' est-à-dire le rayon de la balle plus la largeur de la palette à cette extrémité. En gros, vérifier si cette position de balle est là où elle est maintenant ou inférieure à. À l'aide de notre variable Move X, nous pouvons ensuite inverser cela en définissant cette valeur égale à l'équivalent négatif. Rappelez-vous ici, même si nous ne faisons que vérifier l'emplacement X, la balle doit donc rebondir verticalement du haut vers le bas tant qu'elle est en ligne avec la face de la pagaie. Rafraîchissons cela et testons cela. Nous devrions maintenant voir un rebond avant qu'il ne touche l'arrière de la toile. Bien, donc tout fonctionne bien maintenant. Ensuite, nous voulons limiter ce rebond à se produire uniquement lorsque la balle se trouve entre le haut et le bas de la pagaie. Nous avons déjà une variable dans notre jeu appelée position du joueur, qui doit être initialement au centre de la toile qui, pour nous, serait maintenant 200. Lorsque les touches haut et bas sont enfoncées, le point central de la pagaie met à jour la variable de position du joueur afin que nous sachions toujours où c'est. Par exemple, disons qu' il est actuellement à 100, nous devons ensuite vérifier où se trouve la balle par rapport à la pagaie. Maintenant, nous pouvons utiliser 70 comme position de balle. Retirez cette valeur de la pagaie et nous pouvons voir que la différence est de 30 pixels, et c'est un nombre positif. Dans un autre exemple, on peut voir ici que la position de la balle est 125. Encore une fois, retirez cela de la position du joueur, mais cette fois, le résultat est négatif de 25. Mais pourquoi ce calcul est-il important ? Eh bien, c'est important parce que si ce numéro est à la hauteur de la pagaie, il devrait y avoir un contact. Nous aurions la moitié de la hauteur de la pagaie puisque nous travaillons à partir de la ligne médiane et nous devons également tenir compte du rayon de la balle. C'est là que les choses peuvent devenir un peu plus complexes. Ici, nous avons ajouté le rayon ou les valeurs déduites, selon le côté de la balle, les valeurs positives et négatives. Dans la diapositive précédente, nous avions également les mêmes chiffres positifs et négatifs à prendre en compte. Cela signifie que nous pourrions écrire un code complexe pour rendre compte de cela, ou nous pourrions rendre notre vie beaucoup plus facile en changeant chaque comparaison pour qu'elle soit positive ou que nous pouvons le faire avec une méthode mathématique appelée absolue. Pour voir comment fonctionne math. absolus, sautons dans la console et essayons cela. Placer un journal de console avec la valeur mathématique, delta abs en passant un nombre positif tel que deux. Maintenant, si nous nous actualisons et allons dans la console, nous pouvons voir que nous avons la valeur de deux , comme prévu dans la console. Cependant, si nous changeons cette valeur par une valeur négative, je le retirerai simplement de la boucle pour qu'elle ne se répète pas. Rafraîchir, nous pouvons également voir la valeur est toujours un nombre positif de deux. Peu importe si nous transmettons un nombre positif ou négatif, nous obtenons toujours l' équivalent positif affiché. Le fait est que nous pouvons utiliser ces méthodes absolues pour nous assurer que le calcul entre la balle et la pagaie est toujours positif, qui signifie que nous pouvons toujours comparer cette valeur à une valeur positive. action consistant à ajouter le rayon de la balle plutôt que de devoir travailler si nous voulons ajouter ou déduire cela. au code et voyons à quoi cela ressemble. Nous pouvons supprimer notre journal de console, puis sauter dans notre instruction if en haut. Actuellement, nous ne vérifions que l'exposition, mais nous devons maintenant vérifier la position Y avec l'opérateur « AND ». Nous allons maintenant vérifier si la balle se situe entre le haut et le bas. Passer en maths aux abdos. Nous obtenons toujours un chiffre positif. Ce que nous voulons faire, c'est vérifier si la position du ballon Y enlève la position du joueur. Rappelez-vous que cela va nous donner cette valeur entre la balle et la pagaie, mais ce sera toujours un nombre positif contrairement aux diapositives. Ensuite, nous vérifions si cette valeur est inférieure ou égale à la hauteur de la pagaie, divisée par 2 plus le rayon de la balle. La raison pour laquelle nous pouvons ajouter le rayon de la balle, et nous n'avons pas à nous soucier de l' emporter en fonction du côté où il est parce que nous convertissons toujours ce chiffre en plus, par conséquent, nous ajoutons toujours le rayon de la balle. Faisons une sauvegarde et essayons cela à l'intérieur du navigateur. Tout d'abord, la balle peut jouer automatiquement, et si nous déplacons maintenant la pagaie en place, elle devrait maintenant créer un point de contact entre la balle et la pagaie. Je sais que cela peut sembler difficile, mais sans cette conversion positive, nous n'aurions pas besoin de dupliquer cela pour que la balle soit au-dessus ou au-dessous de la ligne médiane de la pagaie. Maintenant que cela fonctionne, la prochaine chose à faire est de vérifier le point de contact de la pagaie de l'ordinateur. Celui-ci va être assez similaire, donc nous pouvons copier l'instruction if complète dans la section lecteur et la coller juste en dessous du commentaire de l'ordinateur. abord, l'exposition doit être terminée à droite. Nous devons maintenant vérifier si la position de la balle est maintenant plus grande, ajouter le rayon de la balle pour en tenir compte. À droite du plus grand ou de l'égal, nous devons vérifier si la balle dépasse la face de la pagaie de l' ordinateur. Nous pouvons le faire en vérifiant la toile, largeur, l'emporter la largeur de la pagaie. Il devrait s'agir de la position X prise en charge et pour la position y, cela va être assez similaire. Nous voulons également vérifier si cela se situe entre le haut et le bas de la pagaie plutôt que de la vérifier par rapport à la position du joueur, nous voulons le vérifier par rapport à la position de l'ordinateur. Bien sûr, celle-ci n'a pas encore été créée alors passons au sommet où nous avons créé nos variables et nous pouvons dupliquer position de notre joueur et modifier pour qu'elle devienne la position de l' ordinateur. Encore une fois, le placer au centre de la toile est tout à fait parfait pour le début de notre jeu. La position de l'ordinateur sera également mise à jour dans une prochaine vidéo. Pour nettoyer cela, nous pouvons maintenant revenir à la fonction collide et retirer notre balle temporaire, nous n'en avons plus besoin. Il va être assez difficile de vérifier si la pagaie de l'ordinateur fonctionne car nous ne pouvons pas déplacer cela vers la balle. Mais une chose que nous pouvons faire juste pour vérifier les choses et vérifier que nous avons un rebond, c'est de changer la position Y du déplacement pour qu'elle soit égale à zéro. Cela déplacera la balle horizontalement dans notre jeu, hors de la pagaie des joueurs. Excellent, donc le rebond fonctionne maintenant sur nos deux pagaies. Maintenant, il change en arrière, négatif 1 puisque nous savons que cela fonctionne. Nous avons traversé l' une des parties les plus difficiles de notre jeu. C'est peut-être un peu difficile à prendre en compte, mais c'est vraiment un élément essentiel pour que notre jeu fonctionne correctement. Ce n'est pas parfait. Nous n'avons pas pris en compte certains cas de bord, exemple si la balle frappe tout le haut ou le bas de la pagaie, mais nous ne voulons pas aller trop loin dans ce parcours. Ensuite, dans la vidéo à venir, nous examinerons comment suivre les scores, tant pour le joueur que pour l'ordinateur. 11. Les résultats du suivi: Nous utilisons déjà la méthode FiltText pour dessiner notre partition sur le Canvas et nos scores sont également stockés dans des variables. Nous savons également quand le joueur ou l'ordinateur marque en frappant la balle sur le côté gauche ou droit de notre Canvas. La prochaine étape logique consisterait à mettre à jour ces variables lorsque cela se produit, puis à mettre à jour le score à l'écran, ces variables où le joueur marque ainsi que le score de l'ordinateur dans le Cloud. Fonction, localisons cela à l'intérieur de notre script. Juste ici. Nous sommes actuellement connectés à la console lorsqu'un joueur ou l'ordinateur a marqué. À l'intérieur de notre déclaration if else if, nous pourrions directement mettre à jour nos variables de score à l'intérieur, mais au lieu de cela, je vais appeler une fonction. Cette fonction vérifiera également d'autres choses comme si le jeu est terminé et replacera la balle au centre. Nous allons remplacer ces deux journaux de console par une fonction que nous allons créer bientôt appelée partition. La fonction de score devra également être informée de l'un de nos joueurs qui a marqué. Pour notre premier, nous passerons dans l'ordinateur sous forme de chaîne, et pour notre deuxième, si le joueur a marqué, nous passerons le joueur à cette fonction. Bien sûr, nous devons créer cela et simplement faire sauter notre fonction Cloud, créer notre fonction appelée score. Ici, nous allons prendre le joueur. N'oubliez pas que cette variable de joueur sera égale à notre ordinateur ou à notre lecteur. Nous pouvons vérifier lequel d'entre eux a été transmis avec une déclaration if. Si la variable de lecteur est égale à l'ordinateur, nous ferons quelque chose à l'intérieur, c' est-à-dire mettre à jour nos variables. N'oubliez pas qu'au début, nous avons examiné le score du joueur et le score de l'ordinateur, et ici, nous mettrons à jour ces deux variables en fonction de la valeur d'une. Celui-ci est destiné à la partition informatique. Augmente avec plus-plus. Sinon, nous mettons à jour le score du joueur. au navigateur et testons celui-ci. Nous laisserons la balle s'évanouir et la pagaie. Nous pouvons voir que le score de l'ordinateur augmente très vite. Cela se produit parce que chaque fois la balle bouge ou chaque fois nous avons un nouveau cadre à l'intérieur de notre boucle, nous vérifions si la balle est derrière le joueur ou la pagaie de l'ordinateur. Puisque nous sommes continuellement derrière la pagaie, le score ne cessera d'augmenter. Pour résoudre ce problème, nous pouvons remettre la balle au centre de notre jeu afin de pouvoir recommencer. La façon dont nous pouvons le faire à l'intérieur de notre fonction de score est de réinitialiser l'emplacement de la balle avec BallX est égal à la toile. Largeur divisée par 2, placez cela au centre. Nous ferons également de même pour l'emplacement de Bally. Cette fois, cela est basé sur la hauteur de la toile, également divisée par 2. Essayons ça. Rafraîchissez, laissez la balle passer derrière la pagaie, celle-ci est réglée sur une, puis la balle est replacée au centre pour que notre jeu continue. Il s'agit d'un moyen simple de suivre les scores de notre jeu. Dans la prochaine section, nous allons examiner comment ajouter un score maximal afin de savoir quand le jeu est terminé et que le gagnant apparaîtra sur la toile. 12. Mettre le jeu: La première étape vers la fin notre jeu consiste à définir nombre de points que nous voulons atteindre au maximum. Pour cela, nous avons besoin d'une variable au sommet appelée total gagnant. Const WinningTotal et ma valeur sera égale à trois, donc le premier joueur à atteindre trois sera le gagnant et nous pourrons mettre à gagnant et nous pourrons jour cela à l'intérieur de notre fonction de score. Revenons à notre fonction. Ici, nous devons vérifier si le score de notre ordinateur ou le score joueurs est égal à ce total de victoires. En plaçant une instruction if pour commencer, vérifiez si le score de l'ordinateur est égal à notre nouvelle variable qui est gagnante. Si c'est le cas, nous allons faire quelque chose, sinon, nous passerons une clause d'autre chose et cette fois, nous vérifierons si le score du joueur est également égal à notre total de victoires. Ce que nous voulons faire ici, nous allons mettre fin au jeu en créant une fonction EndGame. De toute évidence, nous n'avons pas encore créé cela, mais il s'appelle EndGame. Tout comme lorsque nous avons créé notre fonction de score, qui a accueilli le joueur, nous allons également faire de même pour la fonction EndGame. C'est la gauche, cette fonction sait laquelle a été gagnante. Celui-ci, c'était l' ordinateur, puis nous transmettrons également le mot-clé retour pour sortir des instructions. De la même manière, l' instruction else-if appellera également notre fonction EndGame mais passe au joueur. Si c'est vrai et la raison pour laquelle la fonction EndGame a besoin de savoir lequel de ces joueurs a été le gagnant, c'est parce que nous allons changer les couleurs selon lequel a été le gagnant. Comme vous pouvez le constater, nous avons la couleur rouge pour le lecteur et la couleur bleue de l'ordinateur. Cela sera reflété à l'intérieur de notre texte de fin de jeu. Créons cette fonction juste en dessous. N'oubliez pas que cela est passé soit par l'ordinateur, soit le joueur, qui sera stocké à l'intérieur d'un gagnant , puis transmet une déclaration if else. La section if nous permet de vérifier si le gagnant est égal à l'ordinateur. Il suffit de retirer ces crochets, nous ne les avons pas dans la section autre. Si le gagnant est égal à l'ordinateur, qui est la couleur bleue, nous allons alors modifier la couleur du texte pour afficher les résultats en bleu. CTX.FillStyle est égal au bleu, puis dans la section autre, nous modifions FillStyle pour qu'il soit égal à la couleur rouge pour correspondre à notre joueur. Maintenant, la raison pour laquelle nous changeons cette couleur de texte est que nous allons afficher du texte sur le canevas une fois le jeu terminé. Cela va simplement indiquer au joueur s'il a gagné ou s'il a gagné l'ordinateur. Juste avant le texte, nous allons définir la ligne de texte pour qu'elle soit égale au centre. Placez-le au milieu du canevas, puis nous créons nos textes avec une fonction appelée FillText. Ouvrez le backtick pour que nous puissions insérer une variable, car nous devons également insérer la variable du gagnant selon que l'ordinateur ou le joueur a gagné. Disons que le gagnant est, un deux-points, puis utilisant le symbole dollar et les accolades en JavaScript, nous pouvons insérer la variable du gagnant. Ce sera le gagnant est le joueur ou le gagnant est un ordinateur. Après les backticks, ajoutez une virgule puis nous pouvons la placer au centre du canevas. Tout d'abord, l'exposition, qui est la toile.largeur divisée par deux. Sur la position Y est le toile.hauteur divisée par deux. Navigateur automatique et nous pouvons essayer cela. Rafraîchissez et écartons cela pour atteindre la valeur de trois. C'est un, deux et trois. Vous pouvez tout de suite voir que nous voyons notre texte au départ, mais il disparaît rapidement et le jeu continue. La raison pour laquelle cela se produit est que notre boucle est toujours en cours d'exécution. Nous n'avons rien fait pour arrêter notre intervalle de réglage. Une fois que le joueur ou l'ordinateur atteint le score de trois, nous dessinons toujours le texte très brièvement sur le canevas, mais lors de la prochaine itération de notre boucle, nous exécutons cette méthode de texte clair, qui efface tous les textes de l'écran , puis redessiné toutes nos fonctions de jeu. Comment empêcher cette boucle de fonctionner ? Eh bien, l'intervalle défini peut être arrêté par une méthode appelée intervalle clair. Cela implique de stocker une référence à cet intervalle lorsque nous le créons , puis d'utiliser cette référence pour l'arrêter ultérieurement avec un intervalle clair. Cette référence peut être stockée à l'intérieur d'une variable et, comme toutes les autres variables, elle sera tout en haut. Appelez ce GameLoop puis, en bas, définissez cette variable pour qu'elle soit égale à notre intervalle afin que GameLoop soit égal à notre SetInterval. Ici, nous appelons toujours SetInterval comme avant, mais cela va renvoyer un identifiant unique stocké à l'intérieur de cette variable. Nous pouvons le voir si nous le connectons à la console, sautons dans le navigateur et actualisons dans la console et que nous voyons la valeur d'un. Si plusieurs intervalles étaient exécutés, chacun de ces identifiants renvoyés sera unique. De retour à notre fonction EndGame, cette variable peut maintenant être transmise à ClearInterval pour arrêter l'exécution de la boucle. Nous allons le faire dès le début de notre fonction. Transmettez n'importe quelle méthode qui est ClearInterval, qui prend notre ID, intervalle de notre magasin de référence appelé GameLoop. Maintenant, nous pouvons tester cela, actualiser, attendre que cela atteigne une valeur de trois. Bien. Nous pouvons voir tout de suite le jeu se bloque et nous avons toujours le texte à l'écran. Pour améliorer cela, il serait préférable de dégager la balle, dégager les pagaies, ainsi que ces lignes pointillées en arrière-plan. Même le score sur le vainqueur sur la toile. C'est quelque chose que nous savons déjà faire à partir de notre boucle où nous nettoyons notre toile, nous effacerons Rect. Copions ceci et placons cela à l'intérieur de notre fonction EndGame. Cela ne fera que la méthode ClearInterval, elle effacera tout le reste du Canvas. Comme cela se produit avant de dessiner notre texte, nous devrions toujours le voir à l'écran mais il serait utile voir la partition en haut. Eh bien, c'est assez simple. Nous savons également comment dessiner la partition avec cette fonction juste ici. Après avoir effacé notre toile, rafraîchissez-vous et nous essaierons encore une fois. Super, la toile a été effacée nous voyons toujours le texte. Nous voyons toujours le score final au sommet. que tout cela fonctionne maintenant, nous allons maintenant commencer et redémarrer notre jeu. 13. Démarrer et recommencer le jeu: Au lieu que notre jeu commence immédiatement dès le chargement du navigateur, il serait plutôt agréable de déclencher cette action avec le clavier en utilisant quelque chose comme la barre d'espace. Nous allons maintenant examiner comment procéder et comment redémarrer notre jeu une fois terminé. J'utiliserai la barre d'espace pour commencer le jeu, mais vous pouvez passer à une autre touche si vous préférez. Regardez à l'intérieur de nos instructions de commutation. nous allons écouter la flèche vers le haut et la flèche vers le bas. Nous pouvons créer un nouveau boîtier pour écouter la clé que nous avons choisie pour commencer le jeu. Donc, cette fois sous forme de chaîne. La clé que je vais écouter est la barre d' espace, mettre un deux-points, puis nous allons appeler une fonction pour démarrer le jeu appelée démarrage du jeu. À la clause break, si c'est vrai, et juste avant de créer cette fonction, il serait également plus logique maintenant renommer cette nouvelle partie de la fonction pour qu'elle soit autre chose, car elle fait d'autres choses. plutôt que de simplement déplacer notre joueur vers le haut ou vers le bas. Je veux aller chercher une touche manipulée enfoncée. N'oubliez pas que nous devons également changer cela dans notre auditeur clé juste au-dessus. Bien sûr, nous devons créer cette fonction de démarrage du jeu. Configurez cela juste en dessous. Si nous y réfléchissons, que voulez-vous que ce jeu fasse ? Eh bien, puisque nous sommes actuellement incapables rafraîchir le jeu et qu'il commence actuellement sans rien faire, nous voulons maintenant déplacer cette boucle, que nous appelons en bas dans notre fonction. Plutôt que ce jeu commence tout de suite, nous pouvons le découper et placer dans notre fonction de démarrage du jeu, sorte que cela ne se produira que lorsque la barre d'espace est pressée. Essayons ça. Si nous nous actualisons, nous ne voyons pas encore le début du jeu. Appuyez sur la « barre d'espace » ou la clé que vous avez choisie et nous y allons. Au lieu de cet écran vide, il devrait y avoir quelques instructions au début. Informez l'utilisateur qu'il doit appuyer sur la barre d'espace pour commencer. Cela n'a pas besoin d'entrer dans une fonction ou autre chose, nous pouvons simplement l'ajouter en haut de notre script. Mais ce ne sera quelques textes et nous utiliserons FillText, mais nous allons d'abord définir la couleur avec FillStyle égale au rouge. Vous pouvez changer cela si vous préférez. CTX.Font définira cette chaîne comme une chaîne ou 30 pixels pour la taille de police avec un style Helvetica. Placez-le au centre avec une ligne de texte, puis dessinez notre texte avec la méthode FiltText et transmettez une chaîne. Nous n'avons pas besoin d' insérer de variables, donc les guillemets réguliers sont corrects , puis le texte de l'espace presse à lire. Pour les positions x et y, il s'agit de la largeur de la toile divisée par deux, et divisez également la hauteur par deux. Essayons ça. Il y a notre texte. Appuyez sur « Espace » et notre texte est également effacé car si vous vous souvenez en bas, le canevas est effacé avant chacune de nos boucles. De retour à notre fonction de démarrage du jeu, il y a aussi quelques autres choses qui doivent aller à l'intérieur d'ici. La première étape au sommet consiste à réinitialiser tous les scores. Le score du joueur est égal à 0 et le score de l'ordinateur est également égal à 0. L'utilisation d'intervalles clairs effacera également tous les minuteurs existants stockés dans notre variable de boucle de jeu . Essayons ça. Rafraîchissez, appuyez sur « Espace » pour commencer, et tout semble bien. Tous les scores sont mis à jour, mais il y a un petit problème si nous continuons appuyer sur la barre d'espace pendant le jeu. Vous pouvez voir en haut, si nous appuyons sur la barre d'espace maintenant, le score est réinitialisé chaque fois que nous commençons la partie. Ce n'est pas un problème si nous voulons réellement commencer la partie, mais si le joueur appuie accidentellement dessus pendant la partie, il va redémarrer. Nous pouvons y contribuer en gardant trace de cela avec une variable. Laissez le jeu s'exécuter initialement comme une valeur fausse, donc nous allons changer cela pour qu'il soit vrai pendant que le jeu est en cours d'exécution, ce qui empêchera la barre d'espace de redémarrer notre jeu. Nous devons coller cela dans quelques endroits différents. Tout d'abord, nous recherchons notre fonction, qui est la fin du jeu. Comme vous l'imaginez, puisque c'est la fin du jeu, nous pouvons également définir cette variable en cours d' exécution de jeu comme égale à false dans la fonction de démarrage du jeu. Maintenant, tout en haut, nous voulons vérifier si cette variable de jeu est égale à true. Passez ceci à l'intérieur d'un énoncé if, si le jeu est en cours d'exécution. Nous n'avons pas besoin de dire égal à vrai ou quoi que ce soit de ce genre. Si la valeur du jeu en cours d'exécution est égale à true, le code à l'intérieur de ces accolades s'exécutera. Ou nous pouvons également le placer sur une seule ligne et retirer les accolades bouclées, puis revenir hors de cette fonction. Fondamentalement, si le jeu est égal à vrai, nous sauterons ensuite vers cette fonction sans exécuter le reste du code ci-dessous. Cela empêchera le jeu de redémarrer. Si ce n'est pas le cas, s'il est égal à faux, nous voulons ensuite lancer le code ci-dessous. Nous dirions également dans notre jeu en cours d'exécution la variable être maintenant égale à true. Par conséquent, cela empêchera cette fonction de s'exécuter une deuxième fois, si la barre d'espace est pressée pendant le jeu. Nous pouvons essayer cela, rafraîchir, appuyer sur « Espace », laisser le ballon passer derrière pour le score et si nous essayons maintenant d'appuyer sur l'espace, le jeu n'est pas réinitialisé. Mais nous avons un autre problème à résoudre et à voir cela, si nous redémarrons le jeu et attendons d'atteindre le score de trois, passons trois fois derrière. Tout va bien, nous avons le texte du gagnant est ordinateur, le score de 3-0. Mais maintenant, si nous redémarrons le jeu avec la barre d'espace, le jeu redémarre, mais nous avons toujours un score initial de 1. Mais vous vous attendez à ce que ce soit zéro puisque nous avons mis cela à l'intérieur de notre fonction. Pourquoi pensez-vous que cela se produit ? Eh bien, pour en savoir plus, passons à notre fonction de score. La fonction de score est le seul endroit où nous mettons à jour l'une de ces variables. La fonction de partition est appelée juste au-dessus de notre fonction collide. Plongez dans la fonction collide et nous appelons cela avec notre section « if else ». C'est la seule fonction ou la seule pièce de code appelée dans notre jeu, qui est responsable de la mise à jour de ces variables. Nous savons que c'est une raison laquelle notre score est initialement fixé à un. Pourquoi pensez-vous que cette fonction de score est appelée au début d'une nouvelle partie ? Eh bien, la raison pour laquelle cela se produit est parce que dès que le match est terminé, notre balle est soit finie sur le côté gauche pour un score, soit sur le côté droit. Nous avons cela contrôlé par la variable BallX. Oui, dans notre fonction de démarrage du jeu, nous réinitialisons initialement ces deux scores, mais dès le début d'une nouvelle partie, l'emplacement de BallX touche toujours l'un des côtés, ce qui entraîne la fonction de score à courir à nouveau. Corriger ce problème est assez simple, il suffit de réinitialiser l'emplacement de BallX au centre lorsque le jeu démarre. Le jeu commence juste après une partie en cours et avant de réinitialiser nos scores, nous pouvons également réinitialiser la valeur de BallX pour qu'elle soit au centre de l'écran. Essayons ça. Nous arrivons à la fin de notre match, qui est un score de trois. Jeu terminé, nos deux scores sont maintenant réinitialisés comme prévu. Lorsque vous construisez des jeux comme celui-ci, vous trouverez souvent des cas de pointe comme celui-ci sur lesquels travailler et il s'agit généralement d'essayer différentes choses et de voir laquelle fonctionne. Ensuite, nous allons examiner comment appliquer un mouvement aléatoire à la balle lorsqu'elle rebondit. 14. Direction aléatoire: d'avoir ces variables MoveX et MoVey prédéfinies rend le début du jeu beaucoup plus prévisible. Nous savons parce que nos valeurs négatives 2 et nos valeurs négatives 1 vont diriger la balle. Nous pouvons améliorer cela en rendant cela beaucoup plus aléatoire à l'intérieur d'une fonction. Créons une fonction juste en dessous nos textes, appelée mouvement aléatoire. Le but de cette fonction est de définir ces deux variables avec des valeurs aléatoires, ce qui signifie que nous pouvons maintenant supprimer ces valeurs initiales. Pour définir ces variables, nous devons appeler cette fonction RandomMovement dans GameStart. Localisez cette fonction, appelez notre nouvelle fonction, qui réinitialisera nos deux variables avec une nouvelle valeur chaque fois que notre jeu démarre. Revenez à notre fonction RandomMovement qui génère nos deux valeurs x et y, tout en déclenchant la balle dans des directions imprévisibles. Cela ralentira et accélérera un peu le jeu en raison des valeurs et des mouvements aléatoires, c'est-à-dire que le mouvement x peut être plus élevé ou plus bas, ce qui le ralentit ou plus vite. Encore une fois, créez deux variables ou deux constantes. Il s'agit d'un x aléatoire, qui sera un nombre aléatoire compris entre deux et quatre. Fondamentalement, nous allons définir notre valeur x sur 2 ou 4, ainsi qu'une direction positive ou négative. Nous pouvons le faire en accédant à une fonction mathématique JavaScript appelée aléatoire. Math.Random générera un nombre aléatoire compris entre 0 et 1. Mais nous allons multiplier cette valeur par 3. Cela nous permettra de générer un numéro à partir d'un. Nous pouvons également arrondir cela en réduisant cette valeur. Dans la méthode math.ceil, collez-le dans. Maintenant que nous arrondissons notre valeur, cela nous donnera une valeur de 1, 2 ou 3. Puisque nous voulons la valeur de 2-4, nous pouvons en ajouter une autre pour nous donner notre nombre aléatoire. Essayons ça. En plaçant un journal de console de RandomX, enregistrez et actualisez le navigateur, accédez à la console. Pour cela, nous devrons également appeler notre fonction GameStart. Appuyez sur Espace, la valeur de 2, la valeur de 4, 2, 3, 2. Tout cela semble fonctionner correctement. Pour notre emplacement RandomY, nous pouvons dupliquer cette ligne, changer le nom de la variable par RandomY. RandOMy va être un nombre compris entre 0 et 2. Nous n'avons pas besoin de l'ajouter plus 1. Nous pouvons utiliser math.round pour arrondir ce nombre, qui nous laisse une valeur comprise entre zéro et deux. Nous devons également créer deux autres variables. Cela va décider si nous avons une direction positive ou négative. Actuellement, nous avons juste une valeur x et y positive, mais cela va également augmenter l'imprévisibilité. Const Plus ou Minusx. Encore une fois, nous allons accéder à la fonction JavaScript aléatoire, qui nous donnera un nombre compris entre 0 et 1. En utilisant l'opérateur conditionnel JavaScript, nous pouvons vérifier si cette valeur est inférieure à 0,5, ce qui devrait être à peu près 50/50. Si c'est le cas, nous retournerons ou stockerons à l'intérieur de cette variable une chaîne de caractères négatifs. Si ce n'est pas le cas, ce sera positif. Puisqu'il s'agit d'un nombre compris entre 0 et 1, il y a environ la moitié ou 50/50 de chances que cette valeur soit négative ou positive. Nous ajouterons également cela à nos chiffres prochainement. Dupliquez ceci et la seule différence cette fois-ci est le nom de variable y. Ensuite, nous pouvons utiliser ces variables pour fusionner et créer nos nouvelles valeurs de variables MoveX et MoVey. Tout d'abord, la variable de MoveX. Puisque nous renvoyons également une valeur de chaîne pour le positif ou le négatif, nous allons l'envelopper dans une fonction numérique pour nous assurer que nous obtenons toujours un nombre plutôt qu'une chaîne. En commençant par x, PlusorMinusX, ajoutez ceci à notre numéro aléatoire. Par exemple, il peut s'agir d'une valeur négative puis d'une valeur de deux ou d'une valeur positive, ou de n'importe quel nombre compris entre cette plage. Dupliquer. Nous allons le faire pour MoVey. Il change également pour être un plus ou moins y et la valeur de yaléatoire. Il s'agit d'un nombre positif ou négatif aléatoire dans les deux directions, mais je vais ajouter un petit morceau de hasard de plus. Créez une constante pour stocker cela dans un nombre appelé aléatoire. Il suffit de définir cette valeur égale à math.random. La raison pour laquelle nous procédons est d'ajouter une petite valeur aléatoire à ces deux variables. Ajoutez-le à notre premier numéro, puis à notre deuxième numéro, cela devrait être tout ce dont nous avons besoin. Actualisez le navigateur. Chaque fois que nous commençons la partie, nous devrions voir le ballon se déplacer dans une direction légèrement différente. Nous l'avons à gauche, nous l'avons droit, nous l'avons en train de monter, de descendre. Vous pouvez également constater que nous avons différentes vitesses en fonction des valeurs réelles de ces deux variables. Ce n'est pas fini pour notre caractère aléatoire. Un peu plus tard , nous verrons comment ajouter un mouvement aléatoire à la direction de la balle lorsqu'elle rebondit sur les murs et aussi sur la pagaie. En parlant de pagaies, c'est ce que nous allons couvrir dans la vidéo à venir, où nous allons voir comment déplacer automatiquement la pagaie de l'ordinateur. 15. Mouvement informatique: En haut de nos scripts, nous avons le lecteur et l' ordinateur positionnés à l'intérieur de ces variables. Ces deux valeurs définissent les positions des pagaies au début de nos jeux, être au centre verticalement. La position du joueur que nous avons déjà prise en charge avec les mouvements à l'intérieur de notre poignée Fonction Touche pressée. Nous pouvons maintenant ajouter un peu de mouvement à l'ordinateur pour rendre le jeu un peu plus jouable. Faisons cela dans une fonction de pagaie d' ordinateur de dessin, qui est juste ici. Tout ce que nous faisons actuellement est de définir la toile.hauteur divisée par 2, places au centre. De toute évidence, nous ne voulons pas faire cela comme ci-dessus. Nous voulons également remplacer cette option par une variable. Nous enlevons la hauteur de la toile et la remplacons par la position de l'ordinateur. Cela signifie que tout comme la position du joueur ci-dessus, chaque fois que cette variable est mise à jour et que nous appelons ensuite la boucle, la nouvelle position de la pagaie de l'ordinateur sera également reflétée. La prochaine étape consiste à mettre à jour cela. Mais comment pouvons-nous décider comment déplacer cela ? Eh bien, nous pourrions devenir très complexes et inclure des choses comme une intelligence artificielle, mais nous ne voulons pas que ce cours soit trop complexe. Au lieu de cela, nous allons remplacer cela par un simple mouvement suivi. Pour cela, en bas juste au-dessus de notre boucle, je vais créer une nouvelle fonction qui est appelée à chaque intervalle. Le nom de la fonction est déplacer l'ordinateur. Cela doit également être appelé à chaque intervalle, afin que nous puissions saisir le nom de notre fonction et l'ajouter à notre boucle. Le suivi le plus basique peut se faire quelque chose comme ça. Nous pouvons mettre à jour notre variable de position de l' ordinateur pour qu'elle soit égale à l'emplacement de la balle Y. Cela permettra de suivre efficacement l'emplacement verticalement de notre balle, déplacer la pagaie de l'ordinateur pour suivre cela, nous pouvons voir Ça ? Si nous revenons à notre navigateur, rafraîchissez-vous et vous pouvez maintenant voir la pagaie de l'ordinateur monter et descendre en fonction de l' emplacement de la balle. Super, tout fonctionne bien, mais comme vous pouvez le constater, cela crée un jeu impossible pour le joueur de gagner. Encore une fois, nous pourrions devenir aussi complexes que nous le voulons avec un mouvement informatique. Mais pour rester simple, je vais simplement ajouter une déclaration if-else. Cette déclaration if-else mettra progressivement à jour la position de l'ordinateur selon que la balle est au-dessus ou au-dessous de la pagaie. Nous pouvons supprimer cela, ajouter une déclaration if. Où nous vérifions si la position de l' ordinateur est actuellement en dessous de l'emplacement actuel de la boule Y. N'oubliez pas que l' axe Y commence à 0 en haut et descend dans une direction positive. La balle est sous la pagaie. Nous pouvons ensuite mettre à jour la variable de position de l'ordinateur pour se déplacer vers la balle. Cela peut être fait en ajoutant plus, plus, sinon si c'est la direction opposée, nous voulons déplacer la pagaie de l' ordinateur dans le sens inverse. Nous pouvons le faire à l'intérieur d'ici. Essayons ça. Rafraîchissez et testez cela. Rebondissez le ballon. Vous pouvez voir que l'ordinateur est en mouvement. C'est maintenant un jeu gagnable. Vous pouvez également le faire si vous voulez accélérer ou ralentir les pas que la pagaie de l'ordinateur prend pour aller vers la balle. Mais cela est complètement facultatif, et cela peut également devoir être réglé en fonction de la vitesse d'exécution de la boucle. Super. Il s'agit d'un mouvement informatique très basique et ensuite, il améliorera encore plus le jeu en ajoutant un peu de hasard supplémentaire au mouvement de la balle. 16. Rebondissement aléatoire: Le ballon rebondit actuellement sur tous les murs et les pagaies est un peu prévisible. Actuellement, chaque rebond est à 90 degrés, qui nous laisse souvent dans une situation où la balle peut parfois tourner en carré, et elle rebondit sur les pagaies sans même avoir besoin de bouger eux. Pour améliorer cela, nous ajouterons un peu de hasard à notre rebond de pagaie pour rendre notre jeu un peu meilleur. Pour cela, nous avons besoin d'une fonction. Créons une fonction n'importe où dans notre code avec le nom de générer un rebond aléatoire. Ajoutez un peu de hasard. Nous n'avons pas besoin de faire quoi que ce soit de trop fou ou de complexe. Si nous passons d'abord à notre fonction collide, les deux dernières instructions if vérifient le contact de la pagaie pour le joueur et aussi pour la pagaie de l'ordinateur. Actuellement, lorsqu'il y a contact entre la balle et la pagaie, tout ce que nous faisons avec ces deux lignes de code ici, c'est inverser la direction. Pour ce faire, nous définissons une direction positive sur un négatif et aussi l' inverse. Pour ajouter un peu de hasard, il suffit d'ajouter une petite valeur positive ou négative à l'une de ces lignes, que nous pouvons revenir de notre nouvelle fonction. À l'intérieur de cette fonction, nous allons d'abord générer un nombre compris entre zéro et un. Zéro et un nous donne deux options, que nous pouvons ensuite utiliser pour décider si nous allons créer un nombre positif ou négatif. Encore une fois, nous utilisons Math.Floor pour arrondir notre numéro. Le nombre que vous souhaitez arrondir va être généré avec Math.Random pour nous donner un nombre compris entre zéro et un. Rappelez-vous tout Math.Random génère un nombre aléatoire compris entre zéro et un. Il n'en inclut pas réellement un. Par exemple, il ira jusqu'à 0,999. nombre aléatoire baissé nous donnera toujours une valeur de zéro. Pour obtenir une valeur comprise entre zéro et un, nous pouvons multiplier cette valeur par deux, installer à l'intérieur d'une constante appelée nombre zéro à un. Ces deux options peuvent désormais être utilisées pour créer un symbole positif ou négatif, comme nous l'avons vu plus tôt. Stockez-le à l'intérieur d'une constante, positive ou négative. Ensuite, nous allons saisir notre variable d'en haut, soit zéro, soit un. Nous disons que si cela est égal à l'une des options nulles, en utilisant les instructions conditionnelles JavaScript, la première option retournera une valeur négative. S'il n'est pas séparé par un deux-points, un symbole positif sera renvoyé. Si cela renvoie un zéro, nous obtiendrons un symbole négatif. S'il en retourne un, nous obtiendrons un symbole positif. N'oubliez pas que puisque nous retournons une chaîne, nous devons également envelopper les résultats à l'intérieur de la fonction numérique. Assurez-vous que nous récupérons toujours un nombre plutôt qu'une chaîne. Nous retournons le symbole positif ou négatif, et nous ajoutons ce symbole égal à une petite valeur. Encore une fois, nous utilisons Math.Random pour nous donner un nombre compris entre zéro et un et aussi pour en faire un peu plus d' une valeur plus petite, nous allons diviser cela par deux. Si nous retournons cette valeur à partir de notre fonction, cela retournera un nombre positif ou négatif compris entre la valeur zéro et 0,5. Étant donné que cette valeur est si petite que nous revenons maintenant, comment savoir si cela est ajouté à notre rebond ou non ? Eh bien, nous pouvons d'abord le voir avec un journal de console. Si nous examinons notre fonction Cloud et dans nos deux dernières sections que nous avons examinées précédemment, nous pouvons ajouter cela au contact de la pagaie du joueur juste au-dessus de l'endroit où nous effectuons le changement de direction à un journal de console avec la valeur mu de x. Copiez ceci et faites exactement la même chose juste après. Chaque fois que la balle rebondit sur la pagaie du joueur, nous devrions voir deux journaux de console avec la valeur mu de x. N'oubliez pas que nous n'avons ajouté aucune valeur aléatoire différente à l'un de nos changements de direction. encore. Ces deux valeurs doivent être exactement identiques ou opposées en termes de positif ou de négatif. Essayons ça. Rafraîchissez-vous et sautez dans la console. Commencez notre jeu et établissez maintenant un contact entre la flaque d'eau, et nous pouvons voir que nous avons un négatif 2,49 et aussi l'équivalent positif. Comme ces chiffres sont exactement les mêmes, cela prouve que tout ce que nous faisons est inverser la direction de 90 degrés. Mais si nous continuons maintenant à ajouter notre petite valeur aléatoire, nous devrions voir deux valeurs différentes à l'intérieur de la console. Maintenant, nous allons ajouter notre petit volume qui est renvoyé par notre fonction appelée générer des limites aléatoires. Il en va de même pour la pagaie de l' ordinateur. Maintenant, si nous testons cela, nous devrions voir la petite valeur être renvoyée et ajoutée à partir de notre fonction, ce qui devrait être légèrement différent nous donner un changement de direction différent avec notre ballon. Rafraîchir Maintenant, si nous prenons des contacts, nous y allons. Super. Il se passe beaucoup de choses ici, mais si on y jette un coup d' œil par deux. Les deux premières paires, il y a un négatif de 3,55, qui s'inverse pour être une valeur positive de 3,22. Ces deux valeurs étant légèrement différentes, cela signifie que notre valeur de rebond est maintenant entrée en vigueur. Si nous examinons la deuxième paire, encore une fois, nous ne changeons pas seulement la valeur de positive à négative, nous modifierons également légèrement n'importe quelle valeur limite. Cela vaut également pour toutes les paires qui suivent. petit changement peut faire une grande différence et rendre notre jeu beaucoup moins prévisible. Empêchez également le ballon de se déplacer dans un carré sur la toile. Ensuite, nous allons jeter un coup d'œil à la façon dont nous pouvons restreindre notre pagaie afin qu'elle ne disparaisse pas de la toile. 17. Maintenir la palette sur la toile: Alors que nous approchons de la fin de notre jeu, l' une des touches finales que vous souhaitez ajouter est de restreindre les pagaies des joueurs afin qu'elles ne sortent pas du haut ou du bas de la toile, lorsque nous appuyons sur le bouton touches haut et bas. Pour cela, nous allons passer la fonction HandleKeyPressed pour ajouter notre code nécessaire pour restreindre cela. Cette fonction HandleKeyPressed est la zone de notre code qui détecte si nous appuyons sur la flèche vers le haut ou la flèche vers le bas. L'énoncé d'interrupteur est responsable du déplacement des joueurs pagayés vers le haut ou vers le bas. À l'intérieur, en commençant par le boîtier flèche vers le haut, nous allons ajouter du code pour empêcher les pétales des joueurs de sortir du haut de la toile. Pour ce faire, avant de déplacer notre position de joueur par une valeur particulière, nous ajouterons une instruction if pour vérifier cela. Si quelque chose est vrai, nous voulons revenir hors de cette section sans bouger la position du joueur. Il y a quelque chose que nous voulons vérifier , c'est la position du joueur. N'oubliez pas que lorsque nous parlons la variable de position du joueur, il s' agit de la ligne centrale de la pagaie. Pour trouver le haut de la pagaie, il faut déduire la moitié de la hauteur de la pagaie et trouver le bas de la pagaie pour s'assurer qu'elle ne descend pas du bas de la toile. Nous devons également ajouter la moitié de la hauteur de la pagaie. Nous pouvons utiliser cela à l'intérieur de notre déclaration if. sortant du premier emplacement à l'intérieur de notre déclaration if. Tout d'abord, nous allons saisir la position actuelle du joueur. Comme nous l'avons vu dans les diapositives, nous déduirons la hauteur de la pagaie divisée par 2. Cela nous donnera le point le plus haut de notre pagaie. Nous devons vérifier si c'est inférieur ou égal à 0, ce qui constitue le haut de notre toile. Si c'est le cas, nous y reviendrons sans déplacer la position du joueur. Ensuite, dans la section flèche vers le bas, nous ferons une déclaration similaire si nous vérifions la position du joueur, cette fois nous allons ajouter la moitié de la hauteur de la pagaie, puisque nous avons affaire au bas de la pagaie. Ici, nous vérifions si le bas de la pédale est égal ou supérieur au bas de la toile, que l'on peut trouver avec toile.height. Plus grand ou égal, sur le canvas.height, si c'est vrai, il reviendra de nouveau hors de cela sans déplacer la position du joueur, sorte qu'il n'ira pas plus loin que le bas de la toile. Testez cela, appuyez sur la barre d'espace et nous irons tout en haut. La pagaie de place ne va pas plus loin que le haut. Déplacez cela vers le bas. Il est maintenant limité aux joueurs de pagayer pour rester dans la zone de toile. 18. Réflexions finales: [MUSIQUE] C'est maintenant pour la fin de notre jeu et félicitations d' avoir atteint ce stade. Nous avons maintenant appris quelques concepts fondamentaux et même si notre jeu n'est pas parfait, il est jouable, nous avons appris tous les concepts dont nous avons besoin pour commencer le développement de jeux JavaScript. J'espère que ça vous a plu. J'espère que vous avez acquis de nouvelles compétences et que vous avez hâte de vous plonger dans la création d'autres jeux basés sur JavaScript. Merci d'avoir pris ce cours, et je vous verrai dans le prochain.