Apprendre à faire des jeux en faisant Frogger | Michael Mcguire | Skillshare

Vitesse de lecture


1.0x


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

Apprendre à faire des jeux en faisant Frogger

teacher avatar Michael Mcguire, Author | Programmer

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.

      Introduction à Frogger

      0:59

    • 2.

      Ne téléchargez pas d'installation

      3:06

    • 3.

      Ce que nous ferons

      2:01

    • 4.

      Créer l'arrière-plan

      9:10

    • 5.

      Créer le joueur

      6:02

    • 6.

      Mouvement des joueurs

      20:07

    • 7.

      Créer les voitures

      25:47

    • 8.

      Mort et respawn des joueurs

      23:33

    • 9.

      Mort dans l'eau

      7:44

    • 10.

      Plateformes aquatiques

      21:56

    • 11.

      L'espace Win

      6:59

    • 12.

      Réparation de fuites de mémoire

      9:56

    • 13.

      Système de scoring

      13:06

    • 14.

      Score HUD dans le jeu

      8:19

    • 15.

      Vie de jeu HUD

      15:25

    • 16.

      Minuterie et bonus

      10:48

    • 17.

      Audio Frogger

      10:28

  • --
  • 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.

141

apprenants

--

projets

À propos de ce cours

Embarquez dans un voyage passionnant dans le monde du développement de jeux avec notre cours complet Skillshare "Apprendre à faire des jeux en faisant Frogger avec Godot Engine." Si vous avez déjà rêvé de créer vos propres jeux vidéo, ce cours est votre passerelle pour transformer ces rêves en réalité.

Dans ce cours pratique, vous plongerez dans le domaine fascinant du développement de jeux à l'aide du puissant et facile à utiliser Godot Engine. Que vous soyez débutant ou avez une certaine expérience dans le jeu, nos instructeurs experts vous guideront étape par étape tout au long du processus de développement du jeu, pour vous assurer de gagner le savoir et les compétences nécessaires pour créer votre propre version du jeu d'arcade classique, Frogger.

Points forts :

  1. Introduction à Godot Engine : familiarisez-vous avec Godot Engine, un moteur de jeu open source polyvalent, et apprenez à mettre en place votre environnement de développement.

  2. Les bases du game design : comprendre les principes de base du game design : comprendre les mécaniques de jeu, le level design et l'interface utilisateur.

  3. Programmer avec GDScript : découvrir les bases de GDScript, le langage de script facile à apprendre de Godot, et l'utiliser pour créer la logique du jeu, gérer les entrées des joueurs et gérer les états de jeu.

  4. Graphiques et animation 2D : apprendre à créer et animer des personnages et des objets de jeux 2D, y compris l'emblématique grenouille Frogger, ainsi que des obstacles et des environnements.

  5. Son et musique : plongez dans le monde de l'audio-design, en ajoutant de la musique de fond, des effets sonores et des commentaires pour améliorer l'expérience de jeu globale.

  6. Création de niveau : techniques de design de niveau maîtriser lorsque vous créez des niveaux stimulants et visuellement attrayants pour votre jeu Frogger.


    À la fin de ce cours, vous aurez non seulement créé votre propre jeu inspiré de Frogger mais également acquis des compétences et des idées précieuses qui peuvent être appliquées à un large éventail de projets de développement de jeux.
    Rejoignez-nous et donnez vie à vos rêves de développement de jeux avec le cours Apprendre à faire des jeux en faisant Frogger avec Godot Engine sur Skillshare !

Rencontrez votre enseignant·e

Teacher Profile Image

Michael Mcguire

Author | Programmer

Enseignant·e
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. Introduction à Frogger: Très bien, dans cette section, il s'agit en fait d'un module issu d'un cours plus vaste, et ici nous allons créer Frogger afin de vous aider à apprendre comment créer des jeux à l'aide du moteur Gatto en recréant un jeu classique des années 80, je crois Cela fait longtemps. Mais vous pouvez voir qu'avec cela, nous allons augmenter le mouvement des joueurs. Musique Nous avons des zones de vent, des détecteurs de collision. Nous allons pouvoir utiliser des cartes en mosaïque. Comprenez le fonctionnement des cartes en mosaïque. Nous avons un visuel qui représente le temps. Nous avons des sponsors en cours. Il y a des collisions en cours. Nous avons un peu de physique en cours, nous pouvons suivre les vies et les scores, ainsi que des multiplicateurs de fond Nous avons beaucoup de choses à faire dans ce petit jeu classique simple ici. J'espère donc que vous apprécierez notre progression. Et j'espère que vous devriez au moins avoir une connaissance de base de la programmation, sinon des scripts G D utilisés, qui vous aideront à suivre le rythme et à ne pas vous perdre autant. 2. Ne téléchargez pas d'installation: Bienvenue aux futurs développeurs. Si nous voulons développer des choses à l'aide du moteur Gatto, agisse de jeux vidéo ou de logiciels de bureau Cop, première chose dont nous aurons besoin qu'il s' agisse de jeux vidéo ou de logiciels de bureau Cop, la première chose dont nous aurons besoin, c'est le moteur Gatto Voyons donc comment nous pouvons procéder pour le télécharger. Maintenant, la première chose ou la première façon de l' obtenir est de télécharger Gatto depuis le site officiel, en allant simplement sur goto engine.org Tout comme nous le voyons ici. Juste ici, sur l'écran. Et une fois ici, vous verrez la section de téléchargement en haut de notre écran. Ainsi que deux boutons de téléchargement au centre. Nous avons le LTS, qui est trois points, et le dernier, qui est le 4.1. Nous utiliserons la dernière version, la 4.1. Il n'y a rien de mal à la version X en trois points. Il est encore en cours de développement, et il s'agit d'un support à long terme. Cependant, si vous deviez utiliser cette version en suivant, il se peut que certaines fonctions ou certaines choses que nous écrivons portent noms différents ou n' existent même pas dans l'ancienne version. Gardez donc cela à l'esprit, et c'est je vous recommande d'utiliser la version 4.1 au fur et à mesure. C'est bon. C'est donc la version stable et la version 4.1 est sortie. Vous pouvez donc appuyer sur le bouton de téléchargement le plus récent ou sur l'onglet de téléchargement en haut. Les deux vous amèneront à cet écran ici. C'est bon. Alors allez-y et téléchargez-le. Tout ce dont nous aurons besoin puisque nous allons utiliser le langage de programmation GD Script Tout ce dont nous avons besoin, c'est de la version standard ici avec le bouton bleu. Et la différence entre celle-ci et la version .net est que la version .net supporte également C Et si vous deviez l'utiliser, vous devrez faire défiler la page vers le bas et sélectionner le .net requis pour l'utiliser, ainsi que, de préférence, des programmes externes à Rachel Codin. Ce sont juste un tas de choses supplémentaires dont nous n'avons pas besoin lors de ce cours Donc, si vous voulez l'obtenir sur le site Web, vous pouvez continuer et simplement appuyer sur le bouton du moteur Goto pour 4.1 sur la version standard Maintenant, il y a une deuxième façon de l'obtenir. Et cela viendrait de Steam. Vous pouvez vous rendre sur Steam et le télécharger à partir de là si vous le souhaitez, et cela nous donnera la version standard. Par défaut, la version point p n'est pas disponible dans la version Steam . Vous n'avez donc pas à vous inquiéter de toute confusion à ce sujet si vous l'obtenez sur Steam. 3. Ce que nous ferons: Très bien, cette semaine, nous allons faire bouger les choses. Une option, au lieu de nous contenter de quelques textos comme nous l'avons fait la semaine dernière. Cette semaine, nous allons créer ou recréer un vieux jeu en deux D des années 80 appelé Frogger Maintenant, cela va nous donner l'occasion de travailler sur des collisions de manettes entre deux joueurs en D. Peut-être que certaines particules avec lesquelles nous pouvons travailler répondront, comme vous le voyez. Si vous n'avez jamais joué à Frog auparavant ou si vous n'en avez jamais entendu parler. Vous voyez ici que nous allons travailler avec une interface utilisateur pour notre écran tête haute. Nous avons des points dont nous allons avoir besoin pour suivre ma souris pendant une seconde. Mais non seulement cela, mais nous allons aussi voir cela va montrer que nous avons un certain nombre de prog par joueur Nous n'avons évidemment pas de pièces dedans, mais c'est essentiellement le jeu Ici, nous avons deux petites zones de sécurité. Dans cette petite zone violette, nous avons une route au milieu qui comporte cinq voies de circulation alternant entre les deux. Si la grenouille est percutée par l'une de ces voitures, elle meurt et le joueur perd une vie. Ils atteignent le sommet. Ils peuvent sauter sur les tortues et les troncs pour atteindre la zone de sécurité. S'ils atterrissent dans l'eau, c'est également un échec. Maintenant que tu y penses, je suppose que ça n'a pas trop de sens puisque c'est une grenouille. Mais voilà. C'est l'idée de ce que nous allons créer, et c'est ce qu'est Frog, si vous n' y avez jamais joué ou si vous n'en avez jamais entendu parler. 4. Créer l'arrière-plan: Très bien, alors allons-y et sautons. Commencez par créer Frogger. La première chose à faire est de vous assurer de télécharger les ressources et de simplement déplacer ce dossier de sprites dans votre projet Encore une fois, je viens de créer un dossier vide spécialement pour Frogger, mais je vous recommande de créer un nouveau projet pour De cette façon, vous pouvez l'exporter sans aucun problème à l'avenir. Très bien, donc la première chose à faire, d' autant plus que nos sprites sont si petits, c'est de les réduire. Ou ne pas les réduire, mais réduire notre écran à la taille d'une borne d'arcade. Pour ce faire, nous allons passer au projet et accéder aux paramètres de notre projet. Très bien, ça devrait commencer comme ça avec les paramètres avancés désactivés. Et vous verrez sur le côté gauche qu'il suffit de descendre dans la section d'affichage et d'entrer dans la fenêtre. Et nous allons régler la largeur à 336 et la hauteur à 240. D'accord, c'est la taille d'un écran de borne d' arcade. La résolution d'écran est suffisante pour cela, et elle sera parfaite pour nos petits sprites Très bien, une fois que vous avez réglé cela, vous pouvez continuer et simplement fermer et vous verrez notre petite boîte bleue est devenue beaucoup plus petite qu'elle ne l'était auparavant. La première chose que nous allons faire ici est de créer l'arrière-plan. Nous allons donc créer toute la route, l'eau, la médiane violette comme on l'appelle, la zone de pointage sur laquelle nous devons nous diriger. Nous allons mettre tout ça en place. De cette façon, nous pouvons passer directement à la configuration et au fonctionnement de notre gameplay dans les prochaines vidéos. Très bien, nous allons donc avoir besoin d'une scène en deux D. Cliquons sur deux D, et cela nous donnera un nœud deux D pour notre nœud racine. Si vous voulez continuer et le renommer, vous le pouvez. Tu peux l'appeler Maine si tu veux. Game Manager, peu importe. Si vous le souhaitez vraiment, vous pouvez simplement le laisser comme nom par défaut. Je vais me laisser par défaut pour le moment. Afin de créer cela dans notre petit arrière-plan, je vais créer une nouvelle carte des temps. Je vais appuyer sur le bouton plus et nous allons sélectionner Tile Map dans le menu déroulant, voir dans notre nœud rideau. Sélectionnez une carte en mosaïque. Allez-y double-cliquez dessus et sélectionnez-le. Maintenant, j'ai l'esprit en place. Je vais aller de l'avant et supprimer tout cela. 1 seconde. Très bien, vous devriez donc ressembler à ceci lorsque vous avez sélectionné une carte en tuiles. Si vous n'avez pas de sélection, allez-y et sélectionnez-la. Ce que nous allons faire, c'est nous diriger vers la droite. Nous allons passer au set de carreaux ici. Il reste vide pour le moment, mais ce que nous allons faire, c'est cliquer dessus et passer au nouveau jeu de vignettes. Ensuite, cliquez sur ce jeu de vignettes, et cela nous amènera ici. Maintenant, ce dont nous avons besoin ici, c'est que nous allons avoir besoin du petit objectif, l'eau, de la route et du terre-plein. Si nous allons dans notre sprite et que nous faisons défiler la page vers le bas, nous verrons la maison, le terre-plein, la route et l'eau Si vous maintenez simplement le contrôle, vous pouvez tous les sélectionner en même temps comme ceci et simplement les faire glisser dans notre boîte de vignettes ici. C'est bon. Avant de pouvoir réellement les utiliser ici. Comme vous pouvez le constater, nous ne pouvons pas cliquer sur quoi que ce soit. Ce que nous voulons faire, c' est faire défiler la page avec ma molette de défilement, ou vous pouvez ajouter un signe négatif. La première chose à faire est de nous assurer que nous sommes sur l'onglet de configuration ici, sélectionner notre eau et de cliquer dessus. Et maintenant, il y a une boîte orange autour de lui. Cela signifie que nous avons une tuile que nous pouvons désormais utiliser. Je vais faire la même chose pour la route, la maison médiane, Brow directement de l'autre côté Maintenant, la maison est un peu plus grande. Je pense que c'est peut-être plus grand que ça. Voyons voir, qu'est-ce qu'on a ? 2062 gros. Comment est-ce ? Je pense que ça va faire l'affaire. Parfaitement amusant. C'est bon. Ils y vont déjà ? J'ai un 16 sur 24 pour cette tuile. Très bien, alors maintenant, si nous cliquons sur la carte en bas. Notre écran ici. Nous devrions maintenant pouvoir cliquer dessus et commencer à dessiner nos sprites Cliquez sur ma médiane, cliquez sur ma vignette violette ici. Il suffit de faire glisser une ligne vers le bas. Allez sur ma route, il y a cinq niveaux de circulation. Nous avons besoin de cinq rangées de notre bière noire 4.5 Si nous revenons à notre image, nous avons alors une autre couche de violet, cinq couches d'eau, 12345 Ensuite, nous avons une couche d' eau qui se remplit sous notre maison. Faisons une couche de plus là-bas. Allons récupérer notre maison. Allez-y, cliquez sur un spray et faites glisser votre souris dessus pour sélectionner les trois. Mettons-le en place. Oh, regarde ça. Il semble que nous ayons ce problème. Eh bien, qu'est-ce qui se passe ? Nous sommes en train de remplacer nos tuiles hydrauliques ici. n'est pas ce que nous voulons faire. Nous devons réellement dessiner cela sur une autre couche. Et je vais juste continuer et finir le remplir avec notre eau. Jusqu'en haut des deux dernières lignes. Je vais cliquer sur notre section d' accueil ici. Et nous ne voulons pas les remplacer, nous voulons construire sur cette base. Vous remarquerez qu'ici, sur le côté droit de nos cartes en mosaïque, il y a quelque chose qui indique la couche zéro. Et si nous avons une liste déroulante, il n'y a rien d'autre. Ce que nous voulons faire, c'est accéder à notre inspecteur de notre carte en tuiles, ouvrir la section des couches, cliquer sur Ajouter de nouveaux éléments. Maintenant, nous avons en fait une deuxième couche dans les cartes en tuiles avec notre ligne d' accueil sélectionnée. Nous pouvons accéder à la couche déroulante et cliquer sur la première couche. Maintenant, nous pouvons dessiner directement dessus sans affecter notre finale. Nous en avons sept. Juste pour m'assurer que notre rose, 1235, me va bien Si nous cliquons à nouveau sur notre numéro TD, rien n'est génial. Voici ce avec quoi nous travaillons. Si vous vous souvenez, lorsque nous examinons la configuration d'Alpro, à quoi elle ressemble, nous avons réellement notre score Ces informations sont affichées juste en haut, dans cette zone bleue vide, dans cet zone bleue vide, dans cet espace aquatique vide. Nous avons nos bûches, des tortues qui sautent à travers et qui nous aident à sauter par-dessus. à l'intérieur de ces petites zones vierges C'est à l'intérieur de ces petites zones vierges de la maison que nous pouvons marquer des points en attrapant nos grenouilles. Le violet est sûr et nos voitures vont apparaître sur notre route noire Très bien, nous avons maintenant notre arrière-plan configuré comme ça. C'est assez facile d'y aller. La nouvelle carte en mosaïque est vraiment agréable pour se lancer rapidement. Avant, nous n'avions pas de couches. Maintenant que nous le faisons, cela facilite beaucoup la mise en place de telles choses. Très bien, c'est notre contexte, allons-y et passons à la partie suivante. 5. Créer le joueur: Très bien, allons-y et créons notre lecteur. Mais avant cela, je vais continuer et enregistrer ceci. Il va contrôler S. Entrez dans ma grenouille ou mon support et enregistrez ma scène très rapidement. Très bien, donc pour notre joueur, notre joueur aura sa propre scène que nous ajouterons. Nous allons donc cliquer sur le signe plus en haut ou ajouter une nouvelle couture Nous allons passer à un autre car c'est un joueur que nous devons contrôler. Ce sera un corps de personnage deux D. C'est ce qu' on appelait autrefois un corps cinématique Dans d'autres moteurs, vous pouvez entendre des gens l'appeler ainsi, mais ici, on l'appelle maintenant un corps de personnage deux D. Maintenant, ce corps de personnage, nous avons ce triangle jaune qui donne un petit avertissement. Cela nous indique simplement que notre nœud n'a aucune forme. Il ne peut entrer en collision avec quoi que ce soit. Il n'y a aucune collision pour le moment, c'est bon. Sers-toi de ça pour y flotter. Ce que nous allons faire, c'est ajouter un, un autre nœud ici. Et ce que nous voulons ajouter, c'est un sprite. Deux D. Nous voulons ajouter un sprite animé. Nous voulons que notre sprite soit animé. Nous avons deux cadres pour cela. Allons-y et créons un sprite animé. Deux D sur le côté droit de l'inspecteur. Ouvrons la section d'animation plutôt que les images de sprites. Cliquons dessus et créons de nouveaux sprites frames. Ouvrons ensuite ces cadres de sprites en cliquant simplement dessus Très bien, passons à notre animation par défaut , que je vais renommer pour qu'elle soit simplement inactive Ensuite, nous allons ajouter une nouvelle animation avec cette petite icône en bas. Je vais le renommer en Jump A Idle. Sélectionné. Je vais introduire Proger idle et G, jump Nous allons utiliser Proger Id, puis notre icône de saut Proger, et maintenant nous devrions pouvoir passer de l'un à l'autre chaque fois que nous voulons affronter ces ennemis Très bien, si nous jouons là-bas, nous sautons, nous faisons notre petit rebond gonflable Vous remarquerez peut-être que le sprite est un peu flou ici dans notre moteur Mais ici, nous pouvons voir que c'est censé être agréable et risqué. Eh bien, pour résoudre ce problème, nous pouvons continuer et nous pouvons simplement sélectionner tous nos sprites ici en même temps Depuis notre système de fichiers, allez sur le côté gauche pour l'importation ne soit une importation déplacée laissez-moi simplement continuer et vous faire savoir où se trouve cette partie. Très bien, donc si vous vous dirigez vers les paramètres de votre projet, où je passe directement aux paramètres de votre projet et que je trouve la section sur le rendu et la texture ici dans les paramètres avancés, ou en avons-nous besoin à ce sujet ? Non, on n'en a pas besoin pour ça. Nous voulons un filtre de texture par défaut ici, changez-le de linéaire au plus proche. Allez-y, fermez-le, et vous verrez vos sprites devenir très vifs Si vous voulez faire du pixel art comme celui-ci, il s' agit de la valeur par défaut que vous souhaitez définir dans les paramètres de votre projet. Et maintenant, nous avons un beau Roggio bien aiguisé. C'est tout ce dont nous avons vraiment besoin. Nous n'avons pas à nous inquiéter de la collision, de la détection ou de quoi que ce soit d'autre pour le moment. Nous nous en occuperons lorsque nous arriverons à cette partie. Donc je vais juste aller de l' avant et, ah, pour sauver ça. Et je vais juste appeler ce joueur. Maintenant, si je vais dans ma scène principale avec mon nœud deux D sélectionné. Je peux cliquer non pas sur cet avantage pour un nouveau nœud, mais sur la chaîne à côté. Cela nous permettra de citer une scène qui existe déjà pour nous. Ce sera la scène de nos joueurs. Maintenant, on peut y aller, le récupérer et on peut faire venir ce petit bonhomme. Nous pouvons jouer, nous pouvons faire ce que nous voulons avec ce petit bonhomme. Voyons donc quelle est notre transformation. Nous savons que c'est en valeurs de 16172, ne serait-ce pas 176 si nous sommes sur des valeurs de 16 Et je vais juste déplacer ma petite grenouille vers le haut. Allons-y. Concentrez-vous un peu plus là-dessus. Maintenant, j'ai ma petite grenouille dans ma scène principale avec mes antécédents et il est prêt à partir. Très bien, ça suffira pour celui-ci. Nous avons configuré notre joueur autant que nécessaire pour le moment . Nous passerons au suivant où nous aborderons la question de certains mouvements des joueurs. 6. Mouvement du joueur: Très bien, allons-y et nous allons créer le mouvement pour que notre petite grenouille puisse se déplacer vers le haut, le bas, la gauche, le bout, la Pour commencer, nous allons avoir besoin de quelques informations. Maintenant, si vous voulez utiliser les touches fléchées, alors I down, I left et I right existent déjà, mais je veux utiliser WASD Je vais donc accéder à mon projet et accéder à mes paramètres de projet, et je vais aller dans le mappeur d'entrée haut, pour ajouter une nouvelle action Et je vais juste taper Ajouter à gauche et à droite. Maintenant, pour chacune de ces actions, je vais simplement aller sur le côté droit et appuyer sur le bouton plus. Je vais cliquer sur le plus. Je vais juste appuyer sur mon clavier. Je vais vous montrer à quoi cela ressemble, ce que vous allez voir à partir de là. Voyons voir, c'est cette fenêtre ici. Je vais en parler plus haut. Voilà. J'ai juste appuyé sur la touche et c'est fait. Nous appuyons sur OK, nous descendons. Appuyez sur le signe plus, puis appuyez à nouveau sur la touche S. A gauche et D pour droite, nous avons maintenant le haut, le bas, gauche et la droite pour nos commandes. Nous pouvons fermer à partir de là. Notre joueur va avoir besoin d'un script. Et je vais prendre note ici de mon sprite animé au moment du saut, je ne me suis pas débarrassé du premier sprite, donc je vais juste prendre celui-ci les jambes écartées et mettre un script sur le côté du corps de notre personnage, deux D sur la scène de nos joueurs, nous en avons juste un vide comme ça Maintenant, ce que je vais faire, c'est créer une fonction appelée mouvement. C'est donc juste pour que nous puissions tout garder propre et organisé et que tous nos déplacements soient regroupés au même endroit. Nous allons faire pour prendre en compte les entrées ici, nous allons utiliser l'instruction if dans la même instruction if que nous utilisons beaucoup. Si alors nous voulons accéder à l'objet d'entrée ou à l'entrée de la classe d'entrée, nous voulons vérifier l'action. Nous voulons opter pour la libération. Il vient d'être relâché ou simplement pressé. L'un ou l'autre fonctionnera pour ce jeu, en particulier. Si nous appuyons sur l'action, c'est alors que le bouton est maintenu enfoncé. simple fait d'appuyer et de relâcher signifie, eh bien, suffit d'appuyer dessus quand, dès que le bouton est activé , vous l'appuyez dessus. Et relâcher signifie que le bloc de code va s'exécuter lorsque vous soulevez le doigt. Je vais simplement appuyer, essayons ça. Je vais utiliser le bouton et c'est une chaîne qui aurait dû apparaître. Automatiquement, c'était deux points. Nous pouvons donc y entrer et créer le bloc de code. Tout ce que nous allons faire, c'est faire deux choses. Nous devons déplacer notre petit rocher, nous devons le déplacer vers le haut de l'écran. Et nous allons augmenter d' un bloc et tout sera divisé en 16 blocs ou 16 tuiles. Nous allons donc déplacer notre grenouille vers le haut de 16 blocs. Dans ce cas, nous allons obtenir notre position. Si cela vous semble un peu plus logique, vous pouvez dire « position de soi » parce que vous vous déplacez vous-même, ce à quoi ce script est attaché en ce moment. Cela va nous donner une ordonnance en x et en y associée à deux nombres. Si nous cliquons sur le corps de notre personnage et regardons à l'intérieur de l'inspecteur en cours de transformation, vous verrez que nous avons un X et un Y qui correspondent à l'emplacement où ils se trouvent à l'écran. Si nous cliquons sur notre scène principale et que nous accédons au corps de notre personnage, vous verrez que sa position est 169,2 33 dans mon cas, c'est de là que nous partons Et nous allons en ajouter ou en soustraire pour le X ou le Y afin d'obtenir nos mouvements puisque nous voulons monter Lorsque nous appuyons, nous allons affecter le nombre, nous allons dire la position. Nous sommes seuls, nous voulons obtenir la propriété position, puis nous voulons en obtenir le numéro pour qu'il apparaisse à l'écran, nous devons en fait la soustraire Nous allons donc dire que moins est égal à cela. Nous pourrions dire que c'est égal à notre position y, c'est égal à la position y moins un certain nombre, dont notre nombre dans ce cas sera 16. Si nous devions simplement laisser les choses comme ça et diriger notre scène. Dommage que notre petite grenouille ne bouge pas. Pourquoi ne bouge-t-il pas ? J'espère que vous l'avez remarqué ou que vous l'avez compris avant que j' appuie sur le bouton de vol. Nous n'appelons jamais notre mouvement nulle part, donc nous ne vérifions jamais vraiment la présence de tout cela. Pour cela, nous allons simplement le mettre dans la fonction de processus ici. Le mouvement, et maintenant c'est ce qu'on appelle ça. Oups. Du moins, si nous pouvions l'épeler correctement. Allons-y. Si nous essayons de le lancer maintenant et que nous appuyons sur le bouton haut, qui pour moi est W, vous pouvez voir que nous allons de l' avant et que nous déplaçons nos 16 blocs à la fois. Nous gagnons. Il y a une petite grenouille là-haut. Maintenant, bien sûr, le problème est que nous sommes toujours en mouvement, mais nous ne pouvons pas revenir en arrière Nous n'avons aucune animation ou quoi que ce soit d'autre. Faisons en sorte que notre animation fonctionne là-bas. Comment jouons-nous notre animation ? Eh bien, si nous regardons notre scène de joueur, nous pouvons voir dans notre script que nous pouvons suivre cette ligne facilement, juste un niveau avant le sprite animé, deux D. Trouvons ce nœud La façon dont je l'ai déjà montré était d'utiliser ce signe du dollar. Ce serait le plus simple. Dès que vous commencez à taper un sprite animé, il apparaît. N'oubliez pas qu'il ne s'agit que d'un sprite animé deux D parce que c'est son nom Si je devais donner à cette banane un nom très mal orthographié, c'est ce que je devrais taper ici pour y accéder. Je vais juste remettre ce nom à Deft. Tout ce que nous allons faire, c'est faire appel à elle. Jouez, jouez. Vous verrez apparaître les animations que nous avons créées . Nous allons utiliser le saut. Nous essayons maintenant, juste avec cette seule édition de notre gamme, oups, nous devons vraiment jouer cette scène et non notre joueur Vous pouvez voir que nous faisons notre saut, mais nous sommes coincés dans notre saut Maintenant, c'est un peu décevant. Comment pouvons-nous y remédier ? Comment revenir à la normale ? Eh bien, nous pouvons le configurer de telle sorte que lorsque notre animation est terminée, nous revenions à notre forme inactive. Pour ce faire, nous allons devoir accéder au sprite animé de notre joueur Accédez à l'onglet nœud sur le côté droit et nous allons connecter un signal indiquant que cette animation est terminée. Si nous double-cliquons simplement dessus, une fenêtre contextuelle s'affichera pour connecter un signal ici. Nous allons simplement sélectionner le corps du personnage 2 sur lequel se trouve notre script et appuyer sur le bouton de connexion. Il va tout maintenir enfoncé pour utiliser mes touches fléchées pour l'afficher chaque fois que notre animation aura fini de jouer. Ce bloc de code va s'exécuter. Maintenant, ce que nous voulons qu'il se passe ici, c'est revenir à notre état d'inactivité où notre grenouille est assise là. est la même chose. Nous allons acheter notre sprite animé en deux D, nous allons appeler Play Cela ne servira à rien si nous essayons cela. Maintenant, que ferons-nous encore si nous jouons la bonne scène, comment nous tentons d'y parvenir Maintenant, nous voyons que nous avons maintenant ce petit saut qui apparaît lorsque nous traversons l'eau. C'est génial. Maintenant, le truc, c' est que notre idole va jouer constamment à ce stade. Notre idole joue puis c'est fini. Et comme c'est fini, ça va jouer, non, ça ne posera pas vraiment de problème. Cela pourrait être quelque chose à garder à l'esprit à l'avenir pour résoudre ce problème. Nous pouvons réellement résoudre ce problème avec un if pick. Et comme vous pouvez le voir dans mon petit document, je vérifiais des choses et je vais vous montrer comment faire. Je vais nettoyer ça. Tout ce que nous avons à faire, c'est de vérifier les sprites animés. Vous voulez le symbole du dollar ? S'il est animé, sprite, animation en deux D. Non, comment ça s'appelait ? Eh bien, si nous accédons à notre sprite animé, et d'ailleurs, vous pouvez y accéder Si vous maintenez simplement la touche Contrôle enfoncée et que vous cliquez sur le sprite animé deux D dans notre code, cela ouvrira la page de documentation de Voici ce que nous recherchons ici. Obtenez une animation. Nous voulons créer de l'animation. Comme vous le voyez, cela n'apparaissait pas. Parfois, il est utile de consulter la documentation de la façon dont nous voulons le faire si le sprite animé 2 est animé Si nous devions y jeter un œil, l' animation actuelle de la ressource sprite frames à sa valeur serait modifiée Compteur d'images, progression des images ou réinitialisation. Mais ce que nous voulons faire, c'est obtenir ce qu'est cette animation. s'agit essentiellement de nous renvoyer Il s'agit essentiellement de nous renvoyer l'animation en cours ou actuellement sélectionnée. Nous allons donc utiliser le double égal parce que nous voulons comparer tout ce qui nous est renvoyé et nous voulons écrire jump. Ensuite, lorsque nous jouons à notre mode inactif, nous allons simplement appuyer dessus, pour qu' il se trouve à l'intérieur de notre cadenas. Maintenant, nous allons essentiellement vérifier quand notre animation se termine. Si le mode actuel est jump, alors nous allons jouer au ralenti. Si on gère ça, on y va. Nous avons notre petit boing. Cela ressemble exactement à la même chose, mais nous n'allons pas jouer constamment l'animation inactive encore et encore lorsque l' animation inactive est jouée. N'oubliez pas qu'il ne joue qu'une fois, puis c'est terminé. Ce n'est pas en boucle. Si le vôtre, par exemple, tourne en boucle pour une raison ou une autre, lancez votre spray animé Et si elle tourne en boucle, vous pouvez voir notre souris ici. C'est parce que c'est activé. Il vous suffit donc de cliquer dessus pour qu'il soit blanc comme ça. S'il est bleu, c'est allumé. S'il est blanc, il est éteint. Maintenant, lorsque notre animation sera terminée, après avoir sauté, nous allons vérifier si notre animation actuelle est un saut. Si c'est le cas, nous jouerons au mode inactif une fois l'inactivité terminée. Cette instruction if ne sera pas vraie car lorsque nous obtiendrons une animation, elle sera inactive, pas sautée. Comme ce n'est plus vrai, nous n'allons rien faire d'autre. Nous n'allons pas continuer à rejouer indéfiniment indéfiniment cette fois. C'est une petite différence, une de ces choses qui se trouvent sur le backend et que le joueur ne remarquera jamais. Comme je l'ai dit, dans un petit jeu comme celui-ci, cela ne fera pas une grande différence, s'il y en a une qui soit perceptible. Mais c'est quelque chose qu'il vaut la peine de savoir à l'avenir. Mais quand vous voulez créer des jeux de plus en plus grands. Très bien, alors allons-y et nous pouvons maintenant obtenir notre bouton. Si nous nous contentons de copier-coller ceci, nous pouvons obtenir L si, au lieu d'un, si nous voulons appuyer sur le bas plutôt que sur le haut, nous voulons plus 16 au lieu de -16. Parce que si moins augmente, alors plus nous fera descendre Maintenant, nous pouvons monter et descendre. Maintenant, notre petite grenouille ne fait plus demi-tour, ce qui est un peu Mais nous pouvons facilement résoudre ce problème en ajoutant une ligne de plus ici. Nous pouvons le faire en parlant de sa rotation avant de sauter, nous pouvons obtenir une rotation automatique. Si nous regardons notre joueur, nous revenons à notre scène de joueur, cliquons sur le corps de notre personnage dans l'inspecteur. Si nous descendons, nous constatons qu'il y a une rotation ici. La rotation est exprimée en radians plutôt qu'en degrés. Ce que nous pouvons faire, c'est dire que la rotation est égale. Nous pouvons utiliser cette fonction intégrée appelée deg two red Cela a peut-être changé ici. On dirait que c'est le cas. On dirait qu'il a été renommé ici, deg two d. Il y a des soulignements dedans maintenant Prenons ensuite un argument sous forme de degrés. Si nous disons 180, ce sera un revirement complet On tourne à droite, ça va faire 90 degrés. Si vous tournez à gauche, nous serons à -90. Quoi qu'il en soit, nous devons passer à 180 ou à moins 180 Je vais juste opter pour 180 degrés ici. Cette fonction va convertir ces 180 degrés en radians afin qu'ils puissent être affectés à notre rotation ici Maintenant, une rotation complète en radians est de 3,14 et c'est de là que vient pi Il en serait de même ici, 180. Comme si nous devions simplement le copier. Supposons que la rotation soit égale à pi divisé par quatre, cela nous donnera une rotation. Pi divisé par deux, cela nous donnera la moitié de notre rotation ici en radians. Si je devais vous montrer qu' avec pi divisé par deux, on le divise dans l'autre sens, peut-être que c'est un peu plus de deux. D'habitude, je n' utilise pas les radians moi-même. Nous pouvons voir divisé par quatre. Nous avons compris ce petit angle bizarre. Cela peut parfois être un peu gênant lorsqu'il s'agit de radians, c'est l'une des raisons pour lesquelles je préfère utiliser les degrés pour radians, simplement parce que c'est quelque chose que je peux gérer un peu plus rapidement Comme vous le voyez, nous y voilà. Nous retournons le visage vers le bas. Mais maintenant, on n'est pas face à face. Nous devons donc maintenant corriger cela dans notre code. Nous ferons la même chose lorsque nous appuierons, nous mettrons notre rotation à zéro si nous devions jouer. Maintenant, allons-y. Maintenant, nous pouvons sauter vers le haut et nous pouvons sauter vers le bas. Et si nous voulions sauter à gauche et à droite ? Eh bien, nous pouvons les obtenir avec deux autres LC ici. Je vais juste les espacer pour qu'ils soient un peu plus lisibles. Allons-y. À partir de notre deuxième article, nous allons dire que s'il reste à agir, au lieu de modifier la valeur y, nous allons en fait modifier le x de notre position. Parce que x est à gauche et à droite, si nous allons à gauche, nous devons atteindre -16 ici, degrés par rapport au rouge Eh bien, nous pourrions régler ce chiffre à 270 juste pour rester sur le côté positif. Ce qui signifie notre dernier L ici. Lorsque nous appuyons sur la droite, nous allons modifier la position X au lieu du Y, nous allons passer à plus 16. Si nous nous déplaçons à droite, nous allons être pivotés à 90 degrés. Allons-y et essayons cela maintenant. Devrait voir. Maintenant, nous pouvons sauter dans les quatre directions dans lesquelles nous pouvons nous déplacer. Si votre grenouille est placée au bon endroit, vous devriez pouvoir atterrir sur tous ces petits objectifs domestiques ici. Pas de problème sans y aller. Voilà. Maintenant, nous allons garder notre position. Eh bien, à l'écran, ce serait bien. Nous pourrons nous occuper de tout ça plus tard. Pour l'instant, nous n'avons que nos déplacements et ce véhicule ralentit depuis longtemps. Je voulais juste garder le mouvement dans sa propre petite section. Voilà, on y va. Nous pouvons nous déplacer comme notre propre petit Boeing grenouille. Boeing. Mais bon, voilà. Nous pouvons maintenant passer à la section suivante de notre code. Je pense que nous allons ensuite créer nos véhicules et les faire commencer à traverser la route ici. 7. Créer les voitures: Très bien, aujourd'hui nous allons aller de l'avant et créer les véhicules pour traverser. Nous en avons maintenant deux autres. Voyons combien nous en avons ici. À l'intérieur de nos sprites, nous avons cinq voitures différentes Allons-y. Et certains vont à gauche, d'autres à droite. Et ils font déjà face à la direction qu' ils souhaitent prendre. C'est génial Tout ce que nous avons à faire est de les créer et de les faire défiler sur notre écran. Très bien, allons-y et créons une nouvelle scène avec notre bouton plus en haut. Pour nos onglets, nous allons passer à un autre nœud et, tout comme notre joueur, nous allons utiliser le corps du personnage en deux D. Nous allons lui donner un sprite. Dans ce cas, comme nous n' avons aucune animation pour cela, nous allons simplement utiliser un sprite normal en deux D, nous pouvons alors lui attribuer l'un des premiers sprites Dans ce cas, je suis allé de l'avant et sélectionné le petit camion, mais bien sûr, vous pouvez choisir celui que vous voulez. Plus précisément, j'en utilise un qui se déplace vers la gauche. Pour le moment, cela vaut la peine d'être noté. Je vais changer le nom de Character Body Two D en Truck. Je vais enregistrer ça comme scène de mon camion. Il va m'en falloir un peu plus maintenant. Nous n'allons pas utiliser de forme de collision, bien qu'un certain type de collision puisse se produire ici. Parce qu'il est évident que notre grenouille doit être écrasée d'une manière ou d'une autre si elle est touchée Pour m'y préparer, je vais créer une zone deux D qui me permettra à peu près d'avoir une zone prédéfinie que je peux vérifier pour obtenir cette zone avec la zone deux D sélectionnée. C'est là que je peux créer la forme de collision. Maintenant, la forme de collision porte ce petit triangle, ce qui nous indique qu'une forme de collision d'avertissement est sélectionnée. Nous nous déplaçons vers la droite vers notre section de forme et nous en créons une nouvelle. Ce sera juste une nouvelle forme de rectangle. Désormais, nous n'utilisons pas de formes compliquées telles que les polygones Utilisez plutôt un polygone avec une forme avec certaines de ces formes de base ici Plus votre tempe sera belle en termes de performance. Cependant, plus une collision est compliquée, plus elle sera précise. C'est un équilibre que vous devrez trouver vous-même. Mais dans ce cas, heureusement pour nous, nous pouvons simplement utiliser ces rectangles et ceux-ci répondent, d' autant plus que pour recréer un jeu plus ancien comme celui-ci , maintenant que nous avons la forme de collision comme celle-ci, et encore une fois, si vous ne l' avez pas détectée, assurez-vous simplement que votre rectangle recouvre tout. Ici, chaque pièce du camion. Maintenant, notre camion va en fait avoir besoin d'un script dessus. Je vais y ajouter un script, et au lieu de l'appeler script du camion, je vais l'appeler le script du véhicule. Maintenant, la raison pour laquelle nous allons l'appeler le script du véhicule est que nous allons pouvoir utiliser ce script sur tous nos véhicules. Pour ce faire, nous allons passer à une variable. Pour nous, ce que cela va faire, c' est ce mot clé d'exportation qui va nous permettre de le modifier dans l'inspecteur. Passons à l'exportation du signe arobase et nous allons créer une variable et nous appellerons cette direction, elle sera un entier. Par défaut, nous pouvons simplement l'envoyer à zéro ou nous pouvons l'envoyer à un. Cela n'a pas vraiment d' importance dans ce cas. Si vous l'enregistrez et que vous sélectionnez à nouveau votre camion, vous devriez voir la direction à l'intérieur de votre inspecteur sur le côté droit. Maintenant, dans notre cas, nous allons devoir être négatifs un parce que nous allons bouger signifie que nous allons dans la direction négative. Je suis juste allé de l'avant et je l'ai mis à un point négatif. Maintenant, dans le processus, notre personnage sera correct, mais notre camion se déplacera. Ensuite, pour nous déplacer, nous avons besoin de ce que l'on appelle un glissement ou une collision mobile L'un ou l'autre fonctionnera pour avoir du mouvement. Dans mon cas, Skin Moving Slide. Déplacer du code est également très bien. définit à peu près ce qui se passe lorsque deux corps physiques entrent en collision Soit ils se heurtent l'un contre l' autre et restent là, soit ils peuvent glisser l'un sur l'autre Dans notre cas, cela n'a pas vraiment d'importance puisque nous allons simplement utiliser la zone pour déterminer si notre grenouille a été heurtée par le camion. Nous avons maintenant une diapositive mobile. Nous ne pouvons pas simplement y jouer maintenant, car nous devons toujours contrôler ce mouvement. Je vais avoir une autre variable appelée vitesse, qui sera également un entier. Je pense. Je vais régler ça. Nous allons en essayer huit maintenant. Nous verrons à quelle vitesse cela bouge. C'est peut-être un peu trop rapide. En fait, je vais essayer avec deux. Maintenant que j'y pense, tout que nous allons faire c'est modifier la vélocité et nous voulons changer le nombre x. Tout comme la position, nous avons à la fois un x et un y en ce qui concerne la vélocité. La vélocité va contrôler le mouvement constant de notre objet. Passons à la vélocité à partir de quatre, intéressant, peut-être un V majuscule parce que je sais qu'il y en a un intégré. Je suis sûr qu'ici, c'est bas, juste là. J'ai dû juste y mettre une faute de frappe. Mais nous y voilà. Nous pouvons donc simplement faire la vitesse x cette fois. Nous allons dire égaux. Nous n'allons pas dire moins ou plus, car cela dépendra de notre direction, disons de la vitesse multipliée par la direction. Nous allons nous déplacer le long de l'axe X, donc nous allons nous déplacer à gauche et à droite au rythme de la vitesse, qui est actuellement deux fois la direction. À l'heure actuelle, nous en sommes à moins un. Ce sera donc deux fois moins une, ce qui nous donnera moins deux et devrait nous faire avancer vers la gauche. Nous avons fait appel à l'inspecteur et nous l'avons remplacé par un inspecteur positif. Alors ça devrait être deux fois une. Obtenez un score positif de deux et faites-nous avancer dans la bonne direction. Je vais juste remettre le mien à moins un. Je vais retourner à ma scène principale et faire venir un camion pour y jeter un coup d'œil. Je vais juste le mettre ici. Jouez la scène et voyez si elle bouge. Nous pouvons voir qu'il bouge, mais il se déplace bien trop lentement. Il va falloir y apporter des modifications. Revenons à huit. Huit, c'était peut-être bien. Essaie ça. Huit, ce n'est pas bien, mais c'est bien mieux. Voyons voir, voulons-nous nous déplacer à 16 pixels ? 16 ça a l'air bien, même si cela semble assez facile. Peut-être voulons-nous augmenter ce chiffre. N'oubliez pas que nous pouvons toujours y revenir, et comme nous utilisons la vitesse de tous nos véhicules, nous pourrions facilement l'ajuster et modifier une fois que les cinq voies seront réellement utilisées pour les véhicules Voyons voir, 32, 32 c'est plus beau ici, je pense que 32 est l'endroit où je vais le laisser et le modifier plus tard Peut-être que vous voulez passer à 48 ans ou je ne pense pas que nous serons en mesure d' atteindre 64 ans, mais on ne sait jamais. Je suppose que je vais juste utiliser 32 comme base. Très bien, nous avons donc un camion qui se déplace dans une direction. Maintenant, nous pouvons également créer nos autres véhicules. Voyons voir, nous en avons deux autres qui se déplacent vers la gauche et deux qui se déplacent vers la droite. Voyons ce que nous avons ici. Et nous allons aller vers la gauche. Nous allons donc répéter à peu près ce processus et utiliser le script du véhicule sur chacun d'entre eux. Très bien, je suis parti et comme vous pouvez le voir j'ai réalisé mes quatre autres scènes de voiture ici. Je n'ai fait qu'entrer, ajuster la forme de la collision si je devais remplacer le sprite par une autre de nos voitures Et puis, si nécessaire, goûtez à la direction allant de moins un à un positif, qui contrôle toutes nos voitures. Et je les ai placés à peu près là où ils se trouveraient ici, juste pour que je puisse les tester et y jeter un œil. Comme vous pouvez le constater pendant que nous le conduisons, nos voitures traversent l'écran dans la bonne direction et ne se heurtent jamais . Génial Maintenant, tout ce dont nous avons besoin, c'est d'un plus grand nombre de voitures. Nous ne voulons pas placer ces compositions, sauf que nous devons les placer manuellement. Ensuite, il nous suffit d'avoir cette énorme liste de voitures dont nous ne savons pas combien de temps il leur faudra pour apparaître Ou combien de temps il faudra au joueur pour manquer de vies ou terminer le niveau. Ce que nous allons faire, c'est créer des générateurs pour ces voitures. accord, ces générateurs font simplement apparaître le véhicule une heure définie Nous pourrions avoir cinq générateurs différents si nous le voulions , un pour chaque voie Voyons voir, je pense que c'est ce que je veux faire. Je pense que je vais avoir cinq sponsors différents pour qu'ils puissent tous avoir leur propre temps Si vous le vouliez, vous auriez simplement pu fixer une limite d'apparition, une limite de temps pour tous les véhicules C'est parfaitement bien aussi. Je vais aller de l'avant et en créer un et ce ne sera qu' un numéro deux de base Je vais juste l'appeler Sp. Voulons-nous appeler un sponsor ici ? Oui, allez en sponsoriser un et cela contrôlera mes meilleurs apparitions ici Je pense que je vais aussi l'utiliser comme emplacement de base, donc je vais juste me faire une bonne place Et puisque c'est le camion, je vais le ramener là-bas et cela me montrera que le camion apparaît à cette position Il sera juste là sur mon spawn. Je vais créer un nouveau script. Ce ne sera qu'un script de spawn. Encore une fois, nous allons l'utiliser sur presque tous les spans que nous créons ici Que devons-nous faire ? Eh bien, nous devons attendre un certain temps. Cela va supprimer ce point commun de là. Ainsi que celui d'en bas sur la ligne 9. Très bien, nous devons donc attendre un certain temps. Cette heure doit être aléatoire, puis fonction de cette apparition dans notre cas, nous allons charger le camion Je vais aller de l'avant et faire des variables pour mon camion. Ce sera un préchargement ici. M. veut dire que nous allons juste charger la scène à l'avance. De cette façon, nous pouvons l'utiliser, nous pouvons l'implémenter à tout moment. Je vais donc juste récupérer mon camion dans mon système de fichiers et le faire glisser dedans. De cette façon, nous aurons le bon emplacement sur les lieux. Sur ce, je vais juste vous montrer quel est le seul véhicule ici, car il ne nous reste plus qu' à entrer et nous pourrons le modifier Je vous montre comment nous pouvons exporter. Eh bien, de cette façon, nous pouvons réellement utiliser ce script sur tout au lieu de créer plusieurs scripts simplement à cause d'une différence de variable. Je vais te le montrer. Mais commençons par le mettre en place et le faire fonctionner. Ce que nous allons faire, c'est ne pas utiliser ce processus du tout. Nous allons en fait créer une fonction appelée spawn vehicle. Ici, nous avons besoin d' un nombre aléatoire Allons-y et appelons-le tard. Il suffit d'appeler ça le temps d'attente. Nous allons définir un nombre à virgule flottante et le définir comme égal, voyons voir, à un entier aléatoire, sans erreur. Nous pourrions simplement faire quelque chose comme ça et cela fonctionnerait. Je ne pense pas que nous devions utiliser la gamme Rand, même si je peux me tromper à ce sujet. C'est bon, allons-y. Puisque je veux vérifier cela, mesure de sécurité, je vais garder le contrôle. Cliquez sur Randy et cela m'ouvrira sur cette page Et oui, je l'ai fait correctement en utilisant le pourcentage 20. Dans ce cas, un GC va nous donner un tituentre 0,19 % 100 nous donnera 0 à 99. Et si nous faisons un pourcentage de 100 plus un, cela nous donnera un chiffre de 1 à 100. Dans mon cas, si j'en fais trois, nous aurons un temps d'attente Je vais en ajouter un à cela. Maintenant, nous devons attendre au moins 1 seconde, et entre les apparitions des camions, il fera 12-3. Nous pouvons voir à quoi cela ressemble Nous pourrons toujours ajuster cela plus tard. Maintenant, c'est notre temps d'attente, maintenant nous devons réellement attendre ce laps de temps. Nous allons dire « attendez », nous devons récupérer l'arbre pour le faire. Le mot clé await ici signifie que nous allons simplement attendre cela. Dans notre cas, il s' agira d'une minuterie, mais cela pourrait aussi être une attente pour l'envoi d'un signal. Mais pour le moment, nous allons dire a get tree create Tim. Ce sera notre temps d'attente ici. Notre temps d'attente aléatoire pendant lequel nous avons le temps, nous sommes absents pour le signal d'expiration qui est envoyé à la fin de notre temps d'attente. Qui sera basé sur un nombre aléatoire, un nombre aléatoire de secondes. Très bien, une fois que c'est fait, nous pouvons créer une instance de notre camion, de notre, disons VT pour véhicule VI pour véhicule, instance égale. Dans ce cas, nous allons dire camion mais nous devrions le changer véhicule Truck instanciate, puis nous l'ajouterons à notre propre générateur, un enfant pour l'ajouter à Et bien, voyons comment ça fonctionne maintenant. Ce n'est pas le cas parce que nous ne l'avons pas appelé. Passons à notre fonction Ready ici et à notre fonction de véhicule d'apparition que nous avons créée Essayons-le maintenant. Allons-y. Nous avons donc fait apparaître un autre camion, et nous n'en aurons plus parce que nous n'apparaîtrons qu'en même temps Ce que nous pouvons faire à partir de là, c'est qu'après avoir ajouté un enfant, juste après avoir ajouté le camion dans notre scène, il s'appelle simplement de manière récursive Cela va provoquer une boucle infinie. Il va continuer, il va faire apparaître un véhicule sans rien faire, puis faire apparaître un Quand c'est fini de faire apparaître un autre véhicule, cela fait apparaître un véhicule et ce sera toujours un nombre aléatoire à chaque fois que nous devrons attendre entre deux apparitions Si nous y jetons un coup d'œil maintenant, nous pouvons voir qu'ils sont assez cohérents dans leur espacement. Et puis c'était un espacement beaucoup plus grand. Nous avons un espacement très serré sur celui-ci. Il semble que le pourcentage trois plus un soit le plus court que nous voulons atteindre, mais voilà. C'est à vous de décider. Cela fait beaucoup de choses proches les unes des autres. C'est à vous de décider si vous voulez le modifier un peu, jouer avec. Et c'est à vous de décider comment vous voulez les espacer. Maintenant, si nous n'avons pas à définir sa position, c'est parce que nous l'ajoutons à mon observateur étant enfant Et l'observateur est là, puisque le camion est à 00 dans sa position Le camion ici est à 00 dans sa position ici. Et nous pouvons voir que si nous optons pour le transport 00, ce sera exactement le même que pour son parent, qui dans ce cas sera le sponsor. Là où mon sponsor est ici , c'est qu'il va apparaître à cet endroit, juste assez hors écran Maintenant, comment pouvons-nous modifier ce script pour qu' s'exécute afin de pouvoir l'utiliser pour n'importe lequel de nos véhicules ? Ce que nous devons faire pour cela fonctionne pour tous nos sponsors, c'est que nous puissions avoir le moins de travail possible ici. Eh bien, tout d'abord, je vais changer le nom de ma variable véhicule routier », car maintenant nous allons l' utiliser pour plus d'un véhicule, et pas seulement pour le camion. Cela signifie que nous allons devoir le changer ici dans notre spawn, de truck instant à vehicle instanciation Nous voulons que cette variable soit exposée dans notre inspecteur afin de pouvoir la modifier par nœud. Ici, nous allons faire l' at signed with export. Maintenant, qu'allons-nous exporter ici ? Eh bien, nous pourrions simplement le laisser tel quel. Et cela ne fonctionnera que si nous examinons l'intérieur de l'inspecteur. Mais si vous voulez être précis, cela s'appelle un pack vu, c'est ainsi que vous l' exporterez. Ensuite, nous pourrions même simplement supprimer le préchargement ici, nous avons juste un panneau, notre véhicule déclaré comme un pack vu. Maintenant, si nous cliquons sur notre spawn et sur notre scène ici, nous pouvons simplement ouvrir le véhicule et dire Nouveau rythme ou nous pouvons le charger De toute évidence, nous voudrions charger. Mais pour gagner du temps, nous pouvons simplement accéder à notre système de fichiers, prendre notre camion, le faire glisser et le déposer dedans. Si nous l'exécutons, nous verrons nos camions apparaître comme ils le devraient, comme ils le faisaient auparavant C'est bon, parfait. Si nous devions prendre, disons, voyons voir, première voiture va également vers la gauche, prenons la voiture. Remplacez cette scène là-dedans, et jetez-y un coup d'œil. Voilà, nous l'avons. Nous l'avons fait fonctionner ici avec un autre véhicule. Tout ce que nous avons à faire, c'est de changer celui-ci. Cela représente beaucoup de voitures d'affilée. Encore une fois, je peux me contenter de vous aider à peaufiner les choses, mais voilà Je vais recommencer à remplacer celui-ci par un camion et l' empêcher de fonctionner. Maintenant, je peux continuer et je peux faire plus de travées. Oui, nous nous occupons de l'histoire et de l'inadéquation. C'est intéressant Je ne fais rien avec l'histoire. Je vais juste utiliser le contrôle D ici. Et celui-ci est sponsorisé deux fois. Donc je vais juste descendre, assurer qu' il s' agira de la voiture 3. Je vais chercher ma troisième voiture, la localiser et la traîner dedans. Allez-y, jetez-y un coup d'œil. Allons-y. Nos camions et nos voitures apparaissent à des intervalles différents. Fantastique Nous pouvons faire la même chose pour nos fesses ici. Je vais le reproduire une fois de plus. Et je suis juste en train de le dupliquer avec le contrôle D avec le générateur sélectionné. Et je vais juste le mettre ici pour ce véhicule. C'est juste que je vais garer la voiture ici, on y jette un coup d'œil, on voit toutes nos voitures qui vont vers la gauche apparaissent toutes correctement Fantastique Maintenant, il ne nous reste plus qu' à les placer sur la droite. C'est la même chose. Je vais juste dupliquer mon spawn ici et le faire glisser vers la gauche Ensuite, je l'ajuste ici. Notre position devrait être bonne. Et c'est une voiture, ma voiture Fc la dupliquerait une fois de plus et la rassemblerait ici pour la deuxième scène de ma voiture. Très bien, maintenant je devrais pouvoir venir ici et supprimer toutes ces voitures et camions temporaires. Si nous courons, il devrait fonctionner parfaitement et tous nos véhicules devraient s'y retrouver Nous l'avons maintenant. Nous pouvons courir partout avec notre petite grenouille, oui, notre petite grenouille ici. Voilà, nous l'avons maintenant. Nous avons juste besoin d'un moyen traverser cette eau pour pouvoir y entrer et faire écraser notre petite grenouille Je pense que nous allons nous occuper de l'écrasement. La prochaine fois, il y aura la mort d' un joueur ici. 8. Mort et réapparition d'un joueur: Très bien, alors comment allons-nous attraper notre petite grenouille s'il se fait renverser par une voiture ? Eh bien, la première chose que j'ai faite, c'est d'ajouter un double D en forme de collision pour couvrir la taille de ma grenouille Nous allons l'utiliser pour déterminer si vous avez été heurté par une voiture en combinaison avec la zone deux D qui se trouve sur nos véhicules. Dans mon sprite animé, j'ai créé une nouvelle animation intitulée Death, et j'ai introduit le Sprite Frog Dead Maintenant que nous en avons également besoin sur notre véhicule, nous allons devoir ajouter une connexion de signal ici. Et celui que nous allons vouloir, c'est entrer dans le corps. Nous pourrions passer par ici et les connecter un par un sur tous nos véhicules ou nous pourrions gagner un peu de temps en les connectant via le code. Je pense que c'est ce que je vais faire ici, cette façon nous avons gagné un peu de temps. Voyons maintenant comment connecter ce signal via le code au lieu de l'interface. Le moyen le plus simple pour nous de configurer cela est, comme vous le voyez ci-dessous, dans le bloc prêt ici, cette erreur est simplement due au fait que nous n'avons pas encore créé cette fonction. Nous voyons que nous saisissons notre zone deux D parce que c'est ce qui envoie le signal, le nom du signal saisi dans le corps, vous pouvez le voir sur la droite. Et nous allons connecter ce signal à la fonction de connexion. Ensuite, nous créons ce que l'on appelle un appelable et nous transmettons un nom Et ce nom sera le nom de la fonction laquelle nous voulons faire appel. Joueur touché, grenouille touchée. Tu peux choisir c'est comme ça que je vais appeler le mien. ne nous reste plus qu'à descendre et à créer une nouvelle fonction pour Funko Cette fonction transmet également une donnée. Si nous examinons le signal saisi par le corps ici sur le côté droit, nous voyons qu'il passe dans le corps et que c'est un nœud deux D, ce sera un nœud deux D d'un certain type. Nous devons placer cet argument dans le nœud deux D. Et c'est ainsi que cela devrait maintenant connecter le signal de tous nos véhicules. Et pour tester cela, nous pouvons procéder à l'impression du corps. Et nous verrons, ce que j'ai également fait, c'est que j'ai changé de joueur. J'ai renommé mon joueur de character body TD en joueur. Ensuite, j'ai dû aller dans ma scène principale ici et la remplacer pour que le nom soit mis à jour. Maintenant, si nous procédons à cette opération, nous devrions avoir un corps imprimé chaque fois que nous sommes percutés par un véhicule. Alors testons la première voie. Ouais. Voie deux, oui, voie trois, c'est exact. Voie quatre. Notre dernière voie, le camion. Allons-y. Tous nos véhicules détectent lorsque nous sommes percutés et nous pouvons voir nous avons beaucoup de véhicules sur place à ce moment-là, qui pourrait être une bonne quantité. Ou peut-être souhaitez-vous augmenter le spawn minimum entre eux. Encore une fois, c'est à vous de décider de la façon dont vous voulez vous y prendre, faites le vôtre. Mais tous nos véhicules sont maintenant connectés et configurés pour écraser notre petite grenouille La raison pour laquelle je vous l'ai dit, j'ai lu mon personnage Body TD. Pour que le joueur joue, j'utilise un I majuscule parce que nous allons utiliser ce nom dans le script de notre véhicule. Nous allons dire si et ensuite passer un ressort, joueur. Nous voulons donc voir si cette chaîne se trouve à l'intérieur d'une autre chaîne. Et la chaîne que nous voulons vérifier est le nom du corps. Maintenant, souvenez-vous que le corps est l'objet avec lequel nous venons d'entrer en collision, quel que soit le corps qui vient d'entrer dans la zone de notre véhicule. La propriété name de celui-ci va nous donner le nom qu'il contient, qui dans notre cas est player. Vérifiez si notre nom est le joueur plutôt que le nom du corps. Nous pourrions simplement faire un double égal si nous voulions un nom exact, cela dépend entièrement de vous. Dans ce cas, cela ne devrait rien affecter. Nous terminons notre déclaration par deux points. Descendez à la ligne suivante. Nous pouvons maintenant exécuter notre code. Que voulons-nous faire lorsque notre joueur l'aura ? Eh bien, nous allons appeler la fonction de mort de notre joueur. Maintenant, cette fonction n'existe pas encore, nous allons donc devoir la créer. Mais la mort corporelle si tu veux un cas supplémentaire. Sécurité ici. Vous pouvez dire que si le corps a une méthode qui peut passer dans le fil de la mort, alors nous pouvons inclure la mort corporelle dans une autre. Nous pouvons procéder comme ça et cela évitera une erreur. Si nous devions continuer et exécuter cela, vous verrez que nous n' aurons aucune erreur ici. Parce que nous disons essentiellement, d'accord, nous disons que si nous entrons en collision avec le joueur ici, joueur, si ce corps a cette fonction, appelle-le À l'heure actuelle, il n'a pas cette fonction. Si vous souhaitez ajouter cette couche de sécurité supplémentaire en utilisant la méthode has, vous pouvez certainement le faire. Je vais maintenant accéder à mon lecteur et créer cette fonction Bunk Death Nous ne transmettons aucun argument avec cela. Que se passera-t-il lorsque notre joueur mourra ? Mais nous devons jouer à notre animation de mort pour corriger notre sprite . Allons-y et faisons-le. Animated Sprite Two, incarnez Death. Jetons un coup d'œil à cela maintenant. Que se passe-t-il lorsque nous sommes percutés par un véhicule ? Une pauvre petite grenouille qui traverse la rue ? OK, donc on te voit mourir et puis on ou Sprite fait fausse route Il ne fait pas face comme il le devrait. Corrigeons cela. Ensuite, nous allons simplement définir sa rotation. Et nous l'avons déjà fait. Lorsque nous appuyons, ajoutons cela à notre fonction de mort. Nous examinons ici un aperçu qui devrait maintenant fonctionner correctement. Nous sommes dans une position géniale. Maintenant, ce que vous ne pouvez pas voir, c'est que nous sommes constamment percutés parce que notre forme de collision continue de heurter ces voitures Et en plus de cela, nous pouvons également continuer à bouger, donc nous ne pouvons pas ramener l'être et nous sommes de nouveau en vie, nous avons une grenouille impossible à tuer Très bien, un professeur pour la fois. Empêchons notre collision de se produire. Et nous pouvons le voir, et je vais vous montrer que si nous arrivons à toucher notre joueur , je vais juste imprimer une grenouille écrasée Vous pouvez voir que même si nous sommes morts, nous sommes toujours écrasés, écrasés par une grenouille. Et nous allons continuer à nous faire écraser même si nous sommes déjà morts. Nous ne voulons pas que cela se produise, car cela pourrait continuer à nous soustraire des vies, selon la distance entre les apparitions Allons-y et corrigeons ce problème pour notre lecteur. Pour ce faire, nous allons récupérer la forme de collision que nous avons créée, la forme de collision deux D que nous avons ajoutée à notre joueur Et nous allons utiliser ce qu'on appelle le différé. Ce que cela fera essentiellement, si nous y jetons un coup d'œil, c'est que les appels de la méthode sur l'objet pendant le temps d'inactivité renvoient toujours null, non le résultat de la méthode. Voilà. Notre mot clé ici est « l'appeler pendant les périodes d'inactivité ». Il va donc l'appeler chaque fois que nous le passerons, quand il aura la prochaine occasion, en gros, au lieu d' essayer de l'appeler maintenant alors qu'il ne sera peut-être pas en mesure d'estampiller les fonctions, il vous dira de le faire avant que nous l'appelions. Vous n'êtes pas obligé de les supprimer. Je vais juste vous montrer ici l'erreur. Si nous arrivons ici et que je deviens désactivé, c'est vrai, nous allons voir que nous allons rencontrer une erreur ici. Cela n'empêche pas notre jeu de fonctionner. Voyons voir, on s'est fait écraser deux fois. Notre désactivation ne fonctionne pas pendant 12 ans. Si nous allons dans notre débogueur et examinons les erreurs, cela nous indiquera que nous ne pouvons pas modifier l'état lorsque les requêtes de vidage utilisent le mode Il nous dit donc spécifiquement de l'utiliser, c' est pourquoi nous utilisons l' appel différé ici. L'appel différé ici sera une série de ce que nous voulons faire. Dans ce cas, elle sera désactivée. Ce handicap prend un deuxième argument et c'est ce que nous avons dit Dans notre cas, il sera défini sur true. Maintenant, si nous regardons cela, cette erreur disparaîtra et nous ne serons corrigés qu'une seule fois Voilà. Cela n'apparaîtra plus dans notre code si vous craignez le report des appels. Lorsque nous sommes percutés par un véhicule rapproché , par exemple lorsqu' il y en a trois dos à dos, nous pouvons jeter un œil ici. Il a déjà été désactivé avant même que le prochain véhicule ne nous touche. Très bien, maintenant on peut vraiment mourir ici. Ce que nous devons examiner, c'est comment nous en sortir. C'est vrai. Maintenant, nous ne sommes plus qu'une grenouille impossible à tuer parce que nous ne pouvons entrer en collision avec rien Nous devons donc régler ce problème par notre mort. Nous avons besoin d'une sorte de réapparition. Nous devons nous assurer que nous ne pouvons bouger que si nous sommes vivants. Offrez un peu plus que ce qui était prévu. accord ? Nous devons savoir si notre grenouille est vivante ou non. Nous pouvons le faire avec une fonction simple qui vérifie simplement s'il est vivant ou s'il est mort. Sur la base de cette variable, nous pouvons soit nous déplacer, soit nous ne pouvons pas. Pour cela, nous allons utiliser un ensemble d'états, qui sera une énumération, comme vous pouvez le voir dans l'exemple ci-dessous Nous pouvons utiliser ces énumérations pour contenir des données spécifiques. Je suppose que vous pourriez dire : c'est essentiellement comme une liste d' options parmi lesquelles nous pouvons sélectionner. Cela facilite les choses lorsqu'il s'agit de vérifier les choses. Vous pouvez le constater lorsqu'il s'agit de la forme de base d'une machine à états utilisée pour les personnages. Par exemple, si vous avez joué Grand Theft Auto Five par exemple. Vous avez des commandes différentes lorsque vous êtes à pied par rapport à lorsque vous êtes dans un véhicule. C'est parce que tu es à pied. Les contrôles seraient effectués par un seul État. La natation serait un autre état. Dans une voiture, il y aurait un état, dans un avion, il y en aurait un autre, et cetera Nous allons l'utiliser pour savoir quand nous sommes vivants et quand notre grenouille a été écrasée Pour créer cela, au lieu d'utiliser le mot clé Var, nous utilisons enum Le nom de l'énumération, qui dit qu'il fonctionnera comme une machine à états, je vais simplement l'appeler state Ensuite, au lieu d' utiliser des points ou des points égaux, nous sautons directement dans les bretelles bouclées Traditionnellement, d'après ce que j'ai toujours vu, ce sont toujours en capital Je vais donc avoir un direct jusqu'à la ligne suivante, mort. Ce sont nos deux états, vivant et mort vivant seront l'état par défaut ici. Nous allons créer une nouvelle variable appelée état actuel. Nous allons simplement déclarer que c'est un État, l'un de nos États ici. Très bien, maintenant avec notre mouvement, il ne nous reste plus qu'à vérifier si l'état actuel est égal à deux égal à l'état vivant. Et puis inscrivez notre mouvement. Maintenant, nous ne pouvons bouger que lorsque nous sommes vivants. Maintenant, lorsque nous mourons, nous devons lui dire que notre état actuel est désormais égal à mort. Si nous l'exécutons maintenant, nous ne devrions pas pouvoir bouger. Une fois que nous serons morts et écrasés, c'est parti. Nous sommes tous écrasés et nous ne pouvons pas bouger. Il ne nous reste plus qu'à créer la réapparition. Créons une fonction Respawn fois que nous aurons des vies ici C'est ici que nous allons vérifier s'il reste des vies au joueur. Nous allons appeler ça. Bien, allons-y, comment réagissons-nous ? Nous allons devoir remettre notre collision en marche. Nous allons donc devoir appeler en différé dans notre forme de collision. Et au lieu de le désactiver, nous devons le définir sur false afin qu'il ne soit plus désactivé. Nous devons changer notre position, position personnelle et nous devons la remettre à notre position de départ pour le moment. C'est 169,2 33. Je vais juste copier cette valeur très rapidement dans ma scène principale. Je vais ajouter un. Vous voyez comment l'ont-ils renommé ? Ici. Allons-y. Il a été renommé pour marquer deux D, et donnez-moi juste une seconde. Je vais te le chercher. Voilà. Nous allons donc utiliser un marqueur deux D. Je vais définir sa transformation pour le moment. Je vais juste coller la valeur, la mettre dans la même position que celle de départ de notre grenouille. Je vais appeler ce joueur le lieu d'apparition. Maintenant, lorsque nous répondons, nous pouvons faire en sorte que la position du point soit égale à notre. Joueur qui ne va pas le remplir pour nous. Je vais juste devoir le saisir, position de l' emplacement d'apparition du joueur Cela devrait se produire assez instantanément. Allons-y et passons à notre processus Ici, nous allons effectuer une autre vérification, si l' état actuel est égal à l'état mort. Nous pouvons appeler Respawn. Cela devrait revenir au début, là où nous avons commencé Si tu te fais tuer, il semblerait que nous ayons ce que c'est. Oh c'est juste. Lieu d'apparition des joueurs, nous ne pouvons pas y accéder car nous devons monter dans l'arbre pour nous souvenir de qui est notre joueur, et le joueur n'a pas un accès direct à l' emplacement de ce joueur Ici, nous devons monter, suivre cette ligne et monter une, puis cela nous amène à ce nœud deux D. Et puis aucun deux D n'a accès au spawn d'un joueur Nous devons améliorer la façon dont nous pouvons le faire. Voici quelques façons de procéder et de faire « get parent get node ». Ce nœud get n'est qu'une forme longue de l' écriture du signe dollar. À l'intérieur se trouverait alors une chaîne ou le chemin menant directement à Playerspalocation Sinon, pour être un peu bref, nous pouvons simplement faire get node. Nous pouvons transmettre des choses. Nous pouvons dire qu'il faut utiliser un point égal à l'écriture de soi. Ou nous pouvons faire deux points égaux à ce get parent que nous venons de supprimer. Et vous pouvez le constater, autant que nous pouvons dire, faites-le avec get parent player spawn location Très bien, ça devrait régler ça. Maintenant, quand nous sommes écrasés, vous voyez, nous revenons directement au début Nous ne pouvons toujours pas bouger car nous devons définir notre état actuel. N'oubliez pas que nous ne pouvons pas déplacer l'état actuel égal l'état vivant. Et en plus de cela, nous devons redéfinir notre animation pour qu'elle soit nos idoles Nous allons utiliser notre sprite animé pour jouer notre sprite idole. Remettez-le à la normale lorsque nous l'exécutons. Maintenant, nous ne pouvons pas vraiment dire quand nous recevons une réponse. Ce que je vais faire tout d'abord, c'est utiliser Calder et le déposer après tout le reste parce que déposer après tout le reste je remarque que nous nous faisons écraser deux fois. Nous verrons donc si c'est en déplaçant simplement cette ligne que nous pouvons corriger cela. Ce n'est pas le cas. OK, pas de problème. Nous aurons juste besoin d' une petite minuterie, par exemple, par la suite. Ce qui est très bien. Bien, alors voyons voir, de quoi avions-nous besoin ? Notre symbole mort ne fonctionne pas très bien parce que nous sommes morts. Nous réapparaissons instantanément. Nous ne pouvons rien dire de ce qui se passe. Ce que nous allons faire, c'est qu'à l'intérieur de cette réapparition, attendre, nous faisons ce que nous avons fait avant d'utiliser get tree et de créer ce chronomètre Nous allons le régler à 1 seconde. Cela semble long. Et le signal d' expiration d' une seconde peut sembler long dans un vieux jeu comme celui-ci. Ensuite, nous répondons. Génial, maintenant nous nous faisons écraser plusieurs fois, ce qui est un peu dommage Je vais juste venir ici et créer un autre petit chronomètre pour 0,5. Et je vais voir dans quelle mesure je peux m'en sortir ou jusqu' à je peux m'en sortir ou quel point je peux le réduire en testant 0,5, nous pouvons nous en sortir comme ça. Je vais essayer 0.2 Je peux m' en sortir avec 0.2 Nous pourrons peut-être même nous en sortir avec 0.1 avec un délai très court ici. Nous y voilà. Maintenant, nous avons l'image de notre mort pendant une seconde sur l'écran de nos pauvres petites bronches écrasées. Et puis le resp se produit. Génial. Maintenant, si vous le souhaitez, vous pouvez définir ce nombre dans une variable ici pour répondre Tim, ou le temps de réponse. Et ce sera votre temps entre vos réponses. Maintenant, pour moi, je pense que je vais m'en tenir à une. Ce n'est pas un problème. Je ne pense pas que je vais avoir envie de modifier ça un jour Maintenant, si vous remarquez, quand j'y allais, si je suis assise ici, je pourrais me faire écraser par la voiture en dessous, sans amende, mais je me suis fait écraser là quand je me suis tournée sur le côté Je devrais peut-être modifier un peu plus ma position en Y. Je devrais peut-être modifier un peu plus ma position Y à cet égard. Mais cela va se résumer à jouer avec la position et cela encore un peu , mais pas de problème. Mais ça suffira pour ça. Notre système de mort et de réapparition des joueurs est désormais en place. Nous n'avons aucune vie en cours en ce moment, mais nous y reviendrons lorsque nous arriverons dans notre section. Mais avec cette attention, nous avons passé en revue de nombreuses informations. J'espère que vous êtes prêt à passer à la section suivante du jeu. C'est ça. 9. Mort à l'eau: Très bien, alors faisons en sorte que lorsque nous sautons dans l'eau, nous mourions et devions réagir. Eh bien, pour ce faire, nous pourrions le faire de différentes manières, mais le moyen le plus simple, je dois dire, étant donné que nous utilisons une carte en tuiles, est d'en tirer parti et d'utiliser la carte en tuiles pour nous indiquer sur quelle tuile nous nous trouvons. Si nous sommes debout sur l' eau, nous allons mourir. Si ce n'est pas le cas, nous serons bien placés pour le faire. Passons à notre script de couche. Passons à autre chose au moment où nous allons entrer dans notre script Nous allons avoir besoin d'une nouvelle variable pour contenir notre carte de tuiles ici. Maintenant, nous n'avons pas besoin de le définir en haut, mais nous n'avons pas à le définir constamment dans notre fonction. Nous allons faire en sorte que l' un ou l'autre soit , et nous allons utiliser le mot clé prêt. Cela signifie simplement que la variable que nous allons créer serait la même que si nous la définissions ici dans Ready. Si nous disions par exemple que le nombre est égal à dix, serait la même chose que si nous créions un nombre puis le mettions à dix ici à l'intérieur du bloc prêt. Tout est prêt, ce qui signifie que cela est utile lorsque nous voulons mettre la main sur des nœuds spécifiques situés à l'intérieur de notre scène Dans notre exemple, nous voulons mettre la main sur cette carte en tuiles. Ici, nous allons faire une carte de tuiles var et nous allons définir ce nœud comme étant le nœud parent. Bien sûr, elle s'appelle actuellement simplement carte des tuiles. Maintenant, souvenez-vous de ce que j'ai dit , je crois que c'était dans la dernière vidéo. Au lieu d'utiliser get parent ici, nous pourrions le raccourcir dans notre get No, juste pour le faire et avoir le même équivalent de get parent. Mais ensuite je vais le faire juste pour que choses soient encore un peu plus courtes. Très bien, nous avons maintenant notre carte des tuiles. Maintenant, ce que nous voulons faire, c'est vérifier sur quelle dalle nous nous trouvons. Je vais aller de l'avant et créer une nouvelle fonction ici. Je vais appeler ça vérifier l'identification du portable. Cela va nous donner une tournure négative. Ce que cela va faire pour nous, c'est que nous allons essentiellement l'utiliser pour abord obtenir la position de la cellule sur laquelle nous nous tenons. Nous allons donc parler de la carte à barres Pause, qui sera définie sur notre carte en tuiles. Local sur la carte. Ensuite, cela prendra une position, et cette position sera simplement la position de notre joueur. Maintenant, local sur la carte va simplement nous redonner une position qui sera la position de la cellule sur laquelle nous nous trouvons. Les cellules seraient chacune de ces cases oranges. Comme nous sommes là dès le début du jeu, cela nous indiquera cette case, emplacement. Ensuite, la variable suivante que nous allons créer va simplement y entrer et dire, d' accord, elle a été créée avec cette vignette. Maintenant, quel est cet identifiant ? Et cela va nous en redonner un pour obtenir cet identifiant, nous allons créer une variable ici. Ce ne sera qu'une carte à carreaux. Carte des tuiles, oui, vendre l'identifiant de la source. Cela va juste nécessiter deux arguments. La première sera la couche sur laquelle il se trouve sur laquelle se trouve la couche zéro. La seconde sera la position que nous avons déjà obtenue sur notre carte, une variable ici. Maintenant, cet identifiant devrait être celui sur lequel nous nous trouvons. Si nous entrons et que nous imprimons cet identifiant, nous exécutons simplement le check, le sell ID. Dans le cadre de notre processus, nous en imprimons un immédiatement pour que la médiane soit imprimée pour la route, et trois pour l'eau. Une fois que nous l'exécutons, nous pouvons regarder le résultat vers le bas, nous en voyons un imprimé pour notre médiane, deux pour notre route. Si je peux atteindre l'eau ici, nous en aurons encore une pour le terre-plein. Et puis trois quand nous sommes entrés dans l'eau. Allons-y. Maintenant, nous savons que cela fonctionne parfaitement, même si nous faisons tout le chemin jusqu'ici parce qu' on vérifie que la couche zéro est la couche zéro, nous allons passer à la troisième qui sera notre eau. Eh bien, nous le savons. Maintenant, ce que nous allons faire, c'est que nous pouvons maintenant que I D est égal à trois et que c'est là que nous tuerions notre joueur. Alors entrez, appelez notre service de décès ici. Maintenant, lorsque nous touchons l' eau, nous devrions mourir. Allons-y. Maintenant, nous pouvons mourir lorsque notre joueur touche l'eau. Et attendez la réapparition. Maintenant, cela peut être un peu éprouvant quand on le vérifie constamment comme ça Quel que soit le meilleur endroit pour venir ici, uniquement lorsque nous serons vivants. Mais le mieux, c'est que nous pouvons l'appeler chaque fois que nous déménageons. Je vais donc simplement ajouter ceci au bas de tous mes mouvements ici. Maintenant, quand je me déplace dans n'importe quelle direction c'est le seul moment où nous allons vérifier. Au lieu de le spammer jusqu'à présent. Bien, saute, mort. Attendez une réponse. Maintenant, nous déménageons à nouveau. Très bien, maintenant nous pouvons noyer notre grenouille dans l'eau Et nous pouvons laisser notre grenouille se faire écraser par une voiture. Très bien, nous avons donc tous nos bilans de décès. Il ne nous reste plus qu'à faire fonctionner nos plateformes, puis à obtenir nos petits points de vent à la fin en sautant aux bons endroits. Ensuite, configurez notre affichage tête haute avec notre score. Alors je pense que ce sera presque terminé. Je ne pense pas qu'il nous manque quoi que ce soit par la suite. C'est peut-être faux. Mais voilà. Nous pouvons maintenant contourner notre grenouille avec l'eau et vous savez maintenant comment identifier la tuile sur laquelle se trouve votre joueur C'est bon, de le faire pour celui-ci. Je vous verrai dans la prochaine vidéo. 10. Plateformes aquatiques: Très bien, allons-y et configurons notre plateforme. Une fois notre plateforme configurée, la seule chose que nous pouvons faire ou la seule chose qui nous restera pour ces plateformes est simplement d' échanger les sprites et de les allonger et raccourcir sur ma plateforme ici Je vais juste utiliser les sprites que nous avons installés ici. En utilisant le journal pour cet exemple, la fin du milieu et l'autre extrémité, fin du milieu et le début. Cela signifie que j' utilise trois sprites ici avec ma scène principale La base de ma scène ici est un corps de personnage que j'ai renommé plateforme. Je pourrais le renommer en journal si je le voulais. Cela a une zone deux D avec une forme de collision qui recouvre mon journal. Ici, j'ai connecté à la fois le signal d'entrée du corps et le signal de sortie du Une fois que ces deux signaux sont connectés, le script de votre plateforme devrait ressembler à ceci. Et nous sommes prêts à ajouter des informations ou à tout y ajouter. Avec la façon dont nous allons procéder, nous allons également ajouter des éléments à notre script. La majeure partie de ce travail portera en fait sur le script de nos joueurs. Pour le moment, passons au script de nos joueurs et ajoutons quelques variables que nous allons utiliser. Tout d'abord, ce sera une plateforme, et ce sera une solution allégée. Et cela permettra simplement de dire ou de faire savoir à notre eau si nous sommes en sécurité parce que nous sommes sur une plate-forme ou non. C'est ce qu'on appelle la notification de décès. Nous allons obtenir notre plateforme ou plateforme actuelle et c'est un corps de personnage en deux D que nous transmettons. Ensuite, nous finirons par nous y mettre. Pour l'instant, envoyez-le simplement pour savoir si vous avez besoin d'une direction de plate-forme, qui est une erreur entière que nous allons mettre à zéro même si cela ne devrait pas avoir d'importance. Encore une fois, nous allons utiliser la plateforme, la plateforme actuelle et l'orientation de la plateforme comme trois nouvelles variables de notre script de joueur. Nous allons passer à notre numéro de téléphone portable. Nous allons ajouter à notre déclaration, donc nous allons dire qu'ID est égal à trois, la plateforme est égale à faux. De cette façon, nous disons que si nous sommes dans l'eau et que nous ne sommes pas sur une plateforme, nous tuerons le joueur. Nos conditions y sont fixées. Voyons voir pour notre joueur. Nous allons également vérifier, de notre vivant, si notre plateforme actuelle n' est pas égale à null, est-à-dire qu'elle n'est égale qu'à elle. Pour l'instant, ce sera un objet qui lui sera assigné. Une fois que notre joueur est inscrit sur notre journal, disons que la plateforme actuelle n' est pas égale à zéro, alors nous pouvons simplement continuer et notre position plus est égale à 0. Nous allons donc faire une petite messe. Nous devons ouvrir et fermer nos parenthèses ici, car nous allons utiliser l'ordre des opérations pour nos calculs Nous allons dire que la direction de la plateforme est multipliée par 16. Nous allons l'utiliser soit en plus un, soit en négatif, comme nous l' avons fait avec nos véhicules. Et multipliez par 16. Nous allons soit déplacer 16 vers la gauche, soit 16 vers la droite. Et nous allons le faire au fil du temps, donc nous allons multiplier cela par delta. De cette façon, nous ne sommes pas basés sur des cadres, mais plutôt sur le temps. ne nous reste donc plus qu'à définir l' orientation de notre plateforme. Et nous pouvons le faire via une fonction que nous voulons utiliser, oui, suivons une direction définie. Et cela supposera qu'un argument d'un entier ne renvoie rien. Tout ce que cela va faire, c'est qu'il va définir orientation de notre plateforme de la même manière que. Très bien, nous pouvons maintenant passer au script de notre plateforme. Nous n'avons pas besoin de ce bloc prêt, nous pouvons le supprimer dans le cadre de notre processus. , nous voulons que notre journal Dans mon cas, nous voulons que notre journal continue de bouger. Je vais aller de l'avant et faire une position plus égale à 16 fois le delta. Cela va constamment le déplacer vers la droite lorsque nous entrons, lorsque notre joueur entre dans la zone. Nous allons donc définir la plate-forme ici pour qu'elle soit vraie. Et nous allons configurer notre plateforme actuelle sur notre journal ici. Ma plateforme ici. Je vais dire Body Platform et définir cela comme vrai. Nous sommes maintenant sur l'estrade. Courbe Body Legos. Plate-forme. Oui La plateforme actuelle est égale à L. Quand le corps est sorti, nous allons faire le contraire Nous allons donc définir au lieu de vrai, nous allons le définir sur faux au lieu de vendre. Réglez-le sur non. Très bien, ce que nous faisons jusqu'à présent, c'est lorsque notre front saute sur le rondin qui se déplace actuellement vers la droite à tout moment Pendant ce redémarrage , notre journal avance actuellement vers la droite de 16 % au fil du temps et n'est pas basé sur le cerveau. Maintenant, lorsque notre joueur entre dans la zone de notre plateforme où il peut se tenir debout, nous allons régler la variable de plateforme de notre joueur sur true. Ainsi, lorsque nous vérifierons identifiant de la cellule pour voir si nous sommes debout sur plateforme aquatique, il sera vrai et si notre joueur ne sera pas tué. Ensuite, nous définissons la variable de plateforme courbe de notre joueur pour la plateforme actuelle égale à self, le corps du personnage ici. C'est émouvant, cela représente notre plateforme. Sur cette base, nous pourrons déplacer notre personnage ici. La plate-forme actuelle n'est pas égale à null. Si nous sommes sur une plateforme actuelle, nous allons déplacer notre grenouille dans la même direction, à la même vitesse. ne nous reste plus qu'à appeler cette fonction que nous avons créée, Set direction. Corps, direction définie, qui prend un entier, nous déplacerons ensuite vers la droite, nous utiliserons un nombre positif. Maintenant, si nous ajoutons la plateforme à notre scène et que nous la gérons, comme vous le voyez, il y a notre journal et si nous sautons dessus, oh, nous finirons par mourir. Il se peut qu'il soit nécessaire de mettre à jour cet appartement. Un moment là, un nouveau, de retour. Passez à autre chose en bas. Donne une autre chance à papa. OK, je suis en train de mourir. Il se peut donc que mes signaux aient besoin d'être reconnectés Je vais le déconnecter me reconnecter et faire de même avec ma sortie Déconnectez et reconnectez la sortie de mon corps et nous verrons si c'est le problème D'accord. Hé, je crois avoir vu ce que j'ai oublié ici et nous obtenons ces informations un peu trop rapidement. Donc, avant d'avoir notre instruction F dans notre identifiant de cellule de vérification, je vais utiliser un wait et faire ce que nous faisions auparavant avec get tree create timer. Et nous allons juste faire une petite pose de 0,1 et obtenir ce signal de temporisation. Cela devrait régler le problème pour nous. Allons-y. Maintenant, on peut sauter sur notre petit rondin et c'est bon. Nous pouvons sauter dessus d' avant en arrière, tout va bien, nous nous déplaçons et dès que nous sautons, nous pouvons retourner l'autre côté si nous voulons que cela reste. Si nous sautons à l'eau, nous sommes allés de l'avant et nous sommes morts. Bien, comment pouvons-nous rendre ce script un peu plus long, je suppose. Une solution modulaire en quelque sorte, d'une manière qui sera plus conviviale, afin que nous puissions constamment changer si nous avons deux sprites, trois sprites, un sprite, taille de notre forme de collision et avoir tout cela malgré tout De plus, je suppose, définissez notre direction de manière à ce que certains se déplacent vers la droite, d'autres vers la droite ou d'autres vers la gauche. Eh bien, nous allons aller de l'avant et exporter la direction d'un entier jusqu'à zéro. Par défaut, la barre de mots s'y trouve. Allons-y. Alors maintenant, je veux aller sur ma plateforme. Je peux le remplacer par un au lieu de zéro. Nous pouvons prendre une direction et la transmettre ici lorsque nous appelons set direction plus equals. Et nous pourrions faire la même chose ici où nous avons des temps de direction 16. Nous pouvons aller de l'avant, vérifier et nous assurer que tout fonctionne toujours. Nous n'avons rien cassé. Notre serrure est toujours en mouvement. Nous pouvons sauter dessus et d'accord, donc nous n'avons encore rien cassé. C'est génial Voyons voir, de quoi d'autre avons-nous besoin ? Eh bien, je suppose que ce serait ça. Et nous pouvons simplement définir ou créer toutes nos différentes plateformes maintenant en utilisant le même script que lorsque nous créons un sonder, comme nous l'avons fait avec nos camions Très bien, je reviens tout de suite. Pourquoi en créer deux ? Très bien, donc je suis allée de l'avant, j'ai aussi fabriqué de longues tortues et j'en ai juste jeté quelques-unes ici dans la scène. Et comme vous le voyez, continuez sur ce rondin, sautez sur la tortue suivante, sautez vers la droite, montez sur ma tortue, sautez sur le rondin, et je suis prête à sauter dans ce qui serait notre espace éolien. D'accord, nos plateformes fonctionnent certainement très bien. Maintenant c'est génial. Je veux savoir que j'ai ajouté du poids pour 0,1 sur le corps saisi avant de changer de plateforme notre script de plateforme. Je tiens à en prendre note maintenant. Il ne nous manque plus que nos sponsors. Très bien, alors allons-y et créons-les. Nous allons les fabriquer efficacement comme ceux de nos camions ici. Nous allons aller de l'avant et nous trouver ou ajouter un numéro deux D, nous l'appelons sponsor de plateforme. Nous allons commencer à les aligner. Donc j'en ai un là-bas, j'en ai un là-bas, j'en ai un, on dirait que c'est là. D'accord. Ce look le fait même. C'est en fait un endroit un peu bizarre. Oui, vas-y. Ensuite, nous en avons besoin de deux pour l' autre côté, pour les obstacles, prendre le relais et d'un pour les obstacles d'une heure C'est bon. Cela semble donc être de bons points d'apparition. Ceux-là sont un peu plus près. Ceux-là sont un peu plus hauts. Nous allons avoir quelque chose de similaire à notre camion spawn. Je vais aller de l'avant et simplement copier notre camion. Voyons voir, est-ce que ce sera le même nom différent, le véhicule ? peu près. Nous pourrions probablement nous en tirer en utilisant simplement notre script de camion ici. Nos plateformes porteraient le nom de véhicule, mais je pense que je voudrais en faire une autre parce que je n' aime pas les temps d'attente. Je ne pense pas que ce serait bon pour les plateformes. Je vais juste m'en servir comme base. Je vais cliquer sur ma plateforme dès que j'ajouterai un nouveau script ici Je vais aller de l'avant et simplement coller le script du véhicule. Je vais appeler ces plateformes. Nous allons passer à la plateforme. Instanciez pour l'instance de plate-forme self at child I wait time, voyez que c'est là que le problème va entrer en Voyons voir, nous allons passer à 1 à 2 et nous en ajouterons trois. Nous verrons comment cela fonctionne. Ensuite, nous passerons du véhicule d'apparition à la plateforme d'apparition. Celle-ci sera notre scène de plateforme de scène de log. La prochaine fois, il va voir, allez-y, faites simplement glisser mon script vers le haut et attachez-le à toutes mes plateformes. Et deux c'est ma scène de log, trois c'est la plateforme de log. Et puis 45 ans, ce sera pour moi. Très bien, donc si nous nous débarrassons de ces plateformes, déplacez mon joueur en dessous pour que le C puisse s'asseoir en haut. Voyons si elles fonctionnent. Oui, traversez jusqu'au bout, voici mes tortues. Il semble que nous devions modifier ces temps d'attente. Cela permettra à notre joueur de passer très facilement à travers. C'est pourquoi nous avons voulu utiliser un script différent de celui de notre camion, car nous aurons besoin de temps d' attente complètement différents pour les plateformes. Très bien, alors essayons plus dix. Cela nous donnera une variation de 11,12 secondes. Oh, pourquoi me suis-je intercalé entre ces voitures ? 11,12 secondes est peut-être un écart trop faible dans ce cas. À ce stade, nous voulons juste voir ce qui convient le mieux Peut-être que nous essaierons la version 5.6 . Je vais sauter jusqu'au bout et nous verrons à quoi ressemble ce spread. Mais à ce stade, vous ne faites que peaufiner vos chiffres pour voir ce qui convient à vos plateformes et ce qui convient à vos camions Je veux juste m'assurer qu' ils ne seront pas complètement cohérents tout le temps et qu' ils n'en ont pas l'air, ce qui est formidable. Sinon, si vous voulez les coder un peu plus en dur ou les faire la différence, venez spécifiquement ici et faites le temps d'attente ici Et nous allons en faire un flotteur, pas un plat. Vous pouvez également le faire ici et supprimer complètement cette ligne. Si vous vouliez avoir un montant précis, vous vouliez avoir le contrôle sur le temps exact que vous avez attendu par intervenant Vous pouvez le faire de cette façon, mais je vais continuer avec cette partie de randomisation ici Tu sais quoi, je vais y aller dix. Je pense que ça suffira pour ça. Parce que maintenant nous avons nos intervenants, nous avons nos plateformes Tout semble fonctionner. Nous pourrions le traverser. Je pense que nous pouvons ensuite remporter notre victoire, notre petite victoire là-haut en sautant dans la bonne zone. Voyons voir, est-ce que j' aime ces chiffres ? On a sauté à l' eau, on est morts. Génial Je pense que j'aime bien ces chiffres pour le moment, au moins. C'est bon, c'est ça. Nous en avons fini avec notre balançoire à plateforme et nous en avons fini avec elles. Ensuite, nous allons couvrir la zone où nous sautons dans notre zone de vent et où nous y faisons apparaître notre petite grenouille Très bien, je vous verrai dans le prochain. 11. L'espace Win: Très bien, pour la zone du vent, vous pouvez voir que j' ai une nouvelle scène ici. Et c'est juste une zone 2 D avec une forme de collision et la droite 2 D où se trouve ma grenouille natale comme texture. Il est désactivé ou la visibilité est désactivée par défaut. Vous pouvez le faire en cliquant sur le petit globe oculaire ici. Wind Space possède un script et un signal saisi par le corps y est connecté. Pour le script, tout ce que nous allons faire, c'est que le body wine est réglé sur true. La zone du vent est une nouvelle variable qui a été ajoutée au corps du joueur. L'état actuel est défini sur l'état du corps. Lorsqu'un nouvel État est ajouté ici, nous avons maintenant un mort vivant. Ensuite, il ne nous reste plus qu' à obtenir notre sprite à deux D, obtenir la propriété visible, à la définir sur true sur notre lecteur pour éviter tout problème et pour corriger un petit bogue J'ai tiré ici, si l'état actuel est égal à l'état mort. J'ai mis notre poids, notre poids d'une seconde ici et je l'ai retiré de la fonction de réapparition, elle se trouvait auparavant en haut Je l'ai juste sorti et je l'ai déplacé là-haut dans notre État. Cela devrait être tout ce qu'il nous reste à faire maintenant. Nous pouvons retourner à notre scène principale et importer notre zone de vent, notre espace éolien. Il suffit de le mordre dedans. Dans chacun de nos petits emplacements. Vous devrez peut-être faire quelques tests pour vous assurer que votre grenouille ne touche pas prématurément afin de déclencher le vent Ici, j'ai le mien qui couvre tous mes domaines. Si vous voulez vérifier les zones de collision et toutes ces débogage, il suffit de se rendre dans le menu de débogage en Et vous aurez la possibilité d'afficher des formes de collision visibles. Si vous le faites, vous verrez que nous pouvons voir toutes nos petites cases de collision ici pour tout. Nous y voilà. Si vous déclenchez accidentellement ou si vous le déclenchez peut-être, allez-y et activez-le. Jetez-y un coup d'œil vous-même. Vous verrez qu'une fois que nous serons remontés, nous devrions avoir un autre journal. Ça y est. Nous pouvons déclencher notre vent Remarquez que nous n'avons complètement imprimés sur notre console là-bas. Lorsque notre état est notre état actuel, l' État gagne, nous réagissons puis nous remettons la zone de vent aux chutes. Maintenant, nous utilisons également la zone du vent. Dans notre identifiant de portable, nous avons ajouté une autre condition ici. Si l'ID est égal à trois et que la plateforme est fausse, si nous sommes sur l' eau, nous ne sommes pas sur la plate-forme et notre zone de vent n'est pas vraie. Ou vous pouvez dire que la zone du vent est égale à faux, ce serait une autre façon de l'écrire. Alors on peut appeler mort. Si nous ne sommes pas dans la zone du vent, nous ne sommes pas sur la plateforme et nous sommes sur l'eau. Ensuite, nous tuons notre grenouille. Sinon, notre état du vent devrait être déclenché et nous pouvons simplement réagir sans tuer notre joueur. C'est bon. L' espace éolien est très simple, très facile à y faire. Maintenant, si vous laissez la grenouille activée ici, c'est à vous de décider. Si vous le souhaitez, vous pouvez entrer et ajouter un nœud de temporisation. Vous pourriez venir ici et ajouter un chronomètre, puis le régler sur, je ne sais pas, disons 5 secondes. Ensuite, nous pouvons entrer, ou plutôt connecter leur signal d'expiration à notre espace éolien. À la fin, nous réglerons notre sprite de deux D visible à faux Juste après l'avoir converti en vrai, nous pouvons commencer l'heure. Nous pouvons démarrer le chronomètre. Si nous devions procéder de cette façon, qui dépend de vous, c'est là qu'un peu de design entrerait en jeu. Dans quelle mesure voulez-vous que votre jeu soit authentique et personnalisé , etc. Donc mes serrures commencent à apparaître , donc je peux monter ici Nous attendons de traverser. Si nous utilisons la grenouille Tim er Here, notre petite grenouille domestique sera portée par le vent. Puis au bout de quelques secondes, il va disparaître. Donc, vous le voyez là-haut, et c'est parti, il disparaît. Si tu voulais disparaître comme ça , c'est comme ça que tu le ferais. Nous pouvons simplement ajouter cette minuterie dans votre espace éolien. Réglez la longueur que vous souhaitez dans l'inspecteur. Démarrez le chronomètre après avoir réglé le sprite pour qu'il soit visible lorsque le chronomètre expire, réglez-le pour qu'il tombe Très bien, ça suffira pour notre espace éolien. Et il suffit de regarder notre écran tête haute, notre hud ou notre gooey, et d'envisager de créer un système de score C'est bon, et je te verrai dans le prochain. Nous avons presque fini de créer un clone de Frogger 12. Correction d'une fuite de mémoire: Très bien, nous n'allons ajouter aucune fonctionnalité. Nous allons en fait corriger ce qui serait un accessoire crucial, surtout dans un jeu plus important Maintenant, nous avons une fuite de mémoire dans notre jeu. Nous l'avons obtenu à partir de deux points, techniquement, nous étions environ dix. Mais jetons un coup d'œil, si nous jouons à ce jeu, et que je vais juste le ressortir, je vais devoir décrocher les joueurs argentés. Vous pouvez voir tout apparaître hors écran et ils arrivent Il suffit de regarder ces voitures partir, et les plateformes situées en haut feront de même Ils vont continuer et ils vont y aller pour toujours. Ils ne s'arrêteront jamais. C'est ce que l' on appelle une fuite de mémoire. Tout, je vais en rester là , juste pour que nous puissions voir les choses plus facilement. Mais si je fais une pause et que je clique sur l'onglet distant en haut de notre arborescence de scènes, qui n'est disponible que lorsque le programme est en cours d'exécution. Nous avons cliqué sur la télécommande, nous avons jeté un coup d'œil à toutes ces voitures dans un seul générateur qui existe toujours , même si nous n'avons probablement pas besoin de la majorité d'entre Il en va de même pour tous les autres générateurs. Notre plateforme et nos générateurs de plateformes ne sont pas trop mal car leur taux d'apparition est beaucoup plus lent que celui des Mais ils vont durer éternellement et ils ne disparaîtront jamais. Ils ne seront jamais libérés de leur mémoire. Finalement, vous aurez ce petit jeu qui pourrait prendre 128 Go de RAM juste pour continuer à jouer Cela prendrait beaucoup de temps, mais tout finirait par s'additionner. Corrigeons ce problème crucial, je suppose que nous appelons cela un bogue. C'est très simple à faire pour nous. Nous devons juste mettre une instruction if dans ces deux scripts. Maintenant, les chiffres que vous choisissez ici dépendront bien entendu de votre projet. Mais d'après ce que j'ai testé et sur la base de notre fenêtre, un ensemble de chiffres que je vais utiliser ici. Ce que nous allons faire, c'est que maintenant je suis dans le script de ma plateforme et dans le processus, je vais juste vérifier si la position globale, maintenant la différence entre la position globale et la position globale est que si nous accédons à notre plateforme ici, par exemple, ce sera notre position locale, n' est-ce pas ? Donc, juste la propriété de position. Mais lorsque nous serons dans notre scène principale, c'est surtout cela qui déterminera la position locale que nous verrons à l'écran, quel que soit le parent. Par exemple, si nous examinons notre espace ici, nous pouvons voir que sa position notre écran principal est à 24 h 45. Il s'agira plutôt d'un espace global, alors que si nous allons plutôt d'un espace global, ici, nous pouvons voir notre espace éolien, notre position locale ici est 00 Il s'agit de deux chiffres différents. J'espère que vous avez du sens quant à la raison pour laquelle nous utilisons la position mondiale ici. Bien sûr, nous voulons la propriété X parce qu'elle va contrôler notre gauche et notre droite. Si notre X est supérieur à 436, cela représente environ 100 pixels hors écran vers la droite, selon l'endroit où se trouvent nos sponsors Cela laisse encore assez de place pour aller au-delà de cela. Si notre position globale x est supérieure à 4 436 ou si notre position globale x est inférieure à moins 100, nous allons passer d'environ 100 pixels hors écran dans les directions gauche et droite Si l'une ou l'autre de ces affirmations est vraie, tout ce que nous allons faire, c'est nous libérer de nous-mêmes. Très bien, maintenant nous devrions voir le personnage de nos plateformes se désactiver ou se supprimer mutuellement de notre mémoire ne s'agit là que d'une solution potentielle pour une telle situation. Une autre solution si, en fonction de votre jeu, par exemple, si vous faites quelque chose comme un enfer, vous devriez opter pour ce on appelle le pool d'objets. Et nous pourrons parler de la mise en commun d'objets dans une prochaine vidéo. Très bien, je vais donc me rendre à ma place ici, dans mes véhicules. Voyons voir lequel recherchons-nous ici sur le script de notre véhicule. Allons-y. Ce n'est donc pas à notre place sur le script d'un véhicule. Et la même chose assignée au processus va être collée dans le même code. Si la position du trait de soulignement global supérieure à 436 ou la position du trait de soulignement global x, la valeur est inférieure à moins 100 self . Maintenant, si je m'en occupe et que nous sommes dans la bonne scène, notre scène principale est là. Je vais aller de l'avant et faire une pause très rapidement. Construisez notre arbre à distance, nous pouvons jeter un œil à nos générateurs habituels, là où se trouveront les voitures Voici ma fenêtre de jeu pour le sortir. Si je continue et que je laisse ça jouer. Très bien, il y a des voitures qui apparaissent ici. Nous pouvons le voir ici. Je vais juste étendre la fenêtre vers la droite. J'ai une erreur à cet égard. J'ai plutôt l'impression d'avoir attrapé Gato. Voilà. Vous pouvez voir qu'ils sont dans la télécommande et qu'ils s'y trouvent visuellement. Une fois que vous allez assez loin, ils se suppriment complètement. Maintenant, nos objets sont tous gérés et nous ne pouvons potentiellement en avoir qu'un nombre limité ou un nombre limité dans notre scène à un moment donné. Vous pouvez voir les plateformes en haut faire de même, les mêmes choses se produire sur le côté gauche de la projection. Ce que nous ne pouvons pas voir pour le moment. C'est parti avec cette simple ligne de code, techniquement deux lignes de code. Nous avons notre mémoire, notre mémoire, elle ne fait que quitter mon esprit en ce moment, une fuite de mémoire. C'est marrant puisque nous parlons mémoire, mais voilà. Avec cela, nous avons résolu notre problème de fuite de mémoire. Je vais vous montrer un problème ici. Ce n'est pas vraiment un problème, mais juste pour vous montrer un autre exemple, nous passons à la plateforme. Si nous avons utilisé la position au lieu de la position globale, vous allez voir un exemple ici. Si nous y jetons un coup d'œil, vous allez voir, surtout en ce qui concerne les tortues, vous allez voir les tortues surtout en ce qui concerne les tortues, vous allez voir les tortues frayer juste à côté de cette zone D'accord ? Regardez-les. Ils arrivent lorsque nous utilisons cette position locale, et voilà. Vous voyez qu'ils disparaissent bien trop tôt. Ils apparaissent à peine à l'écran et disparaissent. Ils arrivent ici, et ils s'en vont. C'est pourquoi nous devons utiliser la position globale. Je voulais juste vous le démontrer un peu plus visuellement. Là, ne pas redessiner Q free, comme je l'ai dit, détruit complètement l'objet et l' enlève de la mémoire Très bien, alors voilà. Voici comment réparer cette mémoire. Très bien, nous allons maintenant passer au score et au hud, en ajoutant des vies de joueurs et tout ça dedans 13. Système de scoring: Très bien, dans la vidéo d'aujourd'hui, nous allons ajouter le système de points. Comme vous pouvez le voir ici, ce sont les règles que nous suivons. Dix points pour chaque étape, 50 points pour chaque prog qui entre et 1 000 points pour chaque fois que nous obtenons cinq procs. C'est ce que nous devons garder à l'esprit lorsque nous faisons cela. Je vais commencer par créer un script global, également appelé singleton ou script de chargement automatique Pour cela, je vais simplement cliquer avec le bouton droit mon système de fichiers et créer un nouveau script. Et je vais appeler ça, je vais juste rester simple et me mondialiser. Pour l'activer, nous allons dans les paramètres de notre projet. Voyons voir, est-ce que nous l'avons capturé en ce moment ? C'est ce que nous faisons. On y va, c'est peut-être un peu gros. Allons-y. Et nous entrons dans l'autolite, notre script global Le nom sera global par défaut, vous pouvez le modifier, mais je ne vois pas pourquoi nous devons l'ajouter. Et nous y voilà. Maintenant, nous pouvons utiliser ce script n'importe où dans notre code Je pense que c'est là que nous allons conserver notre score. C'est là que nous allons maintenir notre score. Si nous le fermons, nous pouvons maintenant ouvrir notre script global en double-cliquant dessus pour vous donner un exemple. Ici, nous pouvons descendre ici, créer une autre fonction appelée print score. J'ai une variable ici appelée score. C'est un entier qui indique que vous avez 50. Le but de cette fonction est simplement d'imprimer l'école dans un format global. Je pourrais accéder au script de mes joueurs ici. Je pourrais simplement écrire le nom que nous avions pour lequel je suis parti, qui s'appelait global pour la capitale. Ensuite, nous pourrions utiliser la fonction que nous venons de créer, imprimer la partition. Ensuite, lorsque nous l'exécuterons, nous verrons cette partition imprimée ici dans notre sortie. Un script global contient des variables et des fonctions que nous pouvons modifier et utiliser dans notre jeu, dans n'importe quel script et à tout moment. Allons-y et nous pouvons supprimer tous ces éléments et mettre le score à zéro par défaut. Nous allons aller de l'avant et créer une fonction appelée update score. Tout ce que nous allons faire ici, c'est imprimer notre partition. Sommes-nous affichés à l'écran dans cette vidéo ? Nous allons maintenant enregistrer l' affichage à l'écran pour le moment où nous commencerons à couvrir le Hud. Ici, nous allons juste procéder à l'impression de la partition. Lorsque cela se produit, le score de mise prendra le nouveau montant pour ajouter le score we do plus le nouveau montant que nous pouvons faire. Eh bien, assurons-nous d'abord que cela fonctionne. Chaque fois que nous sautons, nous obtenons dix points. ne nous reste plus qu'à l'ajouter à notre mouvement et à toutes nos pièces. Nous allons donc passer à la mise à jour globale, score de mise à jour, car nous ne l'avons pas encore enregistré. Mettez à jour le score et passez dix points. Et nous allons aller de l'avant, copier cela dans tous nos mouvements et passer au jeu. Et au fur et à mesure que nous avançons, nous devrions voir dix points s'ajouter constamment. Et voilà, 1030, 4050, 6070, 8090, 10110, etc. Donc, tous nos boutons fonctionnent. Fantastique Nous pouvons simplement augmenter nos points comme ça. Les points ici sont géniaux. Je suis juste allée de l'avant et je me suis débarrassé des autres impressions. Y a-t-il des faux ? Juste pour clarifier les choses, simplifiez-vous un peu les choses. Au fur et à mesure que nous courons dedans et que nous courons partout, vous pouvez voir dans nos résultats que notre nombre augmente à chaque fois que nous nous déplaçons. Allons-y. Cela fonctionne à merveille. Maintenant, nous devons également garder une trace du nombre total de grenouilles que nous obtenons Grenouilles. Cela ne semble pas être le montant que nous voulons. C'est ce que nous appelons un combo de grenouilles. Je ne sais pas Appelons-le le multi-grenouille. Multi frog, c'est un int, commence à zéro chaque fois que vous ajoutez du contenu au multi frog. Très bien, nous faisons Multi Frog plus = un. Je me souviens qu'avec chaque combinaison de cinq, nous obtenons 1 000 points. Voici où nous allons. Plusieurs grenouilles de moins de cinq. Ensuite, je vais juste appuyer sur cette ligne ici. Ensuite, nous allons simplement faire le score plus égal au nouveau montant. nous marquons un score égal à 1 000, nous en obtiendrons 1 000. Si nous obtenons cinq points, ce ne sera que si nous arrivons dans une zone de pointage. Nous ne pouvons pas réellement augmenter notre multirot, aller dans notre espace éolien et entrer dans notre corps entré C'est là que nous allons augmenter ce chiffre. Nous allons être un multigrenouille mondial plus égal à un. Et nous allons juste le coller là, à l'intérieur de notre espace éolien. Ensuite, nous allons également appeler notre score de mise à jour global de mise à jour. Et nous allons passer 50 parce que nous avons obtenu une grenouille, puisque nous augmentons notre score multiple avant de mettre à jour notre score. Nous mettons donc à jour notre multi-frog y un. Ensuite, nous vérifierons essentiellement si c'est notre cinquième grenouille ou si ce n' est pas notre cinquième grenouille, alors nous allons le faire. Nous allons simplement ajouter ces 50. Sinon, nous en ajouterons 1 000 . Ensuite, nous devrons remettre Multi Frog à zéro, car il faut le réinitialiser. Voyons voir si cela fonctionne. Très bien, nous sommes arrivés jusqu'ici. Allons-y et entrons dans la zone. Nous sommes sur le point maintenant, nous attendons que ces tortues arrivent par de petites tortues sur la grenouille tortue dans les tortues. Nous allons donc en avoir 290. Nous sautons dessus. Maintenant, nous entrons dans la zone où nous devrions passer à 340. Nous sommes passés à 350 points sur ce point parce que nous avons également déménagé en même temps Nous n'avons pas oublié que nous avions obtenu nos dix points. Fais cette grenouille ou travailles de cette façon. fait, cela fait longtemps que l'assiette n'a pas été publiée, donc je n'en suis pas sûre à 100 %. Si tel est le cas, alors pour résoudre ce problème, nous pouvons bien sûr simplement ajouter 40, puis cela comptera plus dix à partir de notre saut là-dedans. Si nous devions aller de l'avant et sauter dedans, maintenant cela ressemblerait à un plus de 50, mais comme je l'ai dit, je ne suis pas sûre que cela compte ce saut ou dans le jeu lui-même. C'est peut-être quelque chose que nous pouvons examiner. Peut-être que vous pouvez simplement laisser cela à choix personnel de décider si vous voulez ou non laisser cela compter efficacement sur la mort de Froggy J'ai dit que j'avais l'air d'avoir un Brad Frog, allons-y. On dirait que j'ai attrapé un petit insecte en sautant à un endroit bizarre. Maintenant, ma petite robe va bien. Cela nous place à 5 h 50, donc ce prochain travail nous placera à 600 Voilà. C'est à vous de décider si vous voulez en faire 40 ou 50 ici. qui revient essentiellement à savoir si vous voulez ou non compter cela comme votre principal, compter ces dix comme votre principal objectif. Et je me souviens juste que nous devrions probablement y faire entrer cinq grenouilles pour vraiment tester cela Je pourrais aller de l'avant et passer rapidement à la vidéo ici dans cette partie, juste pour que nous puissions en obtenir cinq. Bien, je l'ai lu et j'ai fait ma boucle plusieurs fois, cinq médicaments, et c' j'ai fait ma boucle plusieurs fois, cinq médicaments, est parti, nous avons obtenu jusqu'à 4 800 points Génial Ça a l'air de fonctionner parfaitement. Notre système de score fonctionne. Nous avons obtenu notre plus 40 ou 50, selon la façon dont vous avez envoyé votre demande, que vous comptiez ou non l'étape supplémentaire comme faisant partie de vos 50 ou que vous souhaitiez en faire 50 supplémentaires. En plus de cela, nous avons nos dix points par étape. Ici, nous avons plus de 1 000 à chaque fois que nous obtenons cinq multigrenouilles. Chaque fois que nous sauvons cinq de ces grenouilles, nous avons tous établi notre score Je suppose que nous pouvons ensuite voir comment l' afficher et commencer à nous mettre la tête haute. Hugo est prêt. 14. Score HUD pour le jeu: Très bien, allons-y et commençons à créer le capot de notre jeu dès aujourd'hui. Nous allons continuer et afficher le score ici sur notre écran. Pour cela, je suis juste allé sur mon No TD et j'ai ajouté une couche de toile. Si je viens ici, c'est la couche de toile que nous recherchons, non la couche de toile développée sur toile qui sera en gros tout ce qui se trouve au top de notre jeu, peu importe où elle se trouve dans notre scène. Comme vous pouvez l' imaginer, c'est donc là que se trouvent tous vos éléments les plus populaires. Si vous jouez, disons, à Dark Soles, c'est là que se trouvent vos quatre quadrants en bas à gauche Par exemple, si vous jouez à Sky Rim, vos trois barres de santé, d' endurance et de mana, W se trouvera en bas, etc. Pour nous, juste pour faire le score ici sur ma couche Canvas que j'ai renommée en interface utilisateur graphique Guy I Stanford. Je suis allée de l'avant et j'ai ajouté deux étiquettes, deux juste des étiquettes ordinaires ici. Et je l'ai appelé Score label, il ne contient que le mot score et le texte de la partition qui ne contient que cinq zéros Maintenant, le texte des deux était trop gros pour ce projet. Sur les deux, je suis allée voir l'inspecteur pour que le thème remplace la taille de l'obligation Ma technologie de partition est en taille 10 et l' étiquette de partition est en taille 12. Maintenant, vous remarquerez peut-être que j'ai une barre noire supplémentaire en bas. Je suis allé dans les paramètres du projet et dans la fenêtre d'affichage, j'ai mis à jour la hauteur de ma fenêtre d'affichage, 240-256 Voilà Vous pouvez le voir là-bas. J'ai donc ajouté 16 pixels supplémentaires pour pouvoir ajouter le noir en bas, car c'est là que se trouvera notre barre de santé, ou notre barre Lives dans la vidéo suivante. Bien, une fois que nous avons nos deux étiquettes sur notre couche de toile pour la partition, vous ne pouvez pas savoir où modifier le texte pour cela Il suffit de sélectionner votre étiquette et dans l'inspecteur haut, vous verrez la section correspondante pour le texte en haut, vous verrez la section correspondante pour le texte. Tapez le score pour l'une et mettez cinq zéros pour l'autre Cela nous donnera une bonne idée de l'espace dont nous aurons besoin. Bien, pour que cela fonctionne, il ne nous reste plus qu'à ajouter une ligne à notre script global ici, en dehors de notre bloc L S. En dehors des deux. Quel que soit le nombre de points que nous ajoutons, nous devons obtenir l'étiquette de texte de notre partition. Définissez le texte pour qu'il affiche réellement notre école puisque nous provenons de notre script global. Si je continue, que je l'exécute pendant un moment, puis que je poste, passage à Remote Global est là Il n'a accès à rien. En fait, nous devons monter une fois dans l'arbre pour atteindre la racine, puis redescendre à nos deux D, puis à notre gluant Ensuite, à partir de là, nous pouvons récupérer le texte de notre partition puisque nous devons monter puis descendre, nous pouvons continuer et simplement obtenir un nœud. Et n'oubliez pas que cela prend une chaîne comme argument. Et comme vous pouvez le voir, nous pourrions simplement écrire le chemin complet, juste Roth, deux D dans ce cas. Mais même dans ce cas, comme nous ne montons qu'à un niveau, c'est encore plus rapide si nous faisons juste deux points pour monter d'un point, puis nous descendons à notre nœud deux D. De là, nous accédons à notre Y, nous obtenons le texte de notre score, si vous vous demandez. Nous suivons simplement cette ligne blanche depuis notre espace global où nous écrivons ce code. Nous avons nos deux points, ce qui revient à écrire get parents. Nous remontons donc un à la racine. Ensuite, nous suivons simplement chaque arrêt avec cette ligne blanche. Nous voyons cette ligne blanche descendre , puis elle se divise en points. Il n'y a pas deux D, c'est là que nous avons écrit. Nous suivons à nouveau la ligne vers le bas, arrêtons et nous pointons vers le Y. Nous écrivons cela pour le prochain arrêt Ensuite, nous redescendons et cela pointe enfin dans le texte de notre partition. Et nous nous arrêtons là. Chaque fois que vous êtes dans les delts, allez-y, cliquez sur le nœud que vous recherchez Suivez simplement cette ligne blanche pour vous frayer un chemin sur le texte de la partition. Bien, cet objet de type étiquette, nous allons avoir accès à sa propriété de texte. Laisse-moi juste retirer le jeu de ton écran. J'ai juste regardé et j' ai vu qu'il était couvert. Encore une fois, nous utilisons deux points. Identique à get parent. Cela nous amène jusqu'au nœud racine et nous suivons simplement ces lignes blanches, qui descendent jusqu'au nœud deux. D représente le nombre de points, puis le nombre de points correspondant au texte de la partition. Et nous ne faisons que suivre ce chemin jusqu'au bout. Nous voulons sa propriété de texte et nous allons la définir. Nous allons le fixer à notre score. Cependant, si nous nous contentons de le faire, tous ces zéros vont disparaître. Comme vous le voyez, nous ne pouvons pas vraiment faire grand-chose à la partition à cet égard. Ce que nous allons faire, c'est transformer en une chaîne avec STR, puis deux parenthèses. Nous pouvons écrire notre partition à l'intérieur de cette Ce score va maintenant être traité comme une chaîne au lieu d'un entier. Maintenant, nous pouvons faire le pad, et nous pouvons le compléter avec des zéros Nous passons le numéro cinq. Nous allons avoir cinq chiffres comme nous le voyons ici, 12345. Nous allons donc avoir ces 50 machines à sous. Notre score va changer, mais même s' il indique juste dix, nous aurons toujours ces cinq machines à à notre disposition visuelle. Cela ressemblera exactement à ce que vous feriez sur une arcade. Et dans un système de notation classique. Si nous jouons maintenant, nous pouvons voir notre score en haut. Si nous revenons, nous devrions voir notre score augmenter comme il se doit. Il y a beaucoup de voitures là-haut. Allons-y. Suivons cela longtemps. Allons-y. Allons chercher des points. Montez sur le rondin, chevauchez les tortues, montez sur le rondin. Et nous pouvons chevaucher les tortues, monter sur le rondin et rentrer chez nous librement. Très bien, donc notre système de score semble parfaitement fonctionner. Il s'affiche avec précision. C'est fantastique. Bien, la dernière chose à faire pour le moment est, eh bien, dans cette vidéo, de ne rien faire. Mais dans la vidéo suivante, nous allons continuer à organiser notre vie de telle sorte que lorsque nous mourons, nous perdons une vie. Et cela se reflétera visuellement à l' écran en montrant combien de vies il nous reste réellement. 15. Vies HUD dans le jeu: Très bien, allons-y et ajoutons notre vie maintenant. Ici, nous aurons six vies tout au plus. Et nous allons passer à notre couche de toile gluante. Nous allons ajouter un nouveau nœud, je sais qu'il n'est pas visible. Juste 2 secondes. Voilà. Nous allons rechercher le mot texture. Nous recherchons la barre de progression de la texture. C'est bon. Je vais renommer le mien en barre Lives. Je vais passer à la section Textures l'inspecteur pour voir la progression. Je vais passer de la barre de santé à cet emplacement. Réglez à nouveau la valeur maximale sur six dans l'inspecteur. Je vais fixer ma valeur actuelle à six. Maintenant tu devrais les voir. Je vais prendre ce petit manche orange et le tirer vers le haut pour qu'il ne prenne que l'espace dont nous avons besoin. Je vais le faire descendre directement vers le bas dans cet espace noir vide. Ils vont fonctionner comme nos vies. Vous verrez qu'en ajustant les valeurs de 6 à 5, elles sont réparties de manière égale, afin que nous puissions facilement déterminer le nombre de vies qu'il nous reste Le six, bien sûr, sera notre valeur par défaut et nous devrons le modifier chaque fois que nous mourrons dans mon global ici Encore une fois, il serait peut-être plus logique de donner un nom à Game Manager , mais pour l'instant, il va s'en tenir à cela. Nous allons passer à Lives by default 6. Je vais créer une autre fonction, Update Lives, Nothing. Et nous allons suivre une voie sauvée. Au lieu d'un texte de partition, nous allons faire avancer des vies et nous allons accéder à la propriété de valeur que nous pouvons voir dans l'inspecteur. Nous allons dire plus le même montant. Le montant sera un paramètre que nous transmettrons qui marquera la fin lorsque nous perdrons une vie, nous lui ajouterons moins un, ce qui le ramènera à cinq. Cela nous donne également la possibilité d'ajouter des vies à l'avenir en ajoutant simplement une vie positive pour gagner une vie. Mais aussi en mettant à jour le fait que nous devons également mettre à jour nos vies. La même chose plus égale le montant. Maintenant, nous pouvons aller voir notre joueur, nous pouvons rechercher notre mort. Voilà, il n'y a pas de mort. Nous devons également accéder à notre script global. Mettez à jour les vies et transmettez-en une négative. Cela devrait suffire. très simple, une petite chose à faire Maintenant, lorsque nous mourons à l'écran, nous devrions perdre une vie et nous devrions voir notre barre descendre à cinq. Je dois le trouver parce que vous ne pouvez pas voir le fond. Voilà. Voyons si nous descendons à cinq. Voilà, on se sépare. J'ai percuté l'arrière de cette voiture. J'étais en train de le regarder, et on ne gagne points qu'en avançant sur Frogger Nous perdons également une vie lorsque nous allons dans l'eau. Nous pouvons procéder à cette mise à jour si vous le souhaitez. Si tu veux que ce soit un peu plus précis. Nous ne mettrons à jour le score que lorsque nous appuierons sur la gauche et la droite, cela ne nous rapportera aucun point. La seule pression vers l'avant le fera, ce qui est logique car cela représente beaucoup de points que vous pourriez accumuler très rapidement. Où sont mes journaux ? Ils y sont maintenant, nous chevauchons les tortues. Malheur à la tortue. J'allais prendre le journal, mais j'avais l'impression qu'il allait me manquer, alors je suis restée à sauter sur le rondin ici, puis nous allons sauter sur ces tortues et nous rentrerons chez nous gratuitement. Sur ce journal, nous y sommes. Très bien, génial. Nous y voilà encore une fois. Nous pouvons perdre l'ascenseur. Cool. Notre système live fonctionne. Il se met à jour visuellement à l'écran. Nous avons la capacité d'ajouter des vies à l'avenir. Très bien, je suppose que cela suffira pour cette section. À moins que nous ne voulions ajouter le live rentrée scolaire, c'est ce que nous voulons faire. C'est bon. Si vous voulez gagner des vies supplémentaires lorsque vous atteignez un certain nombre de points, voici ce que nous allons faire. Nous allons créer une variable appelée multiplicateur dans notre score de mise à jour. Nous allons effectuer une nouvelle vérification ici. Nous allons dire le score divisé par le score divisé par, nous pouvons dire 10 000 si vous le souhaitez, fois que notre multiplicateur est supérieur ou égal à un, alors c'est là que nous allons ajouter à notre vie. Nous devrions donc vivre des vies, normalement nous dirions plus égal à un. Mais comme nous voulons le plafonner à six, nous allons en fait dire « vies égales ». Et nous allons utiliser cette fonction appelée pince. Maintenant, clamp vous permet d' avoir trois arguments ici. Le premier argument est ce que vous ajouteriez au lieu de plus égal à un. Notre premier argument ici sera un. Ensuite, le prochain argument sera le minimum et le maximum que cette valeur peut être le minimum, elle pourrait être zéro. Notre vie ne descendra jamais en dessous de zéro. Ici, le nombre maximum que nous pouvons avoir est de six, donc ce ne sera jamais supérieur à six. C'est ainsi que fonctionne le serrage ici. Nous pouvons appeler les vies de mise à jour avec un, d' accord, donc nous allons avoir un plus un à ajouter à cela Nous pouvons simplement déplacer notre pince ici , à l'intérieur de nos vies de mise à jour, et en remplacer une par une monture. Alors nous pourrions probablement nous en sortir sans rien avoir là-dedans, sans rien configurer. Restons-y, Update vit sur e. Ensuite, nous allons vouloir augmenter notre multiplicateur plus égal à un Et la raison pour laquelle nous voulons le faire c'est que si nous ne le faisons pas, nous gagnerons constamment des points de vie, car notre score sera toujours divisible Une fois que nous aurons gagné une vie, chaque fois que nous bougerons, nous continuerons à en gagner. Nous voulons changer cela. Si nous obtenons un point de vie tous les 10 000 points, alors nous obtiendrons 10 000 fois 10 000, puis la prochaine fois 10 000 fois deux, nous aurons besoin de 20 000 points pour obtenir une nouvelle vie. Et puis ce sera 30 040 et cetera. Si nous devions gérer les choses maintenant avec cela, nous pourrions voir si nous nous heurtons, si nous y allons et si nous perdons une vie, peut-être même deux. Maintenant, nous devons monter, traverser tout ce trafic. Nous devons nous diriger vers ce journal. Ensuite, nous pouvons monter à nouveau sur le journal des tortues , passer aux tortues, attendre que le journal arrive ici, et ensuite si notre score est suffisamment élevé, nous devrions en obtenir 10 000 ce que je n'ai pas changé maintenant que j'y pense. C'est donc un peu décevant, mais nous pouvons vérifier cela très rapidement en allant dans notre espace éolien et en disant : « Hé, nous gagnons 20 000. Maintenant si nous devions vérifier pour gagner des points sur 10 020, cela ne ferait rien Cela devrait juste nous donner une seule vie, ce qui est bien car vous ne devriez jamais avoir 20 001 chiens Quoi qu'il en soit, le maximum que vous devriez obtenir en une seule fois sera 1 000. Ce que vous voyez au fur et à mesure, boum, nous y sommes presque. Nous devrions voir notre vie au bas de l'échelle augmenter, plus une. Nous y voilà. Nos vies se sont donc améliorées. Très bien, nos vies fonctionnent maintenant. Je vais aller de l'avant et ramener ce point à 40 points. Nous voulons nous assurer de pouvoir terminer la partie. Ça va être le cas. Je suppose que dans le cadre de notre mise à jour mondiale, nous allons aller de l'avant et voir ça. Passons au négatif un par hasard. Non, ce ne sera pas le cas. C'est parfait. Nous n'avons pas à nous inquiéter à ce sujet. Nous pourrions dire que si elle vit, nous n'en aurions pas déjà besoin parce que nous sommes en train de l'installer ici. Nous avons vérifié au préalable. Nous disons donc que si des vies sont inférieures à zéro, ce serait déjà zéro. Disons qu'il ne nous reste plus aucune vie, puis nous mourons, non ? Nous en adoptons un autre négatif. Nous disons que si nos vies sont déjà nulles, alors la partie sera, disons, terminée, mais nous allons simplement recharger la scène dans un tout nouveau jeu Si nos vies ne sont pas déjà nulles, alors nous allons venir ici et nous allons soustraire notre vie. Pour cela, nous utilisons simplement get three reload currency et ce sera la même chose que si nous venions de commencer la scène Si nous écrivons dans notre vie, cela ne se réinitialise pas, probablement parce qu'ils ne se réinitialisent pas sur Global. Découvrons-le. Passons à notre version prête et voyons comment nous le déboguons, disons Print Lives, et nous verrons si cela se réinitialise Nous sommes en train de nous faire écraser. Nous ne sommes jamais vraiment prêts à revenir et il se réinitialise constamment. Très bien, donc au lieu de le préparer, imprimons-le ici. J'essaie de comprendre pourquoi nous sommes constamment éparpillés ici. Il se réinitialise après deux heures, comment allons-nous 6-0 ? D'accord ? Je ne sais pas pourquoi, mais il semblerait que ce soit à l'origine de cette rupture, car je n' ai aucune vraie raison de croire que cela aurait dû être un saut de six vies pour tomber à zéro. Mais c'est bon. Je viens de le remplacer par des vies plus un montant égal maintenant si nous lançons le jeu et voyons si nous pouvons recommencer à perdre des vies une par une. Une fois que nous avons perdu trois vies pour une, nous voilà plongés dans l'eau. Nous n'avons plus de vies quand nous sommes touchés. Ensuite, la partie sera terminée et notre jeu va être réinitialisé. Voilà, nous avons réinitialisé notre jeu. Nous nous retrouvons rapidement, nous pouvons recommencer à perdre des vies, mais voilà. Nous avons cette réinitialisation. Nous perdons maintenant des vies et nous nous affichons à l' écran de manière appropriée. Lorsque nos vies sont trop faibles, nous réinitialisons complètement le jeu et recommençons, gagnons des vies chaque fois que nous obtenons 10 000 pièces. 16. Minuterie et bonus: Très bien, passons maintenant notre Tim Er à notre homme. Je viens d'ajouter une autre étiquette ici avec le mot heure avec une dérogation, taille de police étant fixée à 12 J'ai alors une barre de progression des textures, comme nous l'avons fait avec notre vie ici. J'ai changé le mode de remplissage pour qu'il soit de droite à gauche au lieu de gauche à droite. Je vais le renommer ici, Tim Bar. Ma valeur maximale 30, ma valeur actuelle 30. Tout le reste reste le même. J'ai activé l' étirement à neuf patchs pouvoir étirer cette barre à la forme, à longueur et à la largeur que je souhaite. Et j'utilise juste le chronomètre et celui que j'ai là, je le fais simplement glisser comme barre de progression depuis la texture de progression. Voilà. Je l' étire, le place là pour obtenir quelque chose de beau. J'ai aussi un chronomètre que j'ai ajouté ici avec un script sur mon gars et le signal de temporisation qui y est connecté. C'est ce que nous examinons ici. Ce que nous devons faire à chaque fois, cette fois ou plusieurs fois par défaut, le chronomètre est réglé sur 1 seconde, ce qui est bien. C'est ce que nous voulons. Ce que nous voulons faire si nous voulons gagner notre temps ou barre et que nous devons en soustraire un de la valeur, nous pouvons simplement le saisir avec notre signe dollar Voilà, puisque cela vient de notre valeur nominale moins un. Maintenant, si nous devions aller de l'avant, y jeter un coup d'œil et lancer cela, nous devrions maintenant voir notre chronomètre tourner. Magnifique. C'est exactement ce que nous voulons. Maintenant, il faut vérifier. Nous devons vérifier si valeur de notre barre de chronomètre est nulle. Si c'est le cas, malheureusement, notre petite grenouille doit mourir. C'est exactement comme ça quand le temps imparti est compté. Allons-y et trouvons notre nœud F. N'oubliez pas que nous sommes là, donc nous allons devoir en monter un pour notre nœud, deux D, puis redescendre en bas du joueur. Et nous allons simplement y associer notre fonction de mort. Oups. Et cela devrait être égal à deux, car c'est une comparaison si nous voulons l'exécuter. Maintenant que le temps imparti est écoulé, notre petite grenouille devrait simplement s' éclabousser et nous perdrons une vie sur Il suffit d'attendre une minute pour que le temps soit écoulé. Maintenant que ce chronomètre est de 30 secondes, je constate que mes plateformes en haut doivent être un peu plus rapides ou au moins un peu moins retardées. Je pense que la vitesse est peut-être la meilleure option plutôt que de modifier le délai. Mais nous y voilà. Une petite grenouille est morte. Et ça continue de mourir, ce n'est pas génial. Nous devons vraiment le réinitialiser. Maintenant, une fois qu'il aura atteint zéro et que notre grenouille sera morte, réinitialisons notre barre de chronomètre Récupérons la barre du chronomètre et remettons sa valeur à 30. Nous pouvons faire remplir un tout nouveau bar. Maintenant, ce n'est pas le seul moment où il doit être réinitialisé, il doit également être réinitialisé lorsque nous atteignons l'objectif Nous allons aller de l' avant et faire monter le nœud d'un point, prendre notre gooey, puis récupérer notre barre de chronomètre et remettre la valeur à 30 Maintenant, avant de tester cela, je vais accéder à ma plateforme ici. Je vais passer à 32 et doubler cette vitesse. Cela signifie que je dois accéder à mon lecteur et l'ajuster. Eh bien, quand nous sommes ici, 32 ans maintenant devraient au moins aller plus vite et j' espère pouvoir continuer sans me manquer. Voilà les tortues. Nous avons besoin de quelques journaux. Journal. Je ne sais pas si je vais y arriver. Je ne vais pas y arriver. Je vais perdre ma grenouille. Au revoir pour un câlin. Je savais à peine que vous voyez, ça va être un peu difficile. Notre heure se réinitialise-t-elle ou non lorsque nous éclaboussons ? Ce n'est pas le cas, nous devons donc également le configurer sur notre lecteur. Où est-ce que nous mourons ? Notre mort est là. Et nous répondons. OK, ouais, allons-y encore une fois en profondeur. Nous allons monter puis redescendre sur notre barre de minuterie et remettre la valeur à 30. De cette façon, quand on meurt, ça se réinitialise. Je suppose que je vais changer que respawn, le spawn de la plateforme de valeurs du générateur. Je vais supprimer le plus six. Voyez à quoi cela ressemble maintenant puisque nous avons des chiffres complètement nouveaux. OK, ça a l'air bien. Nous pourrions être en mesure de le faire maintenant. Allons-y. Nous l'avons fait lors de la réinitialisation du chronomètre. Et quand on mourra, notre chronomètre. Alors réinitialisez également. Fantastique Je peux voir que j'ai encore besoin d'un petit coup de pouce là-dedans. Au minimum, je vais faire 3 secondes juste parce que j'ai vu un certain chevauchement quand je suis passé par là. Mais nous avons vu que le chronomètre fonctionne parfaitement maintenant. Maintenant c'est le cas, ou du moins vous êtes censé obtenir un bonus en termes de points, en fonction du temps qu'il vous reste pour marquer. Nous allons également aller de l'avant et le mettre en œuvre. Je dois juste me réactiver avec le multiplicateur Je sais que c'est quelque fois le temps qu'il reste. Alors, donne-moi une seconde. C'est bon. C'est dix fois le temps qu'il reste. Voyons voir quand nous arriverons à notre espace éolien, avant de le réinitialiser, nous devrons à nouveau mettre à jour le score ici. Nous allons en ajouter 40, mais ensuite nous allons également ajouter ce qui reste ici. Nous allons dire, en fait , mettons cela dans sa propre variable ici. C'est ce que nous appelons le bonus à la tarte. Dix bonus. Tarte en prime. Bien sûr, je veux l'envoyer à cette valeur multipliée par dix avant de le réinitialiser. Maintenant, lors de notre deuxième mise à jour du score, nous faisons un bonus de temps. Très bien, alors maintenant nous devrions avoir notre bonus de temps là-dedans. Donc, plus vite nous pourrons y aller, plus nous obtiendrons un bonus important, jusqu'à un maximum de 300 points. En théorie, je veux dire, vous n' y arriverez pas alors qu'il reste 300 ou 30 secondes parce que ça commence à Il se peut que je n'y arrive pas du tout. C'est peut-être proche. Je l'ai. Mais vous pouvez voir que j'ai obtenu 190 points sur ce point. C'est bon, allons-y. Nous avons le chronomètre dedans, ainsi que les décès lorsque le temps imparti est écoulé, et le bonus de score lorsqu'il nous reste du temps ou qu'il nous reste du temps et que nous arrivons à la fin. C'est bon, alors c'est tout. Je pense que c'est peut-être ça. Ou une grenouille. Je ne pense pas que j' oublie quoi que ce soit ici. Si c'est la fin de Frog, félicitations, vous êtes arrivée jusqu'au bout, c'est incroyable. J'espère que vous avez beaucoup appris. Nous avons passé en revue beaucoup de choses tout au long de ce projet. Les variables fonctionnent avec de nombreux scripts différents, mais nous avons complètement recréé ce jeu des années 1980 Et ce qui est génial avec ces vieux jeux, que leur concept est assez simple, mais surtout si vous débutez dans le domaine de la programmation, vous pouvez apprendre beaucoup de ces jeux. C'est bon. Prends soin de toi. Prenez-en une bonne et je vous verrai la semaine prochaine. Quoi ? Je vais entrer dans une semaine maintenant. Oh mon dieu, la quatrième semaine va être amusante. Nous avons beaucoup de choses à dire là-dedans. 17. Audio pour frogger: Tout, nous allons d'abord ajouter l'audio. Cela va donc compter nos sauts lorsque nous déplaçons la musique de fond et que nos sons de mort retentissent Parfait pour notre musique de fond. Nous pouvons simplement passer à notre scène principale ici. Sélectionnez notre nœud racine, qui est notre nœud deux D , appuyez sur le signe plus ou ajoutez un nouveau nœud. Et ce que nous allons ajouter, c'est ce lecteur de flux audio ici. Ensuite, nous allons aller dans notre dossier de sons, récupérer les trois morceaux de musique, les y faire glisser, nous assurer d' activer la lecture automatique. De cette façon, nous n'avons pas à gaspiller un script et à écrire du code pour le jouer. Ça va juste commencer tout seul. Attention, cela peut être un peu bruyant au démarrage. Si vous souhaitez régler le son uniquement pour la musique ici, vous pouvez modifier le volume. D, B ici, plus vous le mettez bas, zéro sera silencieux, c' est la valeur par défaut pour chacun d'entre eux. Toutefois, si vous souhaitez réduire le volume de la musique pour tous vos fichiers audio en même temps, vous pouvez cliquer sur un petit onglet audio en bas, en bas. Et voici l'intégralité de votre bus audio. Nous avons le master ici, si vous avez modifié les paramètres audio et les jeux avant de vous en rendre compte, nous avons le curseur principal. C'est ce que c'est ici. Nous pouvons en modifier le volume comme bon nous semble. Si vous souhaitez ajouter un bus audio différent, vous pouvez personnaliser vos effets sonores séparément de la musique. Nous pouvons simplement appuyer sur le bus d'ajout ici. Nous allons simplement le renommer en musique. Maintenant, avec notre lecteur de flux audio sélectionné, vous le remarquerez dans la section bus de l'inspecteur Nous avons maintenant un morceau de musique ici dans le menu déroulant. Cette musique passera d'abord par ce morceau audio, puis elle sortira, au master comme vous vous y attendriez. vrai. C'est donc à vous de décider ce que vous voulez faire. Je vais aller de l'avant et baisser ma musique à 0,6 peut-être. Je ne suis pas sûr. Je vais m' assurer que vous pouvez vraiment entendre ça. J'espère que cela ne fera mal aux oreilles de personne. Je vais appuyer sur Play pour le découvrir. C'est bon. Il semble donc que c'est plus calme que moi, donc je suppose que c'est bon Mais si vous le souhaitez, vous pouvez toujours le baisser un peu plus. Je pense que je vais opter pour moins dix ici. Maintenant, le reste de notre son sera transmis par notre lecteur. Parce que notre joueur l'a fait, il a le même avantage que notre joueur. L'autre effet sonore dont nous avons besoin, notre autre mort. Le plunk, le squish et le hot. Nous allons passer à nos joueurs. Même. Nous allons également leur ajouter un lecteur de flux audio. Nous n'allons toucher à rien d'autre, inspecteur, sauf si vous souhaitez ajouter un bus audio pour les effets sonores, puis changer de bus spécifiquement à cet endroit. Cela dépend de vous et encore une fois, c'est une préférence personnelle. Mais une fois qu'un lecteur de flux audio a été ajouté à la scène de vos joueurs, nous pouvons accéder au script de vos joueurs. Ce que nous allons devoir faire, c'est définir le flux audio en chargeant le fichier audio, puis en le lisant. Ce que je vais faire, c'est d'abord aller à notre cérémonie de décès, et un identifiant lui sera transmis. D sera évidemment un entier car nous allons obtenir deux ou trois. Je vais donc appeler un int et le définir égal à deux par défaut. La raison pour laquelle j'en utilise deux, c'est que si nous revenons à notre carte en mosaïque et que nous y jetons un coup d'œil, notre route est l'ID deux. Par défaut, ce devrait être notre route. Ça devrait être un squish. Ce que je vais faire ici, c'est que nous allons diffuser notre lecteur de flux audio, notre lecteur de flux audio, flux audio via cette propriété de flux. Vous êtes sur notre lecteur, c'est vrai, ce stream ici. Et nous allons le définir comme égal à, et nous allons appeler load open et closed parentheses Et à l'intérieur, ce sera le chemin de notre fichier. Deux seront notre chemin par défaut, ce sera notre squish. Je vais donc acheter du squash, du squash. Sortez de notre dossier Sounds et faites-le glisser dedans. De cette façon, je n'ai pas à l'écrire. Maintenant, à la ligne suivante, nous allons dire que si l'ID est égal à 33, souvenez-vous que c'est notre eau. Si nous sommes en train de mourir et que c'est sur l'eau, alors nous allons faire la même chose que sur la ligne précédente et définir notre cours d'eau. Et chargez un nouveau fichier, cette fois, un ensemble de squash. Nous allons charger Plunk. Ensuite, en dehors de cette instruction if, tout ce que nous allons faire c'est diffuser notre stream. Nous allons donc dire lecture du lecteur de flux audio , juste comme ça. Maintenant, si nous nous retrouvons écrasés sur la route, nous devrions avoir un seul effet sonore Et si on saute dans l' eau, on devrait en avoir un autre. OK, pour l'instant, je vais simplement désactiver la lecture automatique de la musique pour que nous puissions l'écouter Si nous sautons à l' eau, renversons-nous en voiture. OK, nous avons le même son sur les deux. Eh bien, c'est un peu intéressant. Pourquoi ça ? Eh bien, apparemment, nous ne communiquons aucune pièce d'identité pour trois personnes. Il n' y en aura jamais trois. La raison en est que n'oubliez pas que nous devons aller vérifier, vendre une pièce d'identité. Nous sommes en train de vérifier si notre grenouille est en train de se noyer, c'est ce que nous devons transmettre à notre mort Maintenant, il n'y a pas eu d'erreur parce que nous lui avons dit que si nous n'y transmettions rien, comme c'était par défaut, mais comme nous voulons spécifiquement un identifiant de trois, chaque fois que nous sommes dans l' eau, nous devons nous assurer de le transmettre ici dans notre fonction de vérification de l'identification des cellules. Maintenant, si nous devions le faire, nous devrions avoir notre torse dans l'eau et écrasés sur la route Nous y voilà. Nous savons si cela fonctionne parfaitement. Il ne nous reste plus qu'à sauter. Pour cela, il ne nous reste plus qu'à vérifier notre flux audio et définir que le flux lecteur de flux audio est égal à la charge. Et je risque de saisir notre effet sonore et de l'y faire glisser. Sur la ligne suivante, nous pouvons simplement jouer notre lecteur de flux audio. Nous pouvons le copier à chaque fois que vous appuyez sur un bouton ici. S'il est en panne, nous pouvons le faire. Boum, c'est parti. Et si c'est le cas maintenant, si nous y jouons, nous devrions être capables de sauter partout. Passons à notre scène principale et essayons de montrer que le bas peut montrer les eaux souterraines, vers le bas, vers le bas, vers le bas, vers le bas, vers le bas, vers le bas, vers le bas. Génial. Il ne nous reste plus qu'à réactiver la musique sur notre lecteur de flux audio de scène principal, Autoplay, réactivé comme ça Nous avons le jeu Frogger complet avec notre audio et notre gameplay J'ai été percuté par l'arrière de la voiture là-bas. Mais voilà. Nous y avons ajouté du son, et maintenant notre jeu semble beaucoup plus complet. Il n'y a rien d'autre que nous puissions vraiment faire ici. Vous pouvez vous sentir libre d'en ajouter d'autres. Vous pouvez essayer d'ajouter des ramassages. Vous pouvez trouver de nouveaux sons et les remplacer. Peut-être que si vous voulez créer vos propres sprites et les utiliser pour les modifier un peu, vous pouvez les personnaliser un peu plus Ou si vous voulez simplement en faire votre propre petit remake d'arcade, c'est génial aussi. Mais ça suffira pour celui-ci. Prends soin de toi et porte-toi un bon sac sur le dos. Nous avons terminé Frogger. La semaine prochaine, je pense que nous allons commencer à parler de certaines des différences et des similitudes entre deux D et trois D et commencer à aborder la question.