Le Bootcamp Godot | Michael Mcguire | Skillshare

Vitesse de lecture


1.0x


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

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 du cours

      7:47

    • 2.

      Télécharger et configurer

      8:55

    • 3.

      03 Imprimer pour sortir des images ajoutées

      14:53

    • 4.

      04 Variables

      10:22

    • 5.

      05 cordes

      12:25

    • 6.

      06 Entiers et flottants

      10:42

    • 7.

      07 Constantes et commentaires

      7:29

    • 8.

      08 Listes

      10:22

    • 9.

      09 Ajouter et supprimer

      10:28

    • 10.

      10 Pousser et trier

      6:58

    • 11.

      11 pour Loop

      10:18

    • 12.

      Gamme de 12

      5:40

    • 13.

      Égalité 13

      13:50

    • 14.

      14 si elif else

      11:02

    • 15.

      15 dictionnaires

      16:54

    • 16.

      Obtenir des entrées

      17:17

    • 17.

      17 while Boucles

      8:03

    • 18.

      18 Fonctions et arguments

      7:59

    • 19.

      19 Alias de fonctions

      8:14

    • 20.

      20 cours

      12:46

    • 21.

      Ce que nous allons faire(espace rempli)

      2:01

    • 22.

      Créer le livre d'histoires

      8:05

    • 23.

      Créer l'interface

      12:35

    • 24.

      Sélectionner l'histoire et inviter le joueur

      24:53

    • 25.

      Fin et recommencer

      16:07

    • 26.

      Ce que nous allons faire(espace rempli)

      2:01

    • 27.

      Tilemap vs nouveau TilemapLayer

      5:30

    • 28.

      Créer l'arrière-plan

      9:10

    • 29.

      Créer le joueur

      6:02

    • 30.

      Mouvement de joueur

      20:07

    • 31.

      Créer les véhicules

      25:47

    • 32.

      Mort du joueur et résurgence

      23:33

    • 33.

      Mort de l'eau (article en anglais)

      7:44

    • 34.

      Plateformes d'eau

      21:56

    • 35.

      L'espace de victoire

      6:59

    • 36.

      Correction de fuite de mémoire

      9:56

    • 37.

      Système de notation

      13:06

    • 38.

      Score de jeu HUD

      8:19

    • 39.

      Vies de jeu HUD

      15:25

    • 40.

      Chronomètre et bonus

      10:48

    • 41.

      Audio Frogger

      10:28

    • 42.

      Passer du travail en 2D à la 3D

      6:03

    • 43.

      Comprendre les différences entre la 2D et la 3D

      4:12

    • 44.

      Les similitudes entre la 2D et la 3D

      6:37

    • 45.

      Fournitures

      14:48

    • 46.

      Éclairage

      17:15

    • 47.

      Actifs 3D

      4:33

    • 48.

      Grille

      15:53

    • 49.

      Créer le joueur

      7:10

    • 50.

      Mouvement de joueur

      8:05

    • 51.

      Créer des véhicules

      20:27

    • 52.

      Mort du joueur et résurgence

      11:41

    • 53.

      Mort de l'eau (article en anglais)

      7:04

    • 54.

      Plateformes d'eau

      25:46

    • 55.

      Corriger la fuite de mémoire

      4:51

    • 56.

      Gagner de l'espace

      9:36

    • 57.

      GUI de score et minuteur

      19:37

    • 58.

      Qu'est-ce qu'une API

      4:04

    • 59.

      Comment utiliser une API

      5:07

    • 60.

      Configuration de script

      6:44

    • 61.

      Passer des appels API

      15:10

    • 62.

      RapidAPI de Python vers GDScript on

      19:14

    • 63.

      Que sont les WebSockets (espace rempli)

      4:53

    • 64.

      Établir un lien

      14:20

    • 65.

      Envoyer des données avec WebSockets ets

      7:46

    • 66.

      En quoi le développement d'un ordinateur de bureau est-il différent

      4:32

    • 67.

      Ancrages

      5:36

    • 68.

      Mise en page de recherche

      10:52

    • 69.

      Mise en page des résultats

      8:02

    • 70.

      Faire une recherche

      26:20

    • 71.

      Vignettes, titres, genres

      22:42

    • 72.

      AnimePage

      27:52

    • 73.

      les polices de caractères

      8:42

    • 74.

      Thèmes personnalisés

      14:53

    • 75.

      Fenêtres multiples

      5:13

    • 76.

      Barres de menu

      18:08

    • 77.

      Whast are Particles

      3:29

    • 78.

      Créer un feu en 2D

      15:50

    • 79.

      Créer un feu en 3D

      14:15

    • 80.

      Comment coder n'importe quel mécanique

      3:53

    • 81.

      Gravité et saut

      10:58

    • 82.

      Sauvegarde et chargement des fichiers

      27:52

    • 83.

      Déclencheurs et pédales als

      6:35

    • 84.

      Vibration du contrôleur

      3:26

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

451

apprenants

--

projets

À propos de ce cours

J’ai le plaisir de vous présenter sous la forme d’un bootcamp à partir duquel vous allez vous lancer dans un voyage immersif destiné à maîtriser le développement de jeux et à créer un puissant logiciel de bureau basé sur une GUI en utilisant le moteur de jeu polyvalent Godot. en anglais ? Que vous soyez un débutant ou un développeur expérimenté, ce cours complet est conçu pour vous équiper des compétences et des connaissances nécessaires pour exceller dans le monde de la création de logiciels interactifs.

Godot est un moteur de jeu très prisé, connu pour sa flexibilité et ses fonctionnalités robustes. Dans ce bootcamp, vous allez plonger dans les capacités de Godot en explorant les techniques de développement de jeux en 2D et en 3D. Vous apprendrez les tenants et les aboutissants du développement de jeux à l'aide de Godot, de la conception de mécanismes de jeu captivants à la mise en œuvre d'effets visuels étonnants.

Mais ce n'est pas tout : cet atelier va au-delà du développement de jeux. Nous allons également nous aventurer dans le monde des logiciels pour ordinateurs de bureau avec une interface graphique. Vous découvrirez comment concevoir des interfaces conviviales, créer des applications interactives et tirer parti des API et des Web sockets pour établir des réseaux en temps réel.

Ce qui distingue cet atelier intensif est son approche pratique et basée sur des projets. Tout au long du cours, vous participerez à des jeux, à des projets pratiques et à un travail de groupe collaboratif, ce qui vous permettra d'appliquer vos nouvelles connaissances et de développer un portefeuille de projets impressionnants.

À la fin de cet atelier, vous maîtriserez le langage de programmation GDScript et vous saurez utiliser la vaste palette d’outils de Godot. Que vous aspiriez à créer des jeux indépendants, à faire carrière dans le développement de jeux ou à créer des applications intuitives sur bureau, le Godot Bootcamp vous permettra de transformer vos idées en réalité.

Ce que vous allez apprendre :

  • Le moteur de jeu Godot et ses fonctionnalités pour le développement de jeux

  • Nous plonger dans GDScript, le langage de script intuitif de Godot, afin de développer les mécanismes du jeu et les interactions

  • Créer des jeux 2D captivants grâce à la manipulation de la pile et aux animations et à la détection de collision (

  • Explorer le domaine du développement de jeux en 3D, y compris la création de scènes, l'éclairage et les contrôleurs de personnages

  • Développer un puissant logiciel de bureau basé sur une interface utilisateur graphique avec des interfaces intuitives et des éléments interactifs

  • Utiliser des API et des Web Sockets pour mettre en œuvre des fonctionnalités de mise en réseau en temps réel

  • Acquérir une expérience pratique grâce à des quiz et des projets

  • Accédez à une multitude de ressources, de tutoriels et à une communauté de collègues apprenants et de superbes apprenants


Que vous soyez un joueur passionné, un développeur en herbe ou un passionné de technologie, le Godot Bootcamp vous fournira les connaissances et les compétences nécessaires pour exceller dans le domaine dynamique du développement de jeux et de la création de logiciels GUI.

Inscrivez-vous dès maintenant et lancez-vous dans un parcours excitant qui permettra de devenir un développeur Godot compétent !


* les éléments de grenouille sont joints à la page du projet
** Toute version ultérieure à Godot 4.0 devrait fonctionner

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 du cours: Bonjour et bienvenue au camp d'entraînement Got to. Je suis Mike Maguire, et je serai votre instructeur tout au long de ce cours Dans notre première vidéo, nous allons passer en revue tout ce que nous allons aborder tout au long de ce cours, qui portera principalement sur que nous allons aborder tout au long de ce cours, qui portera principalement développement de jeux au sein du moteur de jeu GoTo Cependant, nous allons également aborder un peu de développement logiciel dans le cadre duquel vous créerez vos propres applications de bureau, lancerez dans des domaines tels que les API et les sites Web afin que tout communique entre eux Et tous ces éléments peuvent toujours être remontés en boucle et utilisés dans les jeux eux-mêmes Nous pouvons donc toujours considérer que tout fait partie du développement d'un jeu en fin de compte. Jetons un coup d'œil à la présentation du moteur de jeu Goto Eh bien, Goto est un moteur de jeu puissant et polyvalent qui offre un large éventail de fonctionnalités et outils très utiles pour le développement de jeux Maintenant, un exemple de cela est quelque chose comme la physique des tissus, par exemple. Imaginons que vous vouliez confectionner une cape sur un personnage. Dans Goto, cela pouvait être configuré en une minute environ, alors que dans d'autres moteurs, il faudrait beaucoup plus de temps pour que la physique du tissu fonctionne C'est donc l'un des avantages que nous aurions si nous devions créer un jeu en trois impliquant des objets tels que des capes, capes et tout ce qui nécessite de la physique des tissus. Il s'agit d'un moteur open source, ce qui signifie qu'il est agréable à utiliser et qu' une large communauté de développeurs contribue à sa croissance. Maintenant, j'insiste sur la partie gratuite parce que certains disent que l'unité est gratuite, et du moins à l' heure actuelle, elle ne l'est pas. Il existe une version personnelle que vous êtes autorisé à utiliser jusqu'à un certain point, une fois que vous avez un certain montant de revenus ou si vous souhaitez certaines fonctionnalités, vous devrez alors payer. Je ne considérerais donc pas Unity comme totalement gratuit, ni les autres moteurs que les gens considèrent comme Unreal Ils prélèvent une partie de vos redevances. Ainsi, même si vous ne payez pas d'avance, vous le payez à long terme Et puis nous avons d'autres moteurs, comme GameMaker, qui sont, je crois, sur la base d'un abonnement maintenant GOTO est donc totalement gratuit du début à la fin. Vous n'avez jamais à payer quoi que ce soit. GOTO prend également en charge le développement de jeux en deux et en trois D. qui, bien entendu, le rend adapté à un large éventail de projets. Cela ne vous limitera pas dans ce que vous pouvez faire ou vous compliquer les choses. Par exemple, encore une fois, avec GameMaker, il s'agit d'un moteur TD Et si vous voulez faire les trois D, ce serait très pénible de le forcer à le faire parce que ce n'est pas pour cela que c'est fait. GoTo est conçu à la fois pour le TD et le 3D, vous n'aurez donc aucune douleur à le faire Vous devez juste vous soucier de la façon de créer vos jeux, je suppose. D'accord. Voyons maintenant les avantages de l'utilisation de Gato Eh bien, examinons certains des principaux avantages de l'utilisation de Goto pour vos projets de développement de jeux GoTo possède une interface conviviale qui facilite la navigation et l'utilisation, même pour les débutants Il propose un éditeur visuel qui vous permet de créer des scènes de jeu manipuler des objets et de configurer votre logique de jeu sans avoir à écrire beaucoup de code. Et c'est là qu' interviendra GD Script, très convivial pour les débutants et assez facile à prendre en main système basé sur les nœuds de Goto simplifie la création et l'organisation de tous vos objets de jeu, ce qui le rend très intuitif et efficace Examinons les communautés et les ressources de Gatto. La communauté Gatos est dynamique et soutient les développeurs du monde entier qui partagent leurs connaissances et leurs expériences Il existe différents forums en ligne, sites Web et groupes de réseaux sociaux où vous pouvez entrer en contact avec d'autres utilisateurs de Gato, poser des questions et trouver l'inspiration L'un de ces principaux se trouve sur le site Web de Gato lui-même. Il existe un forum spécialement conçu pour que les gens puissent poser des questions et obtenir de l'aide tout ce qui les intéresse, qu' il s'agisse d'une question pour débutants ou d'un sujet plus avancé. De plus, Gato dispose d' une documentation complète et didacticiels qui sont disponibles à peu près partout à ce stade, ce qui vous permet de trouver facilement les réponses aux questions que vous recherchez et vous aide à apprendre de nouvelles techniques Maintenant, qu'allez-vous apprendre exactement dans ce cours ? Dans ce cours, nous aborderons un large éventail de sujets pour vous aider à maîtriser l'utilisation du moteur Goto pour créer des applications Vous apprendrez le langage de programmation GD Script, qui est essentiel pour créer mécanismes de jeu et des interactions, et qui sera notre principal langage de script Maintenant, la raison pour laquelle nous allons utiliser GD Script plutôt que C Sharp , c'est que GD Script offre un meilleur support à l'heure actuelle, même si C Sharp est également de plus performant en termes de support Mais GDScript a également une meilleure compréhension, je suppose que l'on pourrait dire, l'API des moteurs elle-même, en plus d'être beaucoup plus facile à prendre en main et à utiliser pour les débutants. Nous explorerons le développement de jeux en deux et trois D, y compris la manipulation de sprites Bien entendu, nous aborderons les innovations, la détection des collisions, détection des collisions travail avec les particules et bien d'autres choses encore Vous acquérez également de l'expérience en créant un Goey ou un logiciel de bureau basé sur une interface utilisateur graphique à l'aide de Goto et vous apprenez à utiliser des API et à les intégrer à l'aide de sockets Web pour le réseautage en temps réel D'accord. Félicitations pour avoir terminé l'introduction au moteur de jeu Goto. Dans la prochaine vidéo, nous allons nous intéresser au script GD, le langage de script que nous utiliserons dans Goto, et nous nous familiariserons avec un peu de code Maintenant, n'oubliez pas que la communauté Gatto est toujours là pour vous soutenir, et je suis là pour vous guider à chaque étape Plongons ensemble dans le monde passionnant du développement de jeux vidéo. 2. Télécharger et configurer: Bienvenue aux futurs développeurs. Si nous voulons développer des choses à l'aide du moteur Goto, agisse de jeux vidéo ou de logiciels de bureau, première chose dont nous aurons besoin est, eh bien, le moteur Goto 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 Gato depuis le site officiel ici Accédez simplement à Goto engine.org, comme nous le voyons ici, ici même à l'écran Et une fois ici, vous verrez la section de téléchargement en haut de notre écran. En plus de deux boutons de téléchargement au centre, nous avons le LTS, qui est à trois points X et le dernier, qui est 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 l'utiliser, cette version tout 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. D'accord, c'est donc la version stable 4.1 qui vient de sortir. Vous pouvez donc cliquer sur le bouton Télécharger la dernière version ou sur l'onglet de téléchargement en haut. Les deux vous amèneront à cet écran ici. Très bien, donc pour continuer et pour le télécharger, 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 programmes externes dans lesquels écrire votre code Et il y a 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 existe une deuxième façon de l'obtenir, et ce serait via Steam. Vous pouvez vous rendre sur Steam et télécharger à partir de là si vous le souhaitez. Et cela va nous donner la version standard par défaut. La version .net n'est pas disponible dans la version Steam. Mais vous n'avez pas à vous inquiéter de toute confusion à ce sujet si vous l'obtenez sur Steam. D'accord, donc si vous l' obtenez sur Steam, vous pouvez continuer et simplement appuyer sur le bouton Play Ou si vous l' obtenez sur le site Web, vous allez obtenir un fichier zip, et tout ce que vous avez à faire est de l'extraire et vous pouvez simplement commencer à exécuter l'application. D'accord. Lorsque vous l'exécuterez, vous verrez apparaître un écran comme celui que vous voyez ici. Et tout ce que nous allons faire, bien sûr, c'est que vous n' aurez pas tous ces projets et toutes ces choses à vos côtés. Mais tout ce que nous allons faire, c'est appuyer sur le bouton « Nouveau projet » ici. Et cela devrait vous donner une nouvelle fenêtre qui s'ouvre comme vous le voyez ici Et tout ce que vous avez à faire est de décider où en accédant à Browse, décider où vous voulez placer le projet ici au fur et à mesure que nous avançons dans le cours et de lui donner un nom. Pour cela, je vais juste appeler ce Boots Boots Bootcamp Pour ce faire, je vais y retourner, puis je l' appellerai Goto Boot Camp, et je vais simplement cliquer sur Créer un dossier car il doit se trouver dans un dossier vide ici Et voilà. Nous voyons que nous avons un joli petit chèque vert indiquant que tout va bien. Nous avons ensuite trois modes de rendu : Forward Plus, Mobile et Compatibility. La compatibilité est utilisée sous le nom d'OpenGL. Comme vous pouvez le constater, d'après les points présentés ici, chaque version a ses avantages et ses inconvénients. Mais dans l'ensemble, vous allez travailler avec Board plus. À moins, bien sûr, que vous ne fassiez quelque chose que vous allez créer une version mobile ou autre, vous devez bien sûr utiliser l'option mobile ici. Et si vous travaillez sur une version à déployer sur le Web de votre outil ou de votre ancien matériel, vous devez utiliser la compatibilité. Je vais donc simplement continuer et laisser foward plus ici sélectionné, et nous pouvons simplement appuyer sur Créer et modifier, et cela permettra créer le projet et de l'ouvrir Cela ne prendra donc qu' un moment. C'est bon. Vous serez alors accueilli par l'écran suivant, et nous sommes maintenant dans le moteur et prêts à nous mettre au travail ici. Maintenant, pour vous donner un bref aperçu, en bas à gauche, nous avons le système biliaire, où seront stockés tous nos jeu fichiers, scripts, actifs de En continuant sur le côté gauche, nous avons l'onglet scène. C'est là que nous développerions visuellement, eh bien, les visuels de nos projets Voici un onglet d'importation. Donc, si vous devez réimporter un objet pour quelque raison que ce soit, vous pouvez le faire à partir de là Sur le côté droit, nous avons l'inspecteur, qui sera très important. Nous y reviendrons un peu tout au long de ce cours. Nous avons la section nœud, qui nous permettra de connecter certains signaux intégrés, et nous avons un historique que nous pouvons parcourir en arrière. Juste au-dessus, il y a quelques boutons. Nous avons un bouton Play ici, qui permet de lancer le projet. Cela va passer par la scène par défaut comme si elle avait été ouverte en exécutant l'exécutable après l'exportation du jeu. La plupart du temps, vous allez me voir utiliser celui-ci ici, tant que run current scene, et cela va exécuter la scène actuelle que j' ai sélectionnée plutôt que de lancer le projet dans son intégralité. Ainsi, par exemple, au milieu, vous avez cet onglet qui est vide. Si je construis quelque chose ici, appuyant sur Exécuter la scène en cours, il exécutera ce qui s'exécute dans cet onglet, quels que soient mes autres paramètres définis. Au milieu, vous allez voir ceci où nous avons nos deux D ou trois D, ou scripts, et la bibliothèque d'actifs, où vous pourrez entrer et où vous pourrez trouver outils ou de nouveaux ajouts au moteur, choses comme ça qui pourraient vous aider à l'avenir ou vous faciliter un peu la vie. En fonction de ce que vous faites, alors gardez cela à l'esprit, la bibliothèque d'actifs peut être très utile, très utile. Et, bien sûr, vous pouvez toujours l'utiliser pour simplement regarder code et essayer d'en tirer des leçons. D'accord ? Nous avons téléchargé le moteur. Nous l'avons fait fonctionner. Je dirais que nous l'avons installé, mais il n'est pas vraiment installé, non ? Nous l'avons simplement décompressé et ouvert. Nous avons créé un nouveau projet, et nous sommes prêts à nous lancer dans l'apprentissage de ce langage de GD Script 3. 03 Impression pour produire des images ajoutées: C'est bon. Maintenant que nous avons créé notre projet pour vous donner un aperçu rapide de l'interface ici. Sur le côté gauche, par défaut, nous avons la hiérarchie des scènes. Voici donc nos scènes et à quoi ressemble la scène ou le niveau actuel, tel que vous pourriez le voir, si vous développez des jeux, et en dessous, nous avons notre système de fichiers, notre structure de dossiers et tous les fichiers que nous avons dans notre projet. C'est donc ici que nous allons voir nos scènes enregistrées, nos scripts, toutes les textures ou autres ressources que nous avons dans notre projet que nous avons dans notre projet seront affichées ici. À l'extrême droite, nous avons l'inspecteur, et c'est là que nous allons voir les propriétés de chaque élément de notre scène. En bas, nous avons notre éditeur de shaders. Nous avons notre chronologie des animations, notre bus audio pour faire du mixage. Nous avons notre débogueur pour corriger les erreurs dont nous avons besoin, et nous avons notre console de sortie que nous pouvons consulter, et nous serons très utiles tout au long de ce cours Et bien sûr, juste au centre, nous avons notre grand port panoramique Et par défaut, vous pouvez voir que nous mettons la zone à trois D. Et en haut, nous allons simplement passer au deux D parce que c'est tout ce dont nous avons besoin pour cela. Si nous zoomons simplement en arrière, vous remarquerez cette boîte bleue. C'est essentiellement la taille de notre fenêtre. Maintenant, si vous voulez continuer et modifier cela, vous pouvez simplement accéder aux paramètres du projet. Et on dirait que cela ne se capte pas. Voyons si je peux activer cela. Nous y voilà. Donc, tout ce que nous allons faire ici, si vous voulez modifier la taille de votre fenêtre, nous allons simplement descendre et voir l'affichage, la largeur et la hauteur de la fenêtre et de la fenêtre d'affichage Il y a ce que vous pouvez y changer. Et vous voyez, il n'y a pas beaucoup de paramètres ici, mais si nous sommes trop avancés, nous aurons beaucoup plus d'options que vous pourrez examiner, comme un taux de rafraîchissement élevé, et il semblerait que le DPI élevé soit activé ici. Je sais qu'il existe un DPI élevé, un mode d'économie d'énergie. Il y a donc plusieurs options que vous pouvez examiner. Mais pour l'instant, nous n'avons pas vraiment besoin des paramètres avancés. Je voulais juste vous indiquer la largeur et la hauteur ici. Je vais y aller et je vais juste changer le mien en 12 80 x 720 juste pour obtenir un beau chiffre rond et standard, et pour être parfaitement fenêtré Nous n'avons pas besoin de commencer à minimiser, nous n'avons pas besoin de commencer à maximiser. Et au début, cela ne vaudra même pas la peine d'y cela ne vaudra même pas la peine d' prêter vraiment attention. Pour la première bonne partie. Mais nous y voilà. Je vais régler un 12 80 par 720. Et si vous optez pour cela, vous remarquerez peut-être que le rectangle bleu change. Il se peut que tu ne le sois Et c'est uniquement parce qu'il ne s'agit là que d'un très petit changement infime. Mais oui, tout ce qui se trouve dans ce rectangle bleu apparaîtra sur votre écran. Donc, pour commencer, je vais simplement continuer et dans la scène de gauche, je vais sélectionner l'interface utilisateur, et cela va simplement nous donner un nœud de contrôle par défaut. Si nous le voulions, nous pourrions cliquer sur un autre nœud, et nous pouvons voir toutes les différentes choses que nous pouvons ajouter en sélectionnant simplement le contrôle ici. Nous pouvons voir tous les nœuds d' interface utilisateur inhérents au contrôle. Il contrôle les ancrages, le décalage, adaptation, la position, la taille par rapport à son parent Mais en général, nous pouvons voir que le contrôle est utilisé pour une interface utilisateur. Et c'est ce que nous allons remarquer ici, tout ce qui concerne l'interface utilisateur sera coloré en vert. Très bien, nous allons donc procéder à la sélection et appuyer sur Créer ou appuyer sur le bouton de l'interface utilisateur. Quoi qu'il en soit, vous arriverez au même écran ou au même résultat. Avec cela, nous avons une scène à laquelle nous pouvons ajouter notre script afin de pouvoir commencer par le code, une scène que nous pouvons jouer pour voir notre code s'exécuter, et une scène que nous devons enregistrer. Franchement, je vais donc l'enregistrer Point de contrôle C TSCM, c'est bon. Allez-y et sauvegardez-le là. Et j'ajouterai mon premier script. Maintenant, je vais appeler cela l'impression parce que c'est ce que nous allons aborder ici pour commencer. Imprimer. La langue est sur le script GD, le contrôle amélioré, les modèles ne sont pas activés par défaut Nous pourrions simplement opter pour le vide parce que nous allons tout supprimer de toute façon, alors allons-y, laissons cet objet vide et créons. D'accord, donc tout ce que nous voyons ici en haut, c'est étendre le contrôle signifie simplement que cela vient de notre classe de contrôle, et que tout ce qui s'étend correspond au type de nœud auquel le script doit être attaché. Comme il est attaché à un nœud de contrôle, il doit étendre le contrôle. Donc, il suffit de descendre un peu plus bas. Nous allons créer un, nous allons aller de l'avant et taper Bunk Underscore. Prêt ? J'ai mis un coup de froid à la fin. Appuyez sur Entrée et tapez simplement le mot passe. Nous pouvons maintenant supprimer l'erreur qui y apparaît. Mais ce que nous venons taper ici n'est qu'un morceau de code qui a été supprimé parce que nous avons créé un script vide Et je peux aller de l'avant et vous le montrer ici également. Donc, si vous le faites dans l' autre sens, je supprimerai ce script, retirerai du contrôle. Et si j'y ajoute un script, encore une fois, vous pouvez simplement appuyer sur la diapositive Contrôle et appuyer sur le bouton du script ici en haut, ou cliquer avec le bouton droit sur Contrôle, et vous devriez pouvoir l'ajouter. Et je remarque que cela n'y figure pas. C'est très bien. Vous pouvez savoir ce qui est bien parce que vous êtes capable de bien le faire, vous le voyez de votre côté. Mais si nous devions sélectionner un nœud par deux points par défaut, le modèle joint à notre script, j' espère m'en souvenir et je mettrai une photo ici à l'écran au cas où vous seriez un peu confus. Vous cliquez sur Créer, cet écran s' affichera ici, et tout ce que nous avons fait lorsque nous en avons créé un vide, c'est de tout supprimer, et nous avons simplement saisi à nouveau cette section C'est tout ce que nous avons fait. Maintenant, si nous allons utiliser ce trait de soulignement prêt ici, c'est parce que tout ce qui se trouve à l'intérieur de ce bloc, qui pour le moment n' est qu'un mot de passe, sera exécuté dès que le contrôle entre dans la scène, qui fait déjà partie de la scène au départ Il fonctionnera donc dès que nous appuierons sur notre bouton de lecture. Et ce que vous allez apprendre ici, c'est que nous allons découvrir les différentes manières dont nous pouvons réellement imprimer sur la console AR. Et pourquoi voudrais-tu faire ça ? Eh bien, vous pouvez vous en servir pour vous donner des informations. Vous pouvez l'utiliser pour essayer de quelques petites erreurs Et surtout, les éléments que vous imprimez ici peuvent en fait être conservés dans vos journaux. Ainsi, vos journaux, bien sûr, si vous avez déjà rencontré des problèmes avec un jeu ou un logiciel par le passé et que vous publiez sur un formulaire, vous remarquerez peut-être que des personnes vous demandent de publier votre journal. Eh bien, c'est ce qu'ils demandent. Alors allons-y et passons à l'action. Et la méthode la plus simple ou la plus simple consiste à taper le mot, à ouvrir et à fermer une paire de parenthèses, et entre ces parenthèses, nous pouvons utiliser une paire de guillemets doubles ou de guillemets simples Peu importe, mais peu importe ce par quoi cela commence, cela doit se terminer. Donc, si nous avons des guillemets simples ici, vous ne pouvez pas taper le mot «   ne pas » comme vous le voyez, parce que nous avons un problème où le T n'est pas inclus, et en gros, cela s'arrête ici à cette apostrophe, le guillemet simple , puis cela continue après le Donc, dans ce cas, si nous voulons avoir quelque chose comme ça dedans, nous devrions faire des guillemets doubles pour le début et le début, notape ça correctement. Vous pouvez donc utiliser l'un ou l'autre, mais selon ce que vous écrivez, cela peut vous limiter. Donc, la première chose que nous allons taper ici est Hello world. Maintenant, c'est un élément essentiel lors de l'apprentissage n'importe quel langage de programmation que nous imprimons sur la console Hello World C'est donc un peu comme un rite de passage. C'est quelque chose que tout le monde fait lorsqu'il découvre une langue pour la première fois. C'est bon. Vous pouvez donc venir ici et vous pouvez soit appuyer sur ce bouton de lecture ici en haut. Avec le petit clapet, ça va jouer la scène actuelle Ou vous pouvez appuyer sur ce bouton de lecture en haut de la page. Je dis « Run Project ». Et si vous cliquez sur le bouton « Exécuter le projet », un écran vous demandera sélectionner votre scène principale Dans ce cas, nous allons utiliser celle que nous avons déjà Vous pouvez donc simplement cliquer sur option Sélectionner la scène actuelle, et elle s'exécutera. Vous remarquerez qu'une fenêtre s'ouvre. J'espère qu'il n'y aura aucun problème. Et vous verrez dans la console ci-dessous que nous avons imprimé Hello world. Nous avons donc déjà appris à imprimer sur la console. Donc, au strict minimum, vous avez maintenant votre première candidature. Ce n'est pas une application très intéressante, mais c'est quelque chose que vous avez créé qui fonctionne. Maintenant, tout au long de ce cours, si nous imprimons c'est probablement la méthode que je vais utiliser, mais il y a quelques autres points qui méritent d'être soulignés ici. Et l'un d'eux est l' impression avec deux T. Et ce que cela va essentiellement faire, c'est placer un onglet entre les objets. Donc, si nous aimons cela, que nous séparons nos objets par une virgule et que nous jouons ceci, vous le verrez dans le résultat, c'est maintenant espace par onglet entre nos mots Si nous avons deux objets différents comme celui-ci, nous pouvons imprimer à la fin, un T et un S, et cela va juste laisser un espace entre chaque objet, comme nous l'avions fait au départ, lorsque nous avions Hello World en une seule pièce. Maintenant, nous avons également une imprimante avec TWors et c'est en fait, je l'appelle imprimante, mais c'est plutôt une erreur d'impression Et vous remarquerez que lorsque nous l'exécuterons cela apparaît en fait en rouge dans notre console avec un petit point rouge C'est donc quelque chose que nous pouvons utiliser si nous voulons afficher une erreur dans la console. Il y a quelque chose que nous pouvons voir. Et comme il est rouge et que le reste de notre texte est blanc, nous pouvons y accéder immédiatement. Et cela ne nous laisse qu' une dernière option, à savoir l'impression brute. Maintenant, si nous faisons cela, vous ne verrez rien ici dans la sortie de la console. Mais cela va en fait s' imprimer dans la fenêtre de la console qui s'exécute dans les coulisses et devrait toujours être affiché dans nos journaux. Cela devrait couvrir les frais d'impression, étant donné que vous pouvez utiliser toutes ces méthodes d'impression ici. Encore une fois, nous avons obtenu un imprimé tel que nous le voyons ici. Nous avons imprimé deux T. Boum. Donc là. Et à noter, vous n'avez pas besoin d' espace après la virgule, mais c'est plus beau C'est en quelque sorte quelque chose de standard que les gens finissent par faire. Mais je vais avoir des empreintes avec un S. Et c'est parti. Allez-y et tapez bed in. Qu'est-ce qu'on a d'autre ? Nous avons une imprimante qui imprime vos propres erreurs. Et nous avions Print Raw. Il existe donc différentes manières d' imprimer sur la console, bien sûr, sans l'impression brute, ce qui ne nous imprimer sur la console, bien sûr, serait utile si nous consultions notre journal. Mais nous y voilà. Il existe différentes manières d'imprimer, et c'est ce que nous allons faire pour cette leçon. Et la prochaine étape, nous allons passer à certaines variables et/ou aux mathématiques. 4. 04 Variables: D'accord. Et dans cette leçon, nous allons continuer et commencer à parler de variables. Et si nous avons le temps, nous passerons aux mathématiques. Donc des variables. Qu'est-ce qu'ils sont ? Eh bien, c'est quelque chose que nous pouvons utiliser pour représenter n'importe quel élément de donnée. Ainsi, comme c' était le cas auparavant lorsque nous avions une donnée placée et signée par une paire de guillemets, nous pouvons lui attribuer une variable, ce qui serait très utile, par exemple, si nous avions une phrase très longue et que nous pouvions simplement taper un mot ou une lettre, ce qui pourrait signifier exactement la même chose. Une variable est donc une étiquette que vous pouvez utiliser pour stocker des données telles que celles que nous avons imprimées auparavant avec Hello world. Allons-y et ajoutons-le dans un script. Créons donc un petit contrôle. Je vais ajouter un script ici. Et je vais aller de l'avant et simplement appeler ça. Allons-y et appelons-le variables. Et appuyez sur Créer. Et la seule chose dont nous aurons besoin ici sera notre fonction prête à l'emploi, bien sûr. Et oui. Très bien, nous allons donc continuer et remettons simplement le type pass là-dedans Et nos variables vont figurer ici en haut de la page. Donc, pour créer une variable, il suffit de taper VAR VAR pour variable. Mettez-y un espace, et nous pourrons taper quand nous le voulons ici. Et ce sera le nom de notre variable. Donc, ce que nous allons y mettre, c'est qu'on appelle un message d'accueil, non ? Et au minimum, c'est tout ce que nous avons à faire. Nous pouvons l'attribuer plus tard si nous le souhaitons. Eh bien, nous allons en fait l'attribuer ici même en haut. Nous allons donc simplement dire égaux. Nous allons donc dire salutation égale, et nous pouvons mettre notre paire de guillemets, et vous pouvez dire bonjour nouveau W maintenant, nous avons une petite phrase ici, mais nous pouvons la mettre partout où nous mettons le mot salutation. Donc, si nous allons de l'avant et que nous imprimons notre message d'accueil variable, et si nous le lançons, vous verrez en bas dans notre outbook que nous allons obtenir le message d'accueil que nous avons tapé en haut Maintenant, tu peux taper quand tu veux ici. Tu peux le faire aussi longtemps que tu veux. Et tout cela sera représenté par ce mot singulier. Et si nous voulions aller plus loin, nous pourrions simplement en faire une lettre singulière , comme G, et recommencer. Et comme vous pouvez le constater, une lettre représente tout cela. Maintenant, pour les besoins d'une variable, en particulier celles qui sont en haut ici, utiliser une lettre comme celle-ci est mauvaise dénomination parce que quelqu'un entre, regarde ça. Vous pouvez voir qu' il existe une variable appelée G, mais elle ne vous dit pas de quoi il s'agit. Et une variable doit vous dire exactement de quoi il s'agit, le moins de contexte possible. Nous allons donc le laisser comme message d'accueil parce que c'est ce qui se passe ici. Nous avons un message d'accueil en cours, n'est-ce pas ? J'ai juste des commandes pour enregistrer. Maintenant, nous avons notre premier programme en cours d'exécution, et maintenant nous utilisons des variables. Maintenant, chaque variable va avoir un certain type de données qui y sont connectées. C'est ce que l' on appelle normalement la valeur. Maintenant, peu importe le type de données dont il s'agit. Je peux toujours être étiqueté comme une valeur. Donc, dans notre cas, le message d'accueil est le nom de la variable, et Hello New World est notre valeur. Maintenant, l'un des avantages que nous avons à cela c' est que cela demande un peu plus de travail. Mais supposons que nous venions ici et que nous voulions utiliser cette phrase ou ce message d'accueil encore et encore, tout au long de notre code. Pouvez-vous imaginer devoir venir ici et modifier toutes ces choses si vous voulez apporter une modification à votre message d'accueil, puis venir ici et les modifier toutes une par une. Eh bien, avec la variable, nous pouvons simplement le faire ici en haut. Donc, au lieu de dire bonjour, nouveau monde, nous allons dire bonjour et bienvenue dans le programme World. Et comme nous utilisons une variable ici, nous avons simplement changé cette phrase dans toutes ces lignes de code en une seule fois. Maintenant, comme je l'ai dit, si nous devions passer en revue cela un par un, ce serait vraiment nul Comme je l'ai mentionné plus tôt, nous pouvons le définir plus tôt ou plus tard, et nous pouvons également le remplacer Nous disons donc greeting, qui est le nom de notre variable, et nous disons égal, je dirais que c'est ma nouvelle valeur. Nous allons donc voir que la grille supérieure sera celle qui est définie ici en haut Mais ensuite, nous allons changer la signification de cette variable. Nous en changeons la valeur, puis nous allons imprimer notre nouvelle valeur. Si nous allons de l'avant et jouons à ça, c' est parti. Vous pouvez le voir là-bas. Nous pouvons donc le modifier en haut, ce que vous devriez idéalement faire lorsque vous le pouvez, ou vous pouvez le modifier plus bas dans votre script ultérieurement. Vous pouvez le modifier ou le signer pour quelque chose de complètement différent. C'est bon. Cela nous donne donc un bref aperçu des variables. Je vais donc vous dire qu' il y a quelques noms, quelques règles que vous devriez essayer de suivre lorsqu'il s'agit de nommer vos variables. Maintenant, ces règles sont généralement un nom de variable. Les variables peuvent être nommées à l'aide lettres, de chiffres et de traits de soulignement, qui ne peuvent pas utiliser d'espaces dans le nom de la variable Le langage ne vous permettra tout simplement pas de le faire non plus , et vous ne pouvez pas commencer le nom de vos variables par un chiffre. C'est quelque chose qu'il faut garder à l'esprit ici. Évitez également d'utiliser mots clés ou des noms de fonctions qui existent déjà dans la langue, sinon vous recevrez un message d'erreur. Et vous apprendrez au fur à mesure ce qui est un mot-clé et ce qui ne l'est pas. Et un mot clé serait quelque chose comme VAR ou variable. Maintenant, vous vous demandez peut-être quand quelque chose comme ça pourrait se produire. Mais que se passerait-il si vous vouliez une variable appelée pass pour représenter le mot de passe, ce que vous avez vu lors de la création du script qui passe existe déjà, donc nous ne pouvons pas le faire. Enfin, le nom d'une variable doit être court mais à la fois descriptif de la donnée qu'elle contient. Ainsi, par exemple, avoir une variable appelée longueur du nom serait beaucoup plus approprié et acceptable par rapport à quelque chose comme la longueur de mon nom. Maintenant, ils transmettent tous les deux les mêmes informations, mais l'un d'eux est beaucoup plus court, il est plus concis et sera globalement considéré comme un meilleur nom de variable. OK maintenant, il convient également de noter en ce qui concerne nos erreurs de variables que tout cela est en minuscules Si nous avions tout cela en majuscule à un moment donné , comme vous le voyez, nous allons recevoir une erreur là-haut, et nous verrons simplement en bas de l' identifiant que la notation avec un G majuscule n'est pas déclarée dans le scope actuel Donc, cela signifie qu' il semble que nous essayions d'utiliser une variable, mais cette variable n'existe pas. donc falloir prêter attention à la capitalisation va donc falloir prêter attention à la capitalisation, en particulier à l'encodage Très bien, je vais donc terminer ici pour jeter un coup d' œil rapide aux variables Dans la prochaine, nous allons commencer à examiner certains de ces différents types de données À savoir, nous allons commencer par examiner les chaînes de caractères. 5. 05 Cordes: D'accord. Aujourd'hui, nous allons examiner les cordes. Les chaînes sont un type de données. Alors allons-y et intervenons. Tout ce que j'ai fait ici, c'est que j'ai créé un nouveau script, bien sûr, pour les chaînes de caractères spécifiques à cette leçon Maintenant, en tant que programmeurs, nous sommes fois définis et nous collectons des données à stocker, comme vous l'avez vu précédemment avec nos variables, comme vous l'avez vu précédemment avec nos variables, et il est utile de pouvoir classer les différents types de données Maintenant, le type que nous avons utilisé s'appelle une chaîne. Et une chaîne est tout ce qui se entre deux guillemets, qu' il s'agisse des guillemets doubles ou des guillemets simples mentionnés précédemment. Donc, notre variable « hello » ou plutôt notre variable d'accueil que nous utilisions contenait une donnée, et cette donnée peut être classée sous forme de chaîne selon son type. C'est bon. Ainsi, lors de l'attribution d'une variable, il est recommandé d' attribuer également le type de variable dont il s'agit Et si nous y jetons un coup d'œil, donc si nous revenons et que nous recevons notre mauvais accueil, nous mettrons cela sur le même pied qu'avant. Nous pouvons en fait définir cela de deux manières différentes. Nous pouvons donc mettre deux points après le nom de notre variable et saisir le type de données que nous recherchons, qui peut être une chaîne. Et vous pouvez voir que c' est une façon classer en tant que chaîne. Maintenant, nous pouvons également utiliser l'opérateur Walrus, qui est un deux-points juste à côté du signe égal Nous avons deux points égaux. Et ce que cela va faire, c'est prendre notre note et nous allons l'attribuer de la même manière à cette donnée Et puis, quel que soit le type de données dont il s' agit , nous allons également les classer dans cette catégorie. Nous allons donc à la fois le classer dans cette donnée selon le type de ces données et le mettre sur un pied d'égalité avec ces données. Vous pouvez donc le faire de deux manières différentes et il est fortement recommandé de le faire. Bien sûr, dans ce langage, ce n'est pas obligatoire, mais surtout pour les projets beaucoup plus importants, cela va un peu améliorer les performances, car permet de classer tout le contenu à l'avance. Bien, ce que nous pouvons faire ici, c'est chaque classe, dans ce cas, une chaîne là, comme vous l'avez vu quand je l'ai tapée, et elle est passée à une couleur plus verte Ici, tout a un cas différent. Je vais donc créer une nouvelle variable, et je vais l'appeler nom avec un N majuscule parce que toutes les minuscules sont déjà prises. Je vais donc dire que nom est égal, je veux simplement y mettre mon nom. Et n'oubliez pas que nous voulons toujours le classer. Je vais donc utiliser l'opérateur Walrus ici. Je vais donc dire que deux points sont égaux. Maintenant, tout a un ensemble de méthodes. Donc, si je tape mon nom ici ou une variable, et que je fais un point, vous pouvez voir toutes ces choses apparaître, toutes ces choses sont liées à une chaîne. Et celui que nous allons examiner spécifiquement en ce moment s'appelle capitalize Si nous arrivons et que nous mettons simplement le nom en majuscules, nous pouvons voir que c'est terminé Maintenant c'est bleu. Nous avons des parenthèses ouvertes et fermées là-dedans, et notre erreur ici a disparu de ce que nous avions attendu Maintenant, si nous enroulons cette instruction d'impression et que nous la jouons de manière à ce que nous remarquerons dans notre sortie, tout est écrit en majuscules après chaque espace. Donc, même si je fais tout cela en minuscules, comme vous le voyez ici et que nous le rediffusons, vous pouvez voir que cela est toujours inclus . Maintenant, vous devez utiliser des majuscules pour des choses comme les noms et les titres, comme vous vous en doutez. Maintenant, avec le nom majuscule, vous pourriez être un peu influencé à l'idée que cela va faire de tout un capital, mais ce n'est pas le cas Et c'est là que Python le fait mieux parce qu'ils l'appellent title, ce qui me semble plus approprié. Dans ce cas. Quoi qu'il en soit, vous remarquerez que c'est ainsi que fonctionne la capitalisation. De même, nous pouvons tout mettre en majuscules et en minuscules. Donc, tout ce que nous avons à faire ici c'est qu'au lieu d' appeler majuscule, vous pouvez dire que nous pouvons faire deux soulignements Et si nous gérons cela, nous aurons toutes les capitales. Il nous manque une parenthèse, et c'est ce que notre erreur nous indiquait en bas de la page Maintenant, si nous y jetons un coup d'œil, nous voyons que tout est maintenant en majuscules. Et si nous avons procédé dans l'autre sens, c'est-à-dire si nous avons mis toutes les majuscules et que nous avons souligné plus bas avec nos parenthèses ouvertes et fermées, maintenant tout sera en minuscules Nous pouvons donc capitaliser les choses. Pour des choses comme les titres et les noms. Nous pourrions tout mettre en majuscules, et nous pouvons tout mettre en minuscules. Maintenant, avec les chaînes, nous pouvons également les additionner, et nous pouvons utiliser ce que l'on appelle «  nous pouvons utiliser ce qui est considéré comme un espace réservé Ainsi, par exemple, nous revenons ici. Il va appuyer sur Control Z ou Control Z jusqu'à ce que nous ayons tous les minuscules ici. Imaginons, par exemple, que nous voulions imprimer un message d'accueil. Nous voulons vous dire bonjour. Bienvenue dans la programmation, et nous voulons mettre le nom ici. Mais nous voulons aussi y mettre. Nous voulons que le nom soit dynamique. se peut donc que nous ne sachions pas quel est le nom au moment où nous en serons arrivés ou que nous devrions le savoir au moment où nous en serons arrivés là. Mais il se peut que nous ne sachions pas ce que c'est au début. Maintenant, cela peut être dû au fait que notre utilisateur n'a pas saisi et ne nous a pas dit de quoi il s'agit. Ou c'est simplement quelque chose que nous n'avons pas et que nous pourrons changer plus tard. Mais tout ce que nous allons faire, c'est utiliser le signe du pourcentage et les minuscules S. Maintenant, c'est un espace réservé pour une chaîne, et tout ce que nous avons à faire, c'est en dehors des guillemets, mais entre parenthèses, nous pouvons toujours faire un pourcentage et nous pouvons taper le nom de notre variable ici, qui est juste un nom avec N. Et si nous l'exécutons, nous pouvons voir que cela va signe du pourcentage et les minuscules S. Maintenant, c'est un espace réservé pour une chaîne, et tout ce que nous avons à faire, c'est en dehors des guillemets, mais entre parenthèses, nous pouvons toujours faire un pourcentage et nous pouvons taper le nom de notre variable ici, qui est juste un nom avec N. Et si nous l'exécutons, nous pouvons voir que cela où ce pourcentage S correspond à la valeur du nom de notre variable ou à la valeur de notre variable. Maintenant, cela change légèrement. Si vous souhaitez utiliser plusieurs variables, nous allons donc vous demander d' en créer une autre. Et nous dirons : « Disons que c'est un travail », nous allons le définir comme une fonctionnalité, et nous allons dire « Bonjour, bienvenue dans la programmation de Percent S. Tu es un pour cent ». Maintenant, vous pourriez penser que nous pourrions simplement faire un autre comme ça, ou vous pensez peut-être que nous faisons simplement un autre pourcentage de travail là-dedans. Mais en réalité, ce que nous faisons, c'est que nous avons notre signe de pourcentage ici, et nous utilisons des crochets. Maintenant, à l'intérieur d'ici, nous pouvons mettre tous les noms de nos variables ici, séparés par une virgule dans l'ordre dans lequel mettre tous les noms de nos variables ici, séparés par une virgule dans nous voulons qu'ils apparaissent Donc, si nous exécutons cela, nous pouvons voir que tout est rempli, et vous voulez assurer que vous ne le remplissez pas correctement, car encore une fois, la commande dans laquelle vous le remplissez ici est la commande qui sera remplie dans la phrase. Et évidemment, cela n'a aucun sens. Bienvenue chez le professeur du programme. Ça ne sonne pas bien. Alors gardez cela à l'esprit. noter également, si vous avez plusieurs choses ici, comme si nous y allions comme ça, n'est-ce pas ? Si nous avons trop de variables répertoriées, c'est parfaitement bien. Nous n'allons pas rencontrer de problèmes. La seule fois où nous allons rencontrer un problème, c'est si vous n'en avez pas assez. C'est à ce moment-là que notre erreur va se produire, je suppose qu'il n'y en a plus aucune ici. Qu'est-ce que tu vois ? Je sais, là, cela n'apparaît tout simplement pas comme une erreur. Ce à quoi je m'attendais. Mais ici, dans la console, il n'y a pas assez d'arguments pour formater une chaîne ou pour une chaîne de format. Cela nous indique donc que nous n'avons pas assez d'arguments ici qui auraient vraiment dû apparaître davantage comme une erreur. Mais vous pouvez voir qu'il apparaît. Il suffit de les remettre dans le bon ordre. Donc, si vous renseignez des informations, assurez-vous d'avoir suffisamment d'informations et de les remplir dans le bon ordre. Maintenant, je dirais que vous pourriez également le remplir d'une autre manière. Cependant, il prend plus de place, a l'air plus encombré, du tartre Et par là, nous parlons essentiellement de faire cet ajout. Très bien, alors comme ça, boum, encore une fois, pour que nous puissions faire quelque chose comme ça. Et vous voyez, vous pouvez le faire de cette façon, mais cela semblait un peu plus problématique ou moins beau, mais vous pouvez certainement le faire de cette façon. Et il me manque un espace entre ici et là. Et vous verrez si nous l'imprimons, cela nous donnera le même résultat. Il s'agit donc de deux manières différentes utiliser vos variables à l'intérieur de vos chaînes. C'est bon. Donc ça ira pour les cordes. Nous allons ensuite passer à l' examen d'autres types de variables. 6. 06 Numères entiers et éléments flottants: D'accord. Aujourd'hui, nous allons examiner les chiffres, comme vous pouvez probablement le voir d'après le nom de mon script. Là-bas ? Désormais, les numéros de programmation peuvent être divisés en deux catégories différentes. Maintenant, les nombres sont utilisés dans la programmation, ou plutôt ils sont utilisés dans la programmation pour toutes sortes de choses, comme le calcul des scores, différents types de mécanismes de jeu , les algorithmes, la visualisation de différentes données, certaines des choses que vous avez examinées qui sont de l'art ou shaders qui peuvent tous provenir uniquement Maintenant, ces nombres seront appelés entiers ou flottants. Maintenant, un nombre flottant peut également être appelé un nombre réel. Donc, si vous entendez quelqu'un parler de nombres réels, il parle probablement de nombres flottants Allons-y et commençons par les nombres entiers. Les nombres entiers sont des nombres entiers. Maintenant, leur classe, si vous vouliez créer une variable, disons Binum, si vous vouliez créer une variable pour cela, un entier, elle est simplement raccourcie en INT C'est ça. Et un flottant sera classé comme ça , en tant que flottant entièrement en minuscules C'est bon. Donc, si vous voulez créer une variable, voici les deux méthodes que nous utilisons, et je vais juste en créer une autre ici juste pour les avoir ici en haut. Vous pouvez donc toujours y jeter un œil. Maintenant, lorsque nous imprimons des choses, nous pouvons imprimer des chiffres. Donc, si nous en tapons cinq ici, que nous allons l'imprimer, nous pouvons voir cinq apparaître dans notre console. Maintenant, ce qui peut être un peu différent, c'est que nous pouvons réellement faire des calculs ici. Donc, si nous disons cinq, cela fait dix, et peut-être que nous voulons y mettre un espace, rendre un peu plus lisible. Jetez-y un coup d'œil. Cela va imprimer notre total ici de 15. Nous pouvons donc réellement effectuer un sous-ensemble de mathématiques au sein de ces. Et nous pouvons le faire avec des ajouts. On peut le faire avec la multiplication. Nous pouvons le faire par soustraction. Et bien sûr, nous pouvons le faire par division, comme vous pouvez le constater ici. Et vous voyez, la division dans ce cas nous a donné un débogueur, et c'est parce que la division entière se transforme en une partie décimale Le cœur décimal sera supprimé. Cela ne se passe donc pas de manière inégale. Cela nous renvoie en fait un char. Et comme nous divisons deux nombres entiers, nous ne l'avons pas vraiment compris Nous avons donc obtenu zéro, mais nous n'avons rien obtenu par la suite. Et c'est ce que cette erreur nous indique dans le débogueur Et nous y reviendrons lorsque nous aborderons la question des flotteurs dans un instant Mais ce que nous pouvons également faire, c'est prendre en charge les exposants et les racines carrées Par exemple, nous pouvons faire P, ce qui nous donne un nombre pour la puissance, autre chose ou un exposant. Donc, si on dit deux, on met un Tama. Comme vous le voyez ici, notre nombre de base est suivi de notre exposant. Si on dit « deux », on passe à « cinq ». D'accord ? Nous allons suivre les règles des exposants, nous allons avoir deux fois deux fois deux fois deux Cela nous donnerait donc deux fois deux , soit quatre fois deux, soit huit, fois deux, soit 16, fois deux, 32. Donc, si nous l'exécutons, nous devrions en obtenir 32. Allons-y. Nous veillons donc à éliminer les exposants. De même, nous pouvons également obtenir la racine carrée de quelque chose avec SQRT, et c' est la même situation ici Une situation similaire. Nous transmettons un chiffre. Dans ce cas, nous nous contenterons de 32. Et nous le transmettons. Nous verrons quelle heure elle-même nous en donnera 30 ou oui, quelle heure elle-même nous en donnera 32. Quelle en est la racine carrée ? Et nous voyons que cela nous donne une chance ici. 5,6 5685, 42, 4942, trois, huit. C'est un nombre long, mais si vous le multipliez par lui-même ou par lui-même, vous obtiendrez 32. Comme vous le voyez, nous lui avons donné un entier et nous avons obtenu un flux. Et avec la racine carrée, c' est certainement possible avec des exposants, ce qui ne se produira pas à moins, bien sûr, d'utiliser un float pour commencer Et comme vous pouvez le constater, la racine carrée attend un float pour le premier argument. C'est pourquoi cela est essentiellement converti en un float, ce qui reviendrait à faire 32.0 Dans ce cas. Maintenant, vous pouvez utiliser n'importe quelle combinaison de mathématiques que vous voulez ici, vous pouvez donc utiliser n'importe quelle combinaison de toutes ces combinaisons. Supposons, par exemple, que nous ayons cinq plus trois entre parenthèses à la puissance 7/3, puis que nous en soustrayons Maintenant, que nous utilisions le lit Miss, le corps Miss PEMDS, quel que soit corps Miss PEMDS, quel l' ordre des opérations que nous avons enseigné, nous allons regarder nos crochets ou parenthèses Ce sont des parenthèses. Je ne sais pas pourquoi certains endroits appellent les crochets, mais les parenthèses Donc, dans ce cas, nous allons d'abord regarder à l'intérieur d'ici. Ensuite, nous allons examiner les exposants. Donc, la première chose que nous allons faire, ce sont nos calculs. Donc trois pour la puissance de sept. Ensuite, nous devons faire ce qui est entre parenthèses. Alors nous devons le diviser par trois, non ? Parce que la prochaine étape est notre multiplication et notre division. Dans ce cas, nous avons juste une division, donc nous allons la diviser par trois. Cela nous laisse maintenant avec cinq plus notre résultat ici, puis en soustrayant neuf et en ajoutant la soustraction pourrait être effectuée même temps, en allant simplement de gauche à droite Et si vous faites tous ces calculs, vous obtiendrez une sortie de 725 C'est bon. Donc ça n'a pas d'importance. L'ordre dans lequel nous le faisons correctement, l'ordre dans lequel nous le tapons. L'ordre va être fait de la bonne manière, et nous pouvons mélanger et assortir tous les différents. En gros, vous pouvez faire n'importe quelle formule mathématique ici. Très bien, alors maintenant, en ce qui concerne les flotteurs, j'ai dit que nous en avions cinq moins dix Donc, si nous revenons à cette situation, nous avions cinq moins dix, et nous avons fait cela et nous avons obtenu un petit débogueur, désolé, pas moins diviser Et un petit débogueur nous a dit : « Hé, c'est le float » et tout ce qui est mis à zéro est oublié Et si c'est ce que nous voulons ? Eh bien, nous devons convertir l'un d'entre eux en flotteur. Donc, soit nous devons le faire, nous avons un chiffre solide comme celui-ci. Nous pouvons faire 0.0 sur l'un d'entre eux. Et vous voyez maintenant, nous pouvons réellement obtenir notre nombre décimal. Ou ce que nous pouvons faire, c'est faire point, et ils l'ont toujours ? Non, ils ne le font pas. N'apparaît pas. Donc, ce que nous pouvons faire, c'est simplement taper le mot lot et entourer l'un de nos nombres entre parenthèses Cela va transformer nos dix en flotteur. Nous pouvons donc également le faire de cette façon. Si nous ne savons pas nécessairement quel est le chiffre qui y est saisi, si cela a du sens. Ainsi, si un utilisateur saisit des nombres, vous ne savez pas nécessairement s'il s'agira d' un nombre entier ou d'un nombre à virgule flottante . Nous pouvons donc simplement le convertir à ce moment-là, non ? C'est ainsi que nous réglerions ce problème. Nous convertissons simplement l'un d'entre eux en flux. Désormais, dans le code, tout nombre comportant un point décimal est appelé un flux Et nous utilisons ce terme dans la plupart sinon tous les langages de programmation, comme je l'ai mentionné plus tôt, on peut les appeler des nombres réels. Et toutes les langues doivent être soigneusement conçues pour gérer correctement ces nombres décimaux. En tant qu'utilisateur, bien entendu, en utilisant simplement la langue, vous n'avez pas à vous soucier de la façon dont la langue la gère. Sachez simplement que cela est en cours de traitement. Et tant que la langue le gère bien, c' est tout ce dont vous avez besoin pour vous inquiéter. Maintenant, pour toutes les expressions mathématiques que nous avons déjà examinées, nous pouvons également le faire avec des flottants Ils ne sont pas exclusifs aux nombres entiers. Et comme vous l'avez vu avec notre 5/10, et comme nous en avons converti un en valeur flottante, vous pouvez utiliser des nombres entiers et des flottants en même temps 7. 07 Constantes et commentaires: D'accord. Maintenant, avant d'aller plus loin, je voudrais parler d'une variable spéciale appelée constantes, et je veux parler des commentaires. Maintenant, ce sont de petits sujets, je vais donc les aborder tous les deux dans une seule vidéo, et cela ne devrait prendre que quelques minutes. Une constante est différente d'une variable. Vous vous souvenez quand j'ai dit que nous pouvions changer ce qu' est une variable ou que nous pouvons changer sa valeur à tout moment. Eh bien, une constante est une variable spéciale, et cette variable spéciale ne peut pas changer valeur une fois qu'elle est définie. Ainsi, une fois que cette valeur est définie, elle ne peut jamais être modifiée, et elle est exactement ce qu'elle est. Donc, si vous essayez de le modifier ultérieurement, nous devrions rencontrer une erreur dans notre code. Et nous pouvons aller de l'avant et y jeter un œil. Et tout ce que nous avons à faire pour créer ce qu'on appelle une constante au lieu d' une variable typique, c'est de faire CONST au lieu de VAR Et comme vous le voyez, nous avons des fenêtres contextuelles qui apparaissent en bas. Ne t'inquiète pas pour ça. Mais constamment, nous pouvons appeler. Et encore une fois, si nous l'appelons MOM, et que vous voyez, nous avons toujours une erreur ici parce qu'il s'attend à ce que je définisse la constante sur quelque chose. Donc, si je définis cela comme cinq, pool in est égal à cinq, vous voyez, maintenant l'erreur disparaît, la constante a été définie. Maintenant, le problème ici n'est pas vraiment un problème, mais si nous arrivons ici, nous essayons de régler mon nombre sur un autre nombre, voyons si l' erreur est vraie. Ça y est. Vous voyez donc que vous ne pouvez pas attribuer une nouvelle valeur à une constante. C'est ce qui apparaît là-bas. Et nous voyons cela à la ligne sept, caractère cinq. Un, deux, trois, quatre, cinq, donc à la fin du nom de notre variable parce que nous essayons de le définir à la fin du nom, ce qui est logique. C'est ainsi que vous réglez les choses ici. Nous allons donc trouver cette erreur. Vous ne souhaitez donc utiliser que des éléments avec votre consentement qui ne sont pas destinés à être modifiés. Par exemple, si vous créez un jeu ou une application qui dispose d'une connexion en ligne entre utilisateurs, vous allez probablement définir un nombre maximum d' utilisateurs ou un nombre maximum de joueurs pour chacun de vos serveurs. Vous ne voulez donc utiliser des constantes que pour des choses qui ne seront jamais modifiées. Retournez dedans, réglez ces problèmes . Maintenant, un commentaire. Un commentaire peut être à la fois bon et mauvais. Ils ne sont donc pas exclusivement d'une manière ou d'une autre. Cela dépend simplement du moment où vous devez et ne devez pas les utiliser. Maintenant, les commentaires sont comme notes mineures que vous pouvez vous laisser pour expliquer ce qui se passe dans le code, pourquoi vous avez fait quelque chose d'une manière spécifique ou tout ce dont vous avez besoin. Maintenant, un commentaire s'affiche à l'écran en ce moment, et vous le voyez depuis tout ce temps. commentaires peuvent être utiles pour tous les futurs développeurs qui doivent examiner un morceau de code créé par quelqu'un d'autre, ou peut-être que vous y avez travaillé à un moment donné, puis que quelqu'un d'autre vient le voir. Et comme je l'ai dit, un commentaire est déjà affiché à l'écran, et vous le connaissez peut-être sous le nom de hashtag, ou si vous êtes un peu plus âgé, vous le connaissez peut-être sous le nom de symbole d'une livre. Et nous nous installons juste au-dessus endroit où notre soulignement est prêt Nous avons ce hashtag qui indique « appelé » lorsque le nœud entre dans l' arbre des scènes pour la première fois. Maintenant, puisqu'il est préfixé par ce symbole de hashtag, s'agit d'un commentaire dans cette langue Maintenant, dans certaines langues, vous devrez peut-être utiliser la double barre oblique, exemple pour créer un commentaire Mais dans le script GD, nous avons juste notre petit symbole de hashtag Maintenant, vous pouvez également l'utiliser pour commenter une ligne de code. Et si nous pouvons le faire c'est parce que tout ce qui contient un commentaire commenté sera ignoré lors de l'exécution du code Donc, si nous avons imprimé et nous imprimons, attention, si nous essayons ceci, il sera imprimé comme prévu. Mais nous pouvons également mettre ce petit hashtag ici, et il est commenté. Maintenant, il ne fait que se plaindre parce que nous n'avons rien une fois prêt à fonctionner, alors je vais simplement y remettre le laissez-passer. Et vous voyez maintenant qu'il n'est pas imprimé parce qu' il est ignoré Et si nous avons beaucoup de code ? Peut-être que nous essayons des choses. Ça ne marche pas. Je veux essayer différentes méthodes, mais nous ne voulons pas nécessairement nous débarrasser de la tentative que nous avons déjà essayée. Eh bien, nous pouvons réellement commenter de grandes sections de code avec une touche de raccourci. Et pour ce faire, il suffit mettre en évidence tous les morceaux que vous souhaitez Supposons que nous voulions cela, que nous voulions garder la fin au début. Il suffit de surligner ces éléments et appuyer sur Ctrl K. Maintenant, si vous voulez revenir en arrière, il se peut que ce soit la commande K. Je sais qu'ils préfèrent utiliser la commande plutôt que le contrôle, je crois, pour la plupart de leurs raccourcis. En général, Control K ne fonctionne pas. Essayez Command K. Mais c'est tout ce que nous avons à faire, c'est-à-dire commenter toute cette section. De même, si nous les surlignons et que nous appuyons à nouveau sur Control K, nous pouvons les décommenter en une seule fois Et d'accord, il y a donc les commentaires et leur fonctionnement. Plus tard, nous parlerons d'un code propre plus ou moins proche de la fin de ce cours, où nous expliquerons plus en détail quand vous devez utiliser des commentaires et quand vous ne le devriez pas. Quels sont les bons commentaires, quels sont les mauvais commentaires. Mais pour l'instant, c'est ce que sont les commentaires, et c'est ce que sont les constantes. Je voulais juste vous en parler. Et nous allons passer à autre chose. Nous vous verrons dans le prochain. 8. 08 Listes: C'est bon. Allons-y et jetons un coup d'œil à une liste. Un autre nom pour ceux-ci est également array, mais le plus souvent désigné, du moins d'après mon expérience, sous forme de liste. Alors, qu'est-ce qu'une liste ? Une liste est un groupe d'éléments collectés qui sont placés dans un ordre particulier, et vous pouvez créer une liste contenant n'importe quel type ou n'importe quelle combinaison de données différentes Nous pouvons donc avoir des entiers, des flottants et des chaînes combinés dans une seule liste Désormais, il n'est pas nécessaire que votre liste soit liée. Les éléments n'ont pas besoin d' être liés les uns aux autres. Cependant, cela aurait du sens s'ils l'étaient. Imaginez si nous avions différents types de pizzas, n'est-ce pas ? Et chacun de ces différents types de pizzas avait une liste de garnitures Et puis il y avait un autre élément aléatoire là-dedans. Ils savaient qui l'avait fabriqué ou qui fabriquait ce type spécifique. Ce n'est pas vraiment lié, donc il existe probablement une meilleure façon de gérer ce genre de situation. Mais les listes sont indiquées par leurs crochets, tout comme lorsque nous utilisions nos variables à l'intérieur de nos chaînes avec ces espaces réservés, une liste est entourée de crochets Et ces crochets, chaque élément est séparé par une virgule Alors allons-y et jetons un coup d'œil à une liste de produits d'épicerie. Allons faire les courses. Nous avons nos crochets, et passons aux tomates. Ou, tu sais quoi, allons-y au singulier. Nous allons manger des tomates, des cornichons. Drop and buns. Très bien, donc si nous devions imprimer ceci, si nous devions imprimer ces produits d'épicerie, vous verrez que nous allons avoir des crochets dans notre Vous ne voulez probablement pas les crochets. Vous ne voulez probablement pas ce genre de résultat. Vous recherchez peut-être un article individuel. Eh bien, voyons comment nous pouvons accéder aux éléments individuels de cette liste. Pour accéder à un élément ou à un élément de la liste, il suffit d'indiquer à GD Script la position d'index de l' élément que nous recherchons Donc, si nous imprimons ceci, donc si nous faisons les courses, nous mettons une paire de crochets après cela, et nous pouvons maintenant inscrire un chiffre Et ces chiffres commenceront en fait à zéro. Donc, même si nous comptons un, deux, trois, quatre, un ordinateur va démarrer à zéro. Donc, la tomate sera nulle, les cornichons un, le ketchup deux et les brioches trois Donc, si nous ne faisons aucune épicerie et que nous l'imprimons, nous voyons que nous allons y mettre de la tomate Si on en fait un shoot en ligne, on va acheter des cornichons. Maintenant, si nous sommes en panne, par exemple, si nous en prenons quatre parce que nous comptons un, deux, trois ou quatre articles, nous nous disons OK, nous voulons l'article numéro quatre, nous allons avoir une erreur car quatre serait en fait le cinquième article. Donc, ce que nous voulons vraiment, c'est trois pour obtenir le dernier article, ou des brioches si vous vous trompez d'article, assurez-vous simplement de choisir la valeur de l'indice et non le numéro de l'article J'ai vu pas mal de gens s'y perdre ou s'embrouiller à cause de cette confusion. Maintenant, comme dans ce cas, sont des chaînes, nous pouvons utiliser des choses que nous avons apprises auparavant. Nous pouvons donc utiliser deux majuscules, par exemple, et obtenir une majuscule. Oups. Allons-y. Comme vous pouvez le voir ici. On peut aussi baisser, capitaliser et tout ça Voyons voir une fois que nous aurons mis ceci ici, nous aurons une bonne liste fantastique Mais vous pouvez voir toutes les choses normales que nous avons là-dedans avec toutes les chaînes. Nous pouvons donc faire notre capitalisation supérieure ou inférieure. Et si vous vouliez tout conserver dans un type défini ? Donc, le définir sur une liste comme celle-ci équivaudrait à procéder comme ça et à le définir sur un tableau, ce qui est bien. Un tableau peut contenir différents types d'éléments. Mais si vous voulez le réduire encore plus ou si vous voulez simplement obtenir un peu plus de performances, ce que nous pouvons faire lorsque nous le déclarons sous forme de tableau, nous le tapons comme ceci. Nous le mettons entre crochets, et à l'intérieur, nous déclarons quel type peut être ici. Donc dans ce cas, toutes les miennes sont des chaînes. Je vais donc utiliser une chaîne pour l'intérieur. Et ce que cela signifie ici, l' élément entre crochets serré, puis à nouveau entre crochets, thêta serré juste à côté de notre déclaration d' un tableau indique à notre script ou à notre code que seule une chaîne peut se trouver ici Donc, si nous mettons un nombre, un entier, nous allons obtenir une erreur. C'est ainsi que nous pouvons réduire notre liste à un type spécifique et obtenir juste un tout petit plus performance, ce petit plus. Mais encore une fois, à moins que vous ne travailliez sur un projet plus important, vous ne le remarquerez probablement pas. Ainsi, il suffira de l'appeler un tableau normal ou d'utiliser le Walrus. Maintenant, ce que je n'ai pas mentionné auparavant, c'est que lorsque nous examinons les chaînes, nous pouvons réellement obtenir la longueur. Donc, si nous obtenons de la lumière, comme ça, nous obtiendrons réellement la longueur de ce caractère ou de cet objet. Dans ce cas, nous optons pour l' indice trois, qui est celui des brioches. Nous voulons la longueur, et cela nous donnera quatre parce que nous avons quatre caractères, B, U et S. Maintenant, ce qui est différent, c'est une chaîne. Vous pouvez également accéder à l'index d'une chaîne. Donc, si nous venions ici et demandions l'index 1 de cette chaîne, nous obtiendrions la lettre U parce que chaque caractère a son propre index dans la chaîne. Donc B est zéro, U est un, N est deux, et le S est trois. Nous accédons donc au troisième élément. Nous allons faire nos courses, obtenir la troisième valeur de l'indice, et nous obtenons la troisième valeur de l' indice de cet article J'espère que cela a du sens et que ce n'est pas trop confus. Mais si vous voulez uniquement le recto ou le verso d'une liste automatiquement, nous pouvons obtenir l' indice négatif un, ce qui nous donnera toujours le dernier élément de la liste, dans ce cas, les brioches Mais sinon, nous pouvons également figurer sur notre liste de produits d'épicerie, vous pouvez simplement le faire figurer sur le devant de la page Vous obtenez le premier produit, qui serait de la tomate. Oh. Il nous faut encore une parenthèse On peut appeler point front pour tomate, et on peut appeler point Bat. Nous obtenons le dernier élément de la liste. Donc, si vous ne souhaitez pas utiliser d'index, vous pouvez simplement appeler point front ou point back si vous souhaitez obtenir le premier ou le dernier élément. Maintenant, puisque dans ce cas, sont toutes des chaînes , souvenez-vous que nous pouvons toujours les utiliser dans une phrase. Nous allons donc dire, chérie, nous en faut encore, et nous allons utiliser nos pourcentages, et donc notre joueur Maintenant, nous pouvons simplement insérer ce dont nous avons besoin Nous pouvons donc continuer et remplacer le premier espace réservé par les produits d'épicerie, et nous appellerons cela un index Passons à l'index deux, puis nous pouvons appeler Let's go with capitalize Maintenant, si nous l'imprimons, il me manque une parenthèse à la fin Va. Nous pouvons donc maintenant voir notre déclaration ici. Notre article est inséré et il est en majuscule. Nous avons donc un K majuscule pour commencer, ce qui fonctionnerait bien si nous avions une liste de marques, par exemple. Et bien sûr, vous pouvez également le faire et remplir plusieurs éléments. Très bien, je vais donc faire l'affaire pour l'introduction dans les listes ici. Nous allons continuer avec d' autres fonctionnalités dans la prochaine vidéo. 9. 09 Ajouter et supprimer: Bien, nous allons continuer à utiliser le même script pour celui-ci, puisque nous parlons toujours de listes, et nous allons juste discuter de la façon nous dont nous pouvons ajouter des éléments à notre liste Donc, pour ce faire, nous l' examinons, et la plupart des listes peuvent être dynamiques, la plupart des listes que nous créons sont dynamiques, n'est-ce pas ? Ce qui signifie qu'ils peuvent être modifiés. Nous utilisons une variable. Nous n'y arriverons pas à tout moment. Il est évident qu'une constante ne peut pas être modifiée. Et la majorité de ceux que nous allons créer Zivar, qui sera dynamique, ce qui signifie que nous pouvons ajouter et supprimer des éléments dans et depuis cette liste Maintenant, vous pouvez utiliser une liste pour suivre quêtes d'un joueur dans un jeu, par exemple. Ainsi, vous devez être capable d'en ajouter de nouveaux, supprimer une fois qu'ils sont terminés. En termes de données, nous pouvons utiliser une liste d'utilisateurs enregistrés. Maintenant, le moyen le plus simple pour nous d'ajouter à une liste serait d' appeler la méthode append Donc, si nous allons à l'épicerie, nous pouvons utiliser un stylo pour ajouter des points, puis tout ce que nous taperons ici sera ajouté à notre liste Donc, si nous allons de l'avant et ajoutons des éléments, allons-y, allons-y avec quelques Pringles, non ? Nous le tapons. Allons-y et imprimons nos produits d'épicerie avant et après Et nous pouvons voir la différence avant et après son ajout à la liste. Et vous voyez qu'un stylo va ajouter un élément à la liste, et il va l'ajouter à la fin de la liste. Il va donc se terminer ou l'ajouter à la fin de la liste. Maintenant, l'utilisation d'un stylo nous permet d'ajouter facilement et rapidement des éléments à une liste dynamique, ce qui est fantastique. Cela signifie que nous pouvons également commencer avec une liste vide. Donc, si nous venons ici, je vais juste commenter celui-ci, afin que nous puissions faire la même chose ici. Et nous allons simplement en faire une liste vide. Maintenant, si nous commençons par ce Z, nous pouvons commencer par quelque chose de vide et ajouter quelque chose. Cela fonctionnera également. C'est tout aussi simple. Et comme il est courant de créer une telle liste, nous ne connaissons pas toujours les données à ajouter tant que le programme n'est pas en cours d'exécution. Parfois, nous avons une liste définie d'options, et d'autres fois, nous allons peut-être ajouter à une liste à l'avenir. Il est donc toujours bon de savoir comment nous pouvons y ajouter quelque chose. Maintenant, et si nous voulons insérer dans une liste ? Nous ne voulons pas l'ajouter à la fin, mais nous voulons l'insérer dedans. Eh bien, au lieu d'ajouter un élément dans une liste, nous devrons peut-être insérer un élément dans une liste. Et pour insérer un élément dans une liste, il faut deux paramètres. Et cela signifie simplement deux choses que nous transmettons. Donc, lorsque nous faisions un stylo et que nous mettions un élément ici, il s'agissait d'un paramètre. Et lorsque nous insérons un élément, il va prendre deux de ces paramètres. Donc, pour en revenir à notre ancienne liste , il suffit de la sauvegarder. Allons-y. Et la position de la première est la première position et la seconde la valeur. Nous allons donc aller de l'avant et appeler l'insert ici, et nous verrons. La première chose que nous avons définie , c'est la position. Supposons donc que nous voulions le mettre en position deux, dans l'index deux. Donc, pour le moment, l'indice deux est le ketchup. Nous voulons donc mettre quelque chose entre les cornichons et le ketchup Nous allons donc manger des cornichons, notre nouveau produit, puis du ketchup Donc, après avoir mis notre index, mis une virgule, et saisi notre nouvelle variable ou, désolé, notre nouvel élément, je vais redevenir Pringles Et si nous l'imprimons, nous pouvons voir que pringles ont été placés entre les cornichons et J'ai été inséré en tant qu' index numéro deux. Ainsi, non seulement nous pouvons ajouter jusqu'à la fin, mais nous pouvons également insérer un élément à un endroit précis de notre liste. Maintenant, lorsqu'un nouvel article est inséré dans une liste dans notre position majuscule, l'un de nos articles est placé entre, dans notre cas, deux et trois, et nous avons un tout nouvel article. Fantastique Maintenant, le fait que nous puissions ajouter à la liste et insérer dans une liste est formidable. Mais que se passe-t-il si nous devons supprimer un article de votre liste ? Eh bien, nous pouvons facilement le faire. Il suffit d'appeler point remove et dans ce cas, avec le nouveau système, il s'agit de supprimer at Et il suffit de passer l'index, non ? Donc, si on passe en deux maintenant, on en passe en deux. Cela va éliminer le ketchup, donc nous allons juste avoir des tomates, des cornichons et des brioches C'est ce que nous devrions avoir lorsque nous le gérons maintenant. Alors voilà. Nous avons supprimé l'élément à l'index deux. La suppression d'objets est donc assez simple, comme vous pouvez le voir ici. Maintenant, il y aura des cas où vous voudrez peut-être obtenir un article et le supprimer en même temps. Et nous pourrions le faire en plusieurs lignes de code, mais ce n'est pas obligatoire car nous pouvons réellement le faire ressortir. Et je dis pop parce que c'est le nom de ces deux méthodes que nous allons apprendre ici, à savoir pop front et pop back. Donc, si nous faisons Pop, soulignons, recto, et que vous voyez lorsque nous imprimerons à nouveau des produits d'épicerie, le premier article manquera Mais cela ne le supprime pas seulement, tout comme le fait de supprimer, supprimer ce que nous venons de faire. Mais cela renvoie également cet article de couverture. Donc, si nous devions le stocker dans une variable et appeler cet élément, cela le renverrait, et le premier élément de notre liste, qui sera notre tomate supprimée, sera assigné à l'article. Donc, si nous imprimons l'article par la suite, nous allons obtenir cette tomate. Et c'est le même concept. Si nous sortons par l'arrière, nous allons obtenir le dernier produit, qui sera des brioches. Les articles seront donc égaux à des petits pains. Très bien, alors ça va aller de l'avant et nous crier dessus Donc, ce que vous voudriez que nous fassions c' est que cela ne peut pas impliquer quel est le type, nous devrions le déclarer manuellement comme ceci. Il existe donc des situations dans lesquelles vous ne pourrez pas utiliser cette déclaration inférée automatique Et tu devras le faire toi-même. C'est l'un de ces rares cas où vous en auriez besoin si vous choisissez de suivre cette voie, ce que vous devriez probablement faire. Encore une fois, juste une chose à laquelle il faut s'habituer. De cette façon, vous pouvez toujours obtenir le maximum de performance possible. De cette façon, si vous réduisez le nombre d'optimisations que vous devrez effectuer ultérieurement. Et la dernière chose que nous allons regarder dans cette vidéo est voir comment effacer un élément, même si nous ne savons pas où il se trouve dans notre liste. Si je voulais simplement recommencer à imprimer nos produits d'épicerie, nous n' aurons plus besoin de cette variable. Ce que nous allons faire, c'est ce que nous pouvons appeler des ères ponctuelles. Et pour cela, nous pouvons simplement taper la valeur. Nous pouvons donc entrer et dire Keto. Maintenant, n'oubliez pas que cela fait la distinction majuscules/majuscules lorsqu'il s'agit de ressorts. Un K minuscule ne sera donc pas identique à une majuscule Mais pour nous, cela semble identique, sinon nous le considérerions comme tel. Dans le code, il y a deux choses complètement différentes. Donc, si nous appelons erase et que nous transmettons simplement la valeur réelle, nous pouvons entrer et nous pouvons voir qu'elle sera effacée, peu importe où elle se trouve dans notre ligne. Maintenant, vous vous demandez peut-être : et si nous avions plusieurs valeurs identiques et que nous appelions effacer ? Eh bien, il ne supprimera ou effacera que la première instance qu'il rencontrera, donc il passera en revue, il dira si cela correspond à ce que nous recherchons ? Non Est-ce que c'est, non. Est-ce que c'est oui et supprimez. Et ça va s' arrêter là. Donc, si vous vouliez en effacer plusieurs, vous devez continuer à le faire en ce moment. Nous apprendrons une meilleure méthode si vous souhaitez effacer toutes les instances d' une valeur spécifique. Mais pour l'instant, il ne supprimera qu'un seul élément. Très bien, ça suffira pour la leçon d'aujourd'hui ou pour cette leçon. Nous avons juste un peu plus à apprendre sur les listes avant de pouvoir passer à autre chose. Donc, encore une leçon à venir. 10. 10 Pousser et trier: le moment, dans notre dernière leçon sur les listes, nous allons examiner les méthodes push et la manière dont nous pouvons organiser notre liste et obtenir la longueur de notre liste. La méthode push, il y en a deux. Ils nous permettent de modifier le contenu de la liste. Il y a une poussée vers l'avant et une poussée vers l'arrière. Les deux utilisent un seul argument et c'est une valeur. Maintenant, lorsque vous utilisez push front, notre valeur est ajoutée au début de la liste, comme si vous utilisiez la commande insert à l'index zéro. De même, lorsque nous utilisons le push back, notre valeur est ajoutée à la fin de la liste, peu comme lorsque nous utilisons append Donc, si nous devions y jeter un œil, nous pourrions alors faire nos courses et utiliser le push front, et nous ajouterons nos Pringles Et si on y jette un coup d' œil maintenant, les pringles seront placés en tête de notre liste De même, nous pourrions utiliser push back pour le renvoyer à la fin de notre liste. Personnellement, je finis généralement par utiliser un stylo quand je veux au bas de la liste Mais nous avons l'alternative de le placer à l'arrière, bien sûr, en le poussant vers l'avant au lieu de l'insérer dans le deck zéro Les méthodes push sont aussi simples que cela. Ce n'est pas un nouveau concept. Ce ne sont que deux autres méthodes que vous pouvez considérer comme une alternative. Maintenant, lorsqu'il s'agit d' organiser notre liste, vous pouvez constater que dans la plupart des cas, nos listes sont créées dans un ordre imprévisible fur et à mesure que nous exécutons notre programme et que nous y ajoutons des éléments. Et vous ne pouvez pas toujours contrôler cet ordre, surtout si vous demandez à l'utilisateur de saisir un tas d'éléments. Et à cause de cela, le problème devient vraiment inévitable . Mais nous avons de la chance. Dans GD Script, nous sommes autorisés à trier notre liste en utilisant une méthode simple appelée SRT Maintenant, SRT va commencer à trier notre liste par ordre alphabétique, et cela compte également pour les nombres. Tout va se passer selon nos chiffres. Maintenant, il faut savoir que les nombres sont inclus ici dans d'autres langues nombres tels qu'une liste contenant un, trois et 025 ou 025 triés dans l'ordre de 1025 ou 025, alors que dans le script GD, alors que dans le script GD 025 et 25 sont lus exactement comme le même nombre, ce qui permet à notre tri d'être un peu plus précis que Très bien, voyons si nous exécutons le tri, puis si nous l'imprimons à nouveau. Ensuite, nous pouvons y jeter un œil et voir l'apparence normale, puis nous avons un look trié qui entre en jeu ici. Maintenant, cela correspond également à nos chiffres. Alors, que se passe-t-il si nous avons des chiffres comme celui-ci en cours et que nous essayons de les trier ? Eh bien, vous voyez, nous allons rencontrer l'erreur ici. Parce que ce n'est pas vraiment compatible avec le tri que nous avons résolu. Donc, ce dont nous aurions besoin dans ce cas c'est que nous pourrions avoir deux listes distinctes ici. Nous appellerons celui-ci un engourdissement. Nous allons faire notre un, 95, trois, 287. Et si nous devions trier celui-ci, nous pouvons voir que tous nos chiffres seront triés comme prévu dans l'ordre. Donc un, deux, trois, 87, 95. Nous pouvons donc trier une liste de nombres et une liste de chaînes, mais nous ne pouvons pas trier une liste contenant des nombres et des chaînes. Nous avons donc besoin d'une liste qui soit l'une ou l'autre. Si nous avons une liste qui contient les deux, nous avons un problème. Nous devons simplement accepter le fait que nous ne sommes pas en mesure de les trier, et peut-être devrions-nous revenir en arrière et repenser la façon dont nous organisons les listes dont nous avons besoin Maintenant, ce que nous avons également ici, c'est que nous pouvons examiner la longueur d'une liste. Maintenant, longueur, lorsque nous obtenons la longueur, cela nous donnera en fait un chiffre. Et quand il s'agit d'une liste, cela s'appelle en fait taille. Donc, si nous imprimons la taille ici, nous voyons que nous allons obtenir un chiffre. Dans ce cas, c'est nous en dire cinq. Maintenant, souvenez-vous que nous avons un indice zéro, un, deux, trois, quatre, mais que le nombre d' articles que nous avons est de un, deux, trois, quatre, cinq. Et puisque cela nous est renvoyé, nous pouvons réellement le stocker dans une variable, et nous l'appellerons List. Nous devrions probablement l' appeler taille de liste. Mais on y va. Et puis, bien sûr, c'est comme n'importe quelle autre variable, et nous pouvons simplement l'appeler. Si vous avez besoin de prendre la taille d' une liste pour quelque raison que ce soit, et qu'il y a de nombreuses raisons pour lesquelles vous rencontrerez au cours de votre voyage, vous aurez besoin de connaître la taille de la liste alors que votre liste peut changer de manière dynamique, accord, pour couvrir besoin de connaître la taille de la liste alors que votre liste peut changer de manière dynamique, d' accord, pour couvrir tout ce que nous allons aborder ici avec la liste Nous en avons donc terminé avec la liste, et nous allons passer à autre chose. Nous allons toujours utiliser nos listes, mais nous allons aborder un sujet complètement différent maintenant ou dans la prochaine leçon. D'accord. Prends soin de toi. Et si vous devez y retourner, passez en revue ceci. La section de la liste ici contenait beaucoup de choses à examiner. 11. 11 pour la boucle: Maintenant que nous savons comment créer notre liste, les modifier, y ajouter des éléments, en supprimer et en retirer des éléments spécifiques. Nous pouvons maintenant examiner un autre ensemble de fonctionnalités, autre terme de codage de base Nous allons parler de ce que l'on appelle une boucle à quatre boucles. Maintenant, il arrive souvent que vous deviez effectuer la même action sur chaque élément de votre liste Par exemple, si nous voulions répertorier tous nos articles, nous devrions venir les imprimer, n'est-ce pas ? Allons-y donc. Entrez, faites les courses, et nous aurons besoin de l'indice zéro, et nous allons simplement le copier. Un, deux, trois, et nous pouvons supprimer cet éditeur. Ils diront index un, index deux et index trois. Donc, normalement, nous devrions passer en revue et faire quelque chose comme ça si nous voulions toutes les énumérer. Maintenant, c'est fatiguant. C'est inutile ou prend inutilement beaucoup de place. Au moment où nous les avons tous passés en revue, et honnêtement, en regardant le code, ce n'est pas un code très attrayant, la même chose se reproduire encore et encore. Mais lorsque vous souhaitez effectuer la même action sur chaque élément d'une liste, nous utilisons ce que l' on appelle une boucle for. Donc, en regardant notre liste de courses là-haut, nous pouvons voir qu' elle est pleine de produits, et si nous y ajoutons quelque chose, nous devrons ajouter un autre relevé imprimé, un autre, un autre Chaque fois que nous le supprimerons, nous devrons extraire ou supprimer des lignes. C'est compliqué, c'est ennuyeux à entretenir. Mais nous sommes en mesure d'automatiser ce processus au sein de ces quatre boucles. Donc, si nous voulons imprimer des choses telles que nous les voyons ici, il suffit de les commenter très rapidement. Comme on dit, ou, et vous remarquerez que cela va changer de couleur. Nous avons un mot clé ici. Et l'élément suivant est que vous pouvez utiliser peu près n'importe quelle variable que vous souhaitez utiliser ici. Il s'agit d'une toute nouvelle initiative. Si vous voulez faire quelque chose pour vous aider à clarifier les choses, vous pouvez utiliser item, mais un raccourci populaire consiste simplement à utiliser I et I pour article Maintenant, nous avons parlé des variables et de la façon dont votre nom devrait parler à la personne, vous devez savoir exactement de quoi il s' agit juste en le regardant. Et il est devenu courant d'utiliser I pour désigner un élément qui, une fois que vous aurez commencé à coder, vous reconnaîtrez ce que c'est. De plus, si une variable ne doit être utilisée qu'à un seul endroit, comme dans cette boucle, vous pouvez raccourcir votre variable de cette façon. Mais en continuant, nous en avons donc quatre, nous avons une variable pour représenter nos produits à quatre, je ou quatre articles, nous disons N, des produits d'épicerie Cela signifie que chaque fois que nous passerons revue et que nous exécuterons le bloc de code que nous écrivons ici, je serai égal à une tomate, puis je serai égal à des cornichons, puis je serai du ketchup, puis des brioches Ainsi, à la fin de notre boucle for, nous pouvons mettre deux points, entrer la tête et descendre à la ligne suivante. Maintenant, vous remarquez que nous sommes maintenant en retrait sur deux niveaux. C'est la première fois que nous devons indenter un nouveau niveau, alors assurez-vous que votre indentation est correcte Lors du codage dans certains langages, ils utilisent les accolades, mais dans des langages comme Python et le script GD, nous utilisons la Et j'ai vu de nombreuses personnes faire erreurs ou me dire que quelque chose ne fonctionne pas alors que leur problème est qu'elles ne sont pas assez indentées ou qu'elles sont toujours en retrait, puis qu'elles reviennent en arrière puis en ressortent Alors gardez un œil là-dessus. Et allons-y. Donc, pour les articles d'épicerie. Tout ce que nous voulons faire, c'est imprimer nos produits d'épicerie, non Nous voulons simplement imprimer cet article. Et c'est tout. C'est tout ce que nous avons à faire, imprimer, transmettre le code I pour l'article. C'est tout ce que nous avons à faire, et nous allons obtenir le même résultat que celui que vous voyez ici. Maintenant, la différence est que nous pouvons continuer et ajouter autant d'éléments que nous le voulons à cette liste. Nous pouvons donc entrer et repartir comme ça. Encore une fois, vous voyez que le nombre d'objets que nous avons commence à devenir ridicule. Et cela se produit lorsque nous commençons à ajouter ou à ajouter d'autres éléments à notre liste Et vous voyez, je n'ai pas du tout à changer mon code, et ils sont tous imprimés. Pas de problème Comme si nous les supprimions tous. Et descendez à deux tout d'un coup. Nous n'avons que ces deux imprimés, nous n'avons aucun problème. revenant à cette configuration d'impression, nous allons avoir des problèmes car à ce stade, lorsque nous avions tous ces éléments dedans, nous aurions dû créer un tas d'autres relevés imprimés ou ce que nous voulions faire pour chaque entrée. Maintenant qu'il n' en reste plus que deux, il faudrait modifier notre code et supprimer les deux dernières lignes ici. Ainsi, chaque fois que vous souhaitez exécuter le même code sur plusieurs éléments d'une liste, nous allons utiliser une boucle à quatre boucles pour cela. C'est bon. J'espère donc que c'est clair. À l'intérieur de nos quatre boucles, notre premier élément est une variable, communément appelée I, mais vous pouvez en faire ce que vous voulez. Supports pour objets. Donc, pour chaque article d'épicerie, nous allons imprimer cet article Je vais donc être égal à la tomate. Et puis une fois que nous l'aurons imprimé, je vais passer à autre chose et devenir des cornichons, puis nous l'imprimerons, puis il passera à l'article suivant et ainsi suite. Il suffit de le sauvegarder ici. Allons-y. si nous voulions faire quelque chose une fois ces quatre boucles terminées ? Eh bien, nous allons appuyer sur Entrée pour passer à la ligne suivante. Et vous voyez que nous sommes toujours en retrait sur deux lignes. Eh bien, ce que nous pouvons faire, c'est maintenir la touche Shift enfoncée et appuyer sur la touche Tab pour, je suppose, outdent, non Nous revenons d'un niveau en arrière, ou vous pouvez simplement appuyer une fois sur la touche de retour à la base et nous vous ramènerons également à un niveau. Et maintenant, vous pouvez voir que le carat ici est aligné avec les quatre boucles. Cela signifie que nous sommes en dehors de cela. Nous pouvons donc imprimer maintenant et dire que quatre boucles sont terminées, quatre boucles sont terminées, et nous verrons que cela ne se produira qu' une fois que tout le reste aura été imprimé. Donc, si vous voulez faire quelque chose en dehors des quatre boucles, assurez-vous simplement de ramener votre empreinte d'un niveau vers l'arrière Maintenant, pour vous aider à éviter les erreurs, assurez-vous que tout, comme je le disais, comme je l'ai dit tout à l'heure, soit bien orthographié. G majuscule pour les produits d'épicerie et G minuscule pour les produits d'épicerie. Mais pour nous, c'est pareil. Ils font tous les deux des courses. ce qui concerne le code, il s'agit de deux éléments très différents ou de deux variables différentes dans ce cas, et il en va de même pour notre I ici. Nous disons donc quatre I en minuscules, nous ne pouvons pas imprimer en majuscule I. Il ne va pas savoir ce que Et nous allons avoir des erreurs à partir de là. Et puis, bien sûr, nos niveaux d' indentation que nous venons dépasser. D'accord ? Cela complète donc cela en ce qui concerne les quatre boucles de base et les principes qui les sous-tendent. Maintenant, vous pouvez faire la même chose si nous avions une série de chiffres ici. Si nous venions ici, tu pourrais entrer. Il suffit de mettre un tas de chiffres. Oh, ce minimum. Alors maintenant, quand nous ferons pour I et minum, je vais représenter les chiffres trois, puis 675, puis 23 67 Puisque nous avons maintenant des chiffres, nous pouvons aussi faire des calculs avec cela, donc nous pouvons dire I plus 100. Simplifiez les choses. Et nous y voilà. Nous pouvons maintenant voir les imprimés 103, 775, 123 et 167 Ensuite, notre déclaration d'impression nous indiquant que les quatre boucles sont terminées. Donc, si vous n'avez pas de chaîne et que vous avez quelque chose comme ça, vous pouvez effectuer quelques calculs. Tu as des chiffres. Bien entendu, avec les chaînes, si vous le souhaitez vraiment, vous pouvez les insérer dans un espace réservé, si c'est ce que vous voulez faire à plusieurs reprises C'est bon. Cela donne donc un aperçu rapide ce qu'est une boucle à quatre et de la façon dont nous pouvons l'utiliser. 12. Gamme 12: Quelque chose avec lequel nous pouvons utiliser une boucle à quatre. Généralement, lorsque nous voulons faire quelque chose, peut-être un certain nombre de fois, mais nous n'avons pas besoin d'une liste. Nous ne voulons pas parcourir un certain nombre de listes ou une liste d'éléments, nous voulons simplement faire quelque chose un certain nombre de fois. Eh bien, c'est là que des choses comme la portée entrent en jeu. Nous pouvons maintenant utiliser la plage pour obtenir tous les nombres compris entre un ensemble de valeurs si nous le voulions. Et cela nécessiterait quelques arguments. Si nous examinons la portée, nous pouvons voir que dans ce cas, il n'y a que trois points pour le moment. Mais le premier argument sera le chiffre le plus bas. Donc, si je dis dix, cela prend un deuxième argument, qui serait le nombre le plus élevé, donc disons 20. Cela nous donnerait donc une plage 10 à 20, alors allons-y et imprimons ceci sous la forme d'un 44, disons , N pour le numéro quatre N dans la plage Et imprimons N pour voir ce que nous obtenons. Eh bien, si nous y regardons, nous voyons que nous en avons dix, 11, 12 , 13, 14, 15, 16, 17, 18 et 19. Vous n'obtenez donc pas le dernier chiffre imprimé ici, car une fois que nous y sommes arrivés, si vous pouvez l'imaginer, si N est égal à 20 et que 20 n'est pas 10-20 Il en est 20. Il n'est donc pas imprimé et les quatre boucles se terminent. Maintenant, de même, nous pouvons venir ici et nous pourrions mettre une fourchette de 20. Et si nous mettions une fourchette de seulement 20 ? On l'imprime ? Qu'est-ce qu'on obtient ? Eh bien, nous avons obtenu la même chose. Nous ne montons qu'à 19, mais nous partons de zéro. Donc, si je voulais faire quelque chose 20 fois, je pourrais mettre le chiffre 20, et ça arriverait. C'est juste parce que nous commençons avec notre indice à zéro, en commençant par zéro et en ne comptant pas à partir de un. Ainsi, en utilisant cela, nous pouvons parcourir une plage définie de nombres allant de zéro à un nombre ou tous les nombres compris entre une plage définie. Maintenant, vous pouvez le faire si vous souhaitez répéter une action spécifique. Vous pouvez le faire si vous le souhaitez ou le parcourir en boucle en fonction de la taille de votre liste, n'est-ce pas ? Parce que nous savons maintenant comment en obtenir la longueur en appelant la taille. Tout ce qui peut vous donner un numéro, nous pouvons le mettre ici. fait, la gamme ne sert qu'à nous donner tous les chiffres d'un anneau défini, puis passer par les quatre boucles. Donc, une chose que nous pouvons faire avec cela est, par exemple , de jeter un coup d'œil, et nous pourrions imprimer ou plutôt créer une variable. Nous pouvons créer une toute nouvelle liste ici. Nous allons donc appeler ce carré et le définir comme une liste vide. Et ce que nous pourrions faire, c'est que nous pourrions ensuite faire stylo carré afin de pouvoir l' ajouter à notre liste. Et ce que nous allons ajouter serait une valeur exponentielle Nous voulons donc additionner tous les nombres au carré. Donc, les nombres de 0 à 20 sont tous au carré. Nous mettrions donc cela dans un exposant Posh do. Je vais donc dire N pour le nombre que nous avons ici. Avec le pouvoir de deux. Et nous voulons imprimer l'intérieur ? Non, nous imprimerons sur l'extérieur. Nous allons procéder à l'impression carrée. C'est bon. Nous avons donc une liste vide pour commencer. Nous allons passer en revue chaque chiffre de 0 à 20, et nous allons passer au carré Nous allons donc dire zéro au carré. Tout ce que cela équivaut, c'est ce que nous allons ajouter à cette liste. va dire un carré, qui est égal à entrer, deux au carré, trois au carré, et ainsi Donc, si nous examinons notre liste maintenant, vous pouvez voir que nous avons obtenu zéro, un, quatre, neuf , 16, 25, etc. jusqu'à 361 La plage est donc un moyen d' ajouter des nombres dans une liste ou de créer une liste basée sur quelque chose qui existe déjà. Donc valeur préexistante. C'est bon. C'est donc à peu près tout ce que nous pouvons vraiment en faire. Il y a donc quatre boucles et la façon dont nous pouvons les utiliser est listée avec une liste. Et il existe quatre boucles et la façon dont nous les utilisons avec range pour répéter un ensemble d'instructions ou un morceau de code pendant un certain nombre de fois. 13. Égalité 13: Au cœur de chaque vérification. Une partie très importante codage sera donc l'instruction if. Et c'est le genre de choses que nous rencontrons dans la vie de tous les jours où nous vérifiions si cela se produit, puis nous le faisons. Sinon, c'est ce que nous faisons, non ? Donc, par exemple, utilisez simplement votre ordinateur là-bas. Si vous êtes dans l'éditeur, si vous appuyez sur K, nous mettons K à l'écran. Hein ? Si nous appuyons sur le retour arrière, nous supprimons le caractère précédent C'est l'idée générale du fonctionnement d'une instruction if. Maintenant, une instruction if vérifie toujours si quelque chose est vrai, n'est-ce pas ? Donc, si nous appuyons sur K, ce que nous avons fait, nous l'avons appuyé, ce qui signifie que c'est maintenant vrai. Ensuite, sa réponse a été de mettre K à l'écran. Donc, pour obtenir ces vérifications, nous devons utiliser des instructions if avec ce que l'on appelle un contrôle d'égalité. Maintenant, un contrôle d'égalité consiste essentiellement vérifier si deux éléments sont identiques. Et nous pouvons vérifier si deux articles sont identiques, c'est facile. Nous arrivons et nous imprimons. On peut dire que cinq est égal à cinq, non ? Nous pouvons le faire, et si nous l'imprimons, nous allons faire en sorte que le mot soit vrai. Maintenant, gardez à l'esprit que lorsque nous effectuons un contrôle d'égalité, il s' agira ici du signe deux égaux, deux fois égal. Donc, si cinq est égal à cinq, donc si cinq et cinq sont identiques, nous allons passer à travers. Maintenant, si nous vérifions que cinq est égal à six, nous allons obtenir une valeur fausse parce que cinq et six ne sont pas identiques. Ce sont deux choses différentes. Et cela vaut également pour l'impression. Cela nous ramène à nos déclarations précédentes. Donc, si nous avons une tomate avec une majuscule et que nous vérifions si c'est équivalent à une tomate en minuscule et que nous l' imprimons, vous voyez, nous allons avoir tort parce que même si, pour nous, c'est le même mot parce que l'un a un T majuscule et l'autre un code minuscule, cela signifie que c'est deux choses distinctes Ils devraient donc tous deux être capitalisés pour être vrais. C'est donc tout ce qu'est le contrôle de l'égalité. Il s'agit de vérifier si c'est vrai ou si ces deux choses sont identiques, alors nous pouvons faire quelque chose. Alors allons-y et intervenons, d'accord ? Nous pouvons dire si, puis vous pouvez taper. Donc, si on refait nos tomates, tomates. Le double est égal à une tomate. Ensuite, nous terminons par deux points et nous entrons pour passer à la ligne suivante. Nous sommes donc maintenant en retrait d'un bloc. Donc, tout ce que nous avons indiqué ici se produira si ces deux éléments sont vrais, non ? Si cette condition est vraie, nous le faisons. Ce que nous allons faire, c'est simplement imprimer une chaîne. Ces deux choses sont vraies. Donc, si nous devions l'imprimer, nous le démarrons et nous remarquerons qu' il ne s'imprime pas parce qu'au fur et à mesure, T et T minuscules font une différence, ils ne sont donc pas vrais Mais si nous y ajoutons apt T, alors ce bloc indenté s'exécutera Comme vous le voyez, ces deux informations sont vraies et sont maintenant imprimées. Maintenant, outre le contrôle d' égalité, nous pouvons également effectuer un contrôle d' inégalité. Et dans le cas de cette année, où nous avons une majuscule et une minuscule, souvenez-vous que nous pouvons utiliser Donc, dans ce cas, si nous voulons voir si les deux sont identiques, nous pouvons dire si tomate majuscule est égale à tomate point majuscule ou vrai, ce qui serait le cas parce que la première lettre est en majuscule, alors les deux redeviendront Maintenant, sinon, cette alternative que nous pouvons faire, c'est utiliser l'inégalité. Et avec cela, nous pouvons faire en sorte que les points d'exclamation soient égaux. Et cela signifie qu'il n'y a pas d'égalité. Le point d'exclamation signifie donc que non. Donc, si tomate n'est pas égale à tomate, ce qui signifie que nous vérifions si ces deux choses sont différentes, alors c'est vrai, et nous entrons dans notre code ici, ou dans un bloc indenté. Maintenant, sinon, ce que nous pourrions faire, c'est que nous pouvons réellement taper le mot au début, pas. Donc, sinon, tomate est égale à tomate. Et cela reviendrait à dire : « suis pas synonyme de tomate ». Vous pouvez donc soit écrire le mot, soit utiliser le point d'exclamation avant l'égal, si vous voulez vérifier cela Il arrive souvent que nous vérifiions si deux choses ne sont pas égales pour obtenir des résultats différents. Maintenant, nous avons examiné cela un peu avec des chiffres. Mais ce que nous pouvons faire, c'est que nous pouvons réellement passer, si vous vous souvenez, en mathématiques, où nous avions plus et moins que cela à vérifier et à utiliser. Nous pouvons également l'utiliser ici dans le code. Nous pouvons donc dire, par exemple, si nous revenons à notre chiffre cinq égal à six et que nous imprimerons le chiffre égal ? Est-ce que cinq est égal à six ? Non, bien sûr que non. Mais on peut se demander si cinq est inférieur ou égal à six. Ensuite, nous pouvons obtenir notre pilule, qui dit évidemment égal, ce qui est vrai, ce qui est vrai, ce qui est un peu plus précis, n' est-ce pas ? Donc, si cinq est inférieur à six, inférieur ou égal à. Remarquez cela. Cela pourrait donc être six contre six, et cela se réaliserait quand même. Alors que si nous avions juste le signe inférieur à six, cela reviendrait faux parce que six n'est pas moins de six, six c'est six. Nous pouvons donc utiliser inférieur, inférieur ou égal à, supérieur à, lecteur ou égal à, égal à et différent de. Je sais que vous devez vous souvenir de nombreux signes et symboles d' égalité, mais j'espère que vous pourrez garder ce genre de contrôles en tête. Et nous pouvons utiliser le s pour dire, disons que quelqu'un va au magasin et veut acheter de l'alcool. Disons qu'il faut 19 ans pour acheter de l'alcool là-bas. Et évidemment, vous allez devoir montrer votre carte d'identité, prouver votre âge, non ? Et si nous devions coder ce scénario, le caissier examinerait l'identifiant et procéderait à un contrôle d'égalité Ils vont voir si la personne en face d' eux a 19 ans ou plus, est supérieure ou égale à 19 ans, alors nous revenons à la réalité et nous procéderons à la vente. S'ils sont revenus comme si c'était le cas, non ? Donc, si ce chèque s'avérait faux, vous ne le leur vendriez évidemment pas. Et je sais que c'est le genre de voie que certains de ces joueurs ont également emprunté avec les jeux vidéo. Donc, si un jeu est classé M pour un jeu mature, je crois que c'est une note de 17. Ensuite, nous allons vérifier si la personne a 17 ans ou plus, si elle est supérieure ou égale à 17 ans, vendre le jeu, sinon, refuser la vente. Ce sont donc deux exemples de la façon dont ce type de vérification et de vérification de l'égalité se traduit en quelque sorte dans la vie réelle dans ces situations du monde réel. Maintenant que nous en avons traité une, nous pouvons également couvrir deux affections en même temps. Nous pouvons donc dire que I six est inférieur à six, et autre chose à dire, et que cinq est supérieur à deux, afin que nous sachions que l'une de ces affirmations est vraie, n'est-ce pas ? Nous savons que six n'est pas inférieur à six, mais nous savons que cinq est certainement supérieur à deux. Donc, si nous devions l'imprimer, nous verrons, cela ne se vérifiera pas, rien ne se passera. Nous n'arrivons pas dans ce quartier. Et la raison en est que ces deux affirmations doivent être vraies parce que nous utilisons et. Donc cette pièce doit être vraie, et cette pièce doit être vraie. Donc, si nous devions le ramener à cinq, devrions-nous dire que si cinq est inférieur à six et cinq est supérieur à deux, cela reviendrait à vrai dire. Vous pouvez donc avoir plusieurs affections, et il n'est pas nécessaire que cela s'arrête à deux, n'est-ce pas ? Vous pouvez entrer et ajouter une troisième condition, une quatrième condition, une cinquième condition. Vous ne devriez probablement pas le faire une fois que nous sommes confrontés à autant de conditions, mais le fait est que vous pourriez le faire. Vous pouvez avoir autant de conditions que vous le souhaitez. Maintenant, ce que nous pouvons également faire, c'est que nous n'avons pas à vérifier si l'un d'entre eux change Baca six, moins de six, nous n'avons pas à vérifier si les deux sont vrais Nous pouvons utiliser l'opérateur or. Et cela vérifiera essentiellement si c'est vrai ou si c'est vrai. La première condition est vraie ou la deuxième condition est vraie, puis nous avançons à l'intérieur de notre bloc de code. Nous n'avons donc besoin que d'une seule instance pour être vraie lorsque nous utilisons O. Nous avons besoin que toutes les instances soient vraies lorsque nous utilisons et. Maintenant, ce qui est important, c'est que si vous ne voulez pas écrire les mots et aussi bien que ou, nous pouvons réellement utiliser deux tubes verticaux pour représenter le mot ou nous pouvons utiliser deux esperluettes pour représenter le mot Donc, quel que soit le chemin que vous emprunterez, encore une fois, ce sera votre préférence personnelle, vous utilisiez les esperluettes ou les tuyaux ou simplement écrire le mot. Cela ne changera rien. Et pour autant que je sache, cela n'affecte en rien les performances. Ce ne sont que deux options pour faire la même chose. Donc, en fin de compte, ceux-ci reviennent comme vrais ou faux. Donc, en fin de compte, c'est ce à quoi nous avons affaire, n'est-ce pas ? Nous vérifions donc essentiellement si c'est vrai. Donc si c'est vrai, alors bien sûr, nous l' imprimons, non ? C'est ce que nous faisons en fin de compte. Mais lorsque nous vérifions les inégalités, nous vérifions si quelque chose est faux, n'est-ce pas ? Nous disons donc que s'ils ne le sont pas s'ils ne sont pas égaux, alors c'est vrai, et nous passons à notre blog. C'est bon. J'espère que cela avait du sens là-bas. Il y avait beaucoup de choses lesquelles jongler là-dedans Si vous êtes un peu confus, revenez en arrière, regardez-le à nouveau. Mais cela suffira pour nos contrôles d'égalité, nos contrôles inégalité. Un booléen est simplement le résultat, qu'il soit vrai ou faux Et voyons voir, cela couvre que nous avons également examiné plusieurs conditions , soit par le biais de soit en utilisant ou. Et nous avons comparé les chiffres. Nous avons obtenu une valeur supérieure à inférieure à égale ou différente de. Nous sommes beaucoup allés ici. Je vais donc le faire pour cette section et nous allons passer à bien, continuant nos déclarations I ici. 14. 14 si autre elif: C'est bon. Nous avons donc abordé brièvement les déclarations if parce que nous en avions besoin pour utiliser les contrôles de qualité, contrôles d' égalité et les contrôles d'inégalité, etc. Passons donc un peu plus en détail à la déclaration I. Maintenant, avec les instructions I, vous remarquerez que dans la section conditionnelle que nous étions en train de parcourir, nous commençons notre code par I, bien sûr, parce que nous voulons vérifier si quelque chose est vrai. Donc, l'instruction if dit : si c'est vrai, continuez et entrez dans mon bloc de code. Maintenant, il s'agit d'un conditionnel qui vous indique si quelque chose est vrai ou faux, essentiellement, et qui suit ou est toujours suivi par le mot clé I. Je crois que j'ai formulé ça un peu bizarrement. Notre vérification vient toujours après le mot clé I. Ainsi, tout comme lorsque nous vérifions plusieurs conditions sont vraies, que plusieurs conditions sont vraies, nous pouvons l'utiliser dans nos instructions if, comme nous l'avons vérifié avec des chaînes plus tôt. Mais l'une des principales différences est qu'il s'agit d'un bloc instructions peuvent devenir un peu compliquées lorsque nous avons un tas de vérifications qui sont utilisées, comme vous l'avez vu quand nous pouvions mettre et, et nous pouvions simplement continuer à ajouter de plus en plus de conditions et nous pourrions utiliser Os pour continuer Nous avons à peu près un nombre illimité de conditions que nous pouvons vérifier. Et nous pouvons utiliser une condition, n'importe quelle instruction conditionnelle avec I. Donc, si nous examinons la simple déclaration «   si », comme nous l'avons fait auparavant, nous disons : si tomate est égale à tomate, alors nous dirions que c'est vrai, n'est-ce pas ? Tant qu'ils étaient tous les deux orthographiés exactement de la même manière avec des majuscules et tout ça Mais que se passerait-il si nous voulions tout attraper, n'est-ce pas ? Et si nous voulons, voyons voir. Créons une variable appelée NUM. Nous allons le fixer à six. Nous dirons inside si je suis prêt, nous dirons si num est supérieur ou égal à six. C'est vrai. Colon et nous vous dirons, allez-y, imprimez-le dedans. Ah, c'est mieux. Et si nous l' imprimons, nous verrons, OK, il reviendra. Il est supérieur ou égal à six. Cependant, si nous disons s' il est supérieur ou égal à sept, rien ne va. Mais dans certains cas, vous souhaiterez peut-être qu'il en résulte quelque chose. Et c'est là qu' intervient le bloc Else . Je vais juste baisser ce montant. Sinon, suivi deux points, c'est tout ce que nous avons à mettre là. Nous disons que si toutes les vérifications ci-dessus sont fausses, aucune d'entre elles n'est vraie, alors le bloc else s'en chargera. Nous pouvons donc venir ici et continuer et imprimer ceci, j'ai un espace là-dedans, disons que ce n'est pas plus grand. Et nous pouvons aller de l'avant et avoir nos chèques. Alors maintenant, nous allons vraiment comprendre que ce n'est pas mieux ou nous allons obtenir la réponse. C'est plus important. Donc, que ce soit vrai ou faux, nous allons avoir une sorte de réponse, sorte d'action et vous pourriez vous dire : OK, eh bien, vous pouvez simplement continuer, von down, faire un autre si, un autre si et un autre si, et vous pouvez continuer à faire toutes ces différentes vérifications. Mais le problème, c'est que si tout cela est vrai, par exemple, si nous changeons cela quatre, celui-ci par trois, celui-ci par deux, en fait, si nous les changeons, nous voulons aller dans l'autre sens. Si nous disons s'il s'agit de sept, huit et neuf, donc s'ils sont supérieurs à six, puisqu'il s'agit de chèques, ils seront tous exécutés comme vous le voyez ici, ils ont été exécutés pour num, sept, huit, neuf. Ils se sont tous révélés vrais, donc ils ont tous été déclenchés. Mais que se passerait-il si nous n'avions besoin que d'un seul d'entre eux ? Et si nous voulions juste que le premier soit vrai pour le déclencher. Et puis si cela se déclenche, aucune des autres conditions n'est vérifiée. Eh bien, c'est là qu'un autre mot clé entre en jeu ici, et c'est le cas contraire. C'est donc une sorte de combinaison du moi et du reste réunis, et nous l'appelons simplement LF. Donc, si nous venons ici et que nous disons si c'est pour eux. Je dis simplement que si c'est vrai, alors nous le ferons. Sinon, nous vérifierons si c'est vrai, faisons ceci, sinon, si c'est vrai, sinon, si c'est vrai, et si tout cela échoue, il ne nous restera que l'instruction else. Donc, si nous devions le faire maintenant, vous verrez que le premier se réalisera ici, et ensuite nous n'y arriverons jamais. Et nous pouvons le constater si nous venons ici et que nous ajoutons simplement un tas de points d' exclamation pour pouvoir différencier les choses Nous pouvons voir que le premier est détecté comme vrai, puis nous ignorons tous les autres car nous n'avons pas besoin de les vérifier. Nous ne vérifions donc pas si toutes ces choses sont vraies individuellement. Il peut donc y avoir certaines situations dans lesquelles vous souhaitez utiliser des multiples, plusieurs s'ils sont cochés seuls. Mais la plupart du temps, vous aurez probablement plus d' un I ou d'un si autre. Une sorte de chaîne comme celle que nous voyons ici. Maintenant, cela peut parfois rendre les choses un peu compliquées lorsque nous abordons cette question. Donc, si nous examinons un exemple, nous y voilà. D'accord, nous avons donc tous nos contrôles en place ici. Je choisis donc un nombre aléatoire pour les enfants de moins de 15 ans. Nous allons donc vérifier si l'âge est inférieur à 13 ans. Bien, nous allons partir de l' hypothèse du prix des salles de cinéma, n'est-ce pas ? Alors entrez, nous dirons, j'ai 13 ans, ce sera ce prix, si c'est 13 à 64 ans, donc c'est supérieur à 13, moins de 64 ans, c'est ce prix, et s'il est supérieur à 64 ans, nous faisons ce prix Et puis nous avons un dicton qui dit qu'il n'est pas valide, juste au cas où. Nous ne devrions jamais avoir une telle situation. Allons-y Nous en avons donc 15. Nous pouvons nous débrouiller seuls. Nous dirons que ce n'est pas moins de 13. Alors, saute ça. Nous passons à notre deuxième contrôle. L'âge est supérieur à 13 ans et inférieur à 64 ans. Oui, 15 c'est. Nous devrions donc récupérer le prix est de 14 50€. Si vous y jouez, nous pouvons voir que c'est exactement ce que nous obtenons. Il existe donc un exemple de chaîne « si », «   sinon si » et « sinon si ». Encore une fois, prenons l'exemple d' un cinéma dont prix des billets varie en fonction de l'âge de la personne qui a besoin d'un billet. Maintenant, nous pouvons également utiliser ces instructions if, et les fusionner en quelque sorte avec nos quatre instructions ou 44 boucles, et nous pouvons discuter de choses telles que « disons que nous avons fait nos courses Hein ? Céréales Ketchup. Du lait. Cependant, il se peut que nous ayons un chèque pour les articles en rupture de stock. Peut-être que vous développez une application qui permet de suivre les articles en rupture de stock et en stock. Lorsqu'un article est en rupture de stock, il apparaît ici. Nous allons donc dire que ce magasin est en rupture de stock de lait, non ? Nous allons donc dire que nous n'avons pas de lait, mais nous voulons vérifier. Nous voulons donc passer en revue notre liste d'épicerie. Nous voulons donc le dire pour moi, non ? Pour les articles d'épicerie, comme nous l'avons fait précédemment dans la section Four Luke Et nous voulons voir si cet article est en rupture de stock. Donc, mettre tout cela ensemble pour avoir de quoi faire les courses. Nous voulons vérifier si je suis en rupture de stock. Donc, utiliser ici va vérifier si l' article s'y trouve. Donc, si les céréales figurent dans cette liste, nous allons créer le prochain bloc de code. Et si ce n'est pas le cas, nous allons continuer. Nous allons donc dire que nous allons imprimer et que nous allons tout rassembler ici. Nous dirons que le pourcentage S est en rupture de stock. Ensuite, nous allons simplement transmettre le pourcentage I pour transmettre notre élément à notre chaîne. En mettant tout cela ensemble, nous voyons que la seule chose qui le déclenche est le lait, car le lait figure bel et bien sur notre liste de produits en rupture de stock. Vous pouvez donc voir à quelle vitesse nous commençons à enchaîner les choses. Nous imprimons sur notre console, nous insérons des variables dans nos chaînes Nous utilisons des tests électroniques pour voir si quelque chose est vrai, et nous faisons une boucle en quatre pour vérifier et nous faisons une boucle en quatre pour tout ce qui se trouve dans nos épiceries. Parcourez tout ce qui se trouve dans notre liste. Très bien, cela devrait couvrir tout ce qui va avec les vérifications if, else, if, else, else, ainsi que, espérons-le, quelques exemples pour clarifier un peu les choses et voir comment tout cela s'intègre 15. 15 dictionnaires: C'est bon. Tout le monde, aujourd'hui, nous allons jeter un œil aux dictionnaires. Maintenant, nous ne parlons évidemment pas du type que vous choisissez, ce type de mot et de la définition qui lui est associée, mais vous pourriez utiliser un dictionnaire pour créer un dictionnaire. Et un dictionnaire est assez proche de ce qu' un dictionnaire est en train de coder. La raison en est qu'ils fonctionnent dans le but d' avoir une paire clé-valeur. Donc, par rapport à un dictionnaire normal, nous aurions le mot comme clé, puis la définition serait la valeur. dictionnaires sont donc un ensemble de données qui peuvent contenir tous les types de données dont nous avons parlé jusqu'à présent, y compris d'autres dictionnaires en eux-mêmes Un dictionnaire peut conserver un ensemble d'informations connexes en un seul endroit, telles que les paramètres du jeu ou du programme ou des informations sur les personnages ennemis. Un dictionnaire peut être facilement identifié puisque toutes les données, toutes leurs données, seront placées entre accolades au lieu d'une liste utilisant des crochets Allons-y et voyons comment ces dictionnaires sont formatés C'est bon. Donc, en allant ici en haut, nous allons créer une nouvelle variable. Je vais l'appeler dictionnaire M. Et bien sûr, nous allons le définir comme une paire de bretelles bouclées Maintenant, la façon dont cela fonctionne, c'est que nous pouvons aller de l'avant et entrer pour le rendre plus agréable à regarder Et nous faisons une paire clé-valeur. Ainsi, par exemple, nous allons dire touche un, puis deux points, puis la valeur. Nous allons donc choisir ma valeur et si vous voulez en insérer une autre, nous mettons une virgule, et nous pouvons entrer menu déroulant jusqu'à la ligne suivante, et nous pouvons utiliser la touche deux Nous y voilà. C' est ma nouvelle valeur. Et ainsi de suite tout au long de la liste. Maintenant, le nom de notre dictionnaire peut être ce que vous voulez, comme une variable normale. Mais une fois que nous sommes entrés dans nos bretelles bouclées, vous pouvez voir que nous avons une ficelle, et cette première corde est notre Vous pouvez évidemment le nommer comme vous le souhaitez, mais comme pour les variables, les données auxquelles elles sont liées doivent être claires. Il devrait donc avoir une sorte d'indicateur de la relation entre la valeur. Par exemple, cela pourrait se trouver dans un dictionnaire météo. Une clé peut être la température ou la température, puis la valeur serait le nombre réel C'est bon. Par exemple, si vous définissez des paramètres, pourriez avoir un dictionnaire audio et un dictionnaire graphique. Maintenant, votre clé, comme vous pouvez le voir , est suivie de deux points, puis de vos données. Vos données ici sont ce que nous appelons la valeur, et elles sont traitées de la même manière qu' une liste avec un indice de zéro, si cela a du sens, étant votre première valeur. Maintenant, nous pourrions appeler cela dans différentes situations ou de différentes manières . Vous pouvez même, je suppose , y avoir différents types de données. Nous pourrions y avoir une liste parmi nos valeurs. Donc, si nous voulons l'index zéro ici, nous donnerons notre nom, retournant avec Jim et Index un, renvoyant oui. C'est notre santé qui tourne autour de nous. Donc, si nous l'avions, désolé, un dictionnaire à l'intérieur d'un dictionnaire , que nous pouvons faire ici, n'est-ce pas ? Nous allons donc dire que c'est un nom, et ce serait un rapport en tant que lui et le prochain, nous aurons la santé, et nous dirons 100. Donc, dans une situation comme celle-ci, il s'agit d'indices qui proviennent Maintenant, bien sûr, nous n' avons pas besoin d'utiliser d'index. Nous pourrions simplement écrire les noms complets lorsqu'il s'agit de dictionnaires, ce qui est toujours agréable N'oubliez pas que chaque clé doit être séparée par sa propre virgule, alors allons-y et passons à notre lecture pour voir comment nous pouvons accéder à un dictionnaire accord ? Ainsi, lorsque nous accèderons à notre dictionnaire, nous l' imprimerons, bien sûr. Et ce que nous allons envisager, c'est que nous allons imprimer mon dictionnaire, bien sûr, et nous pourrions simplement l'imprimer comme ça. Mais bien sûr, si nous voulons l' affiner , jetons un coup d'œil. Donc, il est imprimé, c'est-à-dire que nous obtenons la clé un, puis nous obtenons la clé deux, puis nous les mettons à l'intérieur d' une autre orthèse bouclée pour l'autre ensemble Nous pouvons donc obtenir la clé un ou la clé deux ici. Maintenant, si nous voulons obtenir la clé 1, nous pouvons simplement faire des crochets juste à côté, comme dans un tableau Nous sommes les seuls à pouvoir saisir la touche 1. Et comme vous le voyez ici, nous allons obtenir le résultat, le plus important, là-bas. Et c'est pareil. Si nous faisons k deux, nous allons obtenir le nouveau dictionnaire que contient Kit. Maintenant, que se passera-t-il si nous utilisons zéro pour notre dictionnaire ici ? Essayez d'y accéder. Nous allons nous retrouver dans cette situation parce que nous n'avons pas accès aux limites de ce dictionnaire Il existe donc différentes situations pour quelque chose comme ça. Par exemple, ce que nous pourrions faire, c'est consulter mon dictionnaire, non ? Encore une fois, nous pouvons utiliser touches à points et quelque chose comme ça. Cela va juste récupérer toutes nos clés et les renvoyer sous forme de tableau, donc ce sera une liste de toutes nos clés. Ensuite, nous pouvons faire nos crochets et y mettre un zéro. Nous pourrions donc faire quelque chose comme ça, et cela fonctionnerait, même si c'est beaucoup plus long que nécessaire. Et je sais qu'avec trois, temps en temps, cela fonctionnerait aussi. Vous pourriez simplement mettre un point sur la touche 1. Oui, voilà. Vous pouvez donc simplement faire un point et saisir la valeur clé ici. Nous pouvons donc en faire deux, et le K deux entre dans une autre liste, désolé, dans un autre dictionnaire à part entière. Nous pourrions donc passer à un autre point. Nous pouvons donc faire mon dictionnaire.k2 point, je vais dire Health. Et comme vous le voyez, notre résultat est de 100. pouvons donc accéder au contenu de notre dictionnaire de Nous pouvons donc accéder au contenu de notre dictionnaire de différentes manières, que ce soit en utilisant la méthode log obtenant une liste de nos clés et en insérant un index, en passant simplement la clé que nous voulons sous chaîne ou en utilisant une méthode à points comme celle-ci, similaire à un appel de fonction ou à un appel de méthode. Maintenant, lorsque nous avons des dictionnaires à l'intérieur de dictionnaires, vous avez vu essentiellement ce que nous allons faire ici avec dotqt point HeL Vous seul pouvez y accéder par le biais de nos crochets. Nous pouvons donc faire la clé deux. Et puis, juste à côté , nous allons simplement créer une autre série de crochets. C'est aussi ce que nous pouvons simplement écrire comme ça , avec une ou deux paires de crochets, chaque touche descendant. C'est ainsi que nous pouvons accéder à nos dictionnaires et à leurs annexes Cela peut être un peu confus, alors j'espère que c'était assez clair, moins si ce n'est l' explication avec la démonstration réelle en le voyant utilisé ici. Désormais, les dictionnaires peuvent contenir tous les autres types de données Ils pourraient donc y avoir une liste. Ils peuvent avoir des nombres, vous savez, des entiers, des flottants, des chaînes, des dictionnaires et des annexes Nous avons donc tout ce joker, et bien sûr, l'accès à ceux-ci dépend en fait des méthodes que nous vous avons montrées ici, et en fonction du type de données dont il s' agit, évidemment, si la valeur doit être un tableau, vous allez accéder aux valeurs qu'il contient comme un tableau. Et si nous voulions l'ajouter à notre dictionnaire, n'est-ce pas ? Nous y avons donc mon dictionnaire. Allons-y et créons-en un nouveau. Nous l'appellerons Colors, et nous aurons la suite d'un dictionnaire vide. Donnez-moi des erreurs pour ce qui est en bas parce que nous ne les avons pas renseignées. Maintenant, que faisons-nous pour transmettre des données ici si nous voulons ajouter une nouvelle entrée dans notre dictionnaire ? Eh bien, nous pouvons simplement passer à nos couleurs et nous allons passer une clé comme si nous essayions d'y accéder. Nous allons donc appeler cela allons-y avec des couleurs froides ou froides, puis nous la définirons comme étant égale à la valeur que nous voulons. Nous allons donc opter pour un bleu. Si nous imprimons nos couleurs maintenant, nous devrions voir le bleu être la valeur, ici une valeur de chaîne de caractères de la touche cool. Nous devrions donc le voir ici dans notre dictionnaire des couleurs. Et nous y voilà. Nous pouvons le voir juste là. C'est donc aussi simple que cela, vous y ajoutez, et cela devrait également fonctionner pour un tableau. Donc, si nous avons simplement une liste ici et que nous l' imprimons, comme vous le voyez, cela fonctionne exactement comme vous pouvez l' imaginer, même si nous utilisons un type d'ensemble de données différent ici. Alors voilà. C'est assez facile pour nous. Nous l'appelons simplement puis définissons et cela fonctionne la même manière si vous souhaitez également le réinitialiser ou le modifier. Donc, si vous voulez changer la clé qu'il contient, si vous venez ici et changez ce livre. Donc, d'abord, ce seront ces chiffres, puis nous allons les changer en rouge et les imprimer à nouveau. Comme vous le voyez, vous pouvez y ajouter des clés et les remplacer en utilisant le même format Maintenant, ce qui se complique un peu, c'est lorsque vous voulez ajouter un dictionnaire dans le dictionnaire. Devons-nous simplement le retirer ? Et voyons si cela fonctionne maintenant, en le tapant. Nous allons donc dire que j'en ai un. Très bien, nous allons dire valeur ici. Et voyons si cela fonctionne. Très bien, cool. Nous pouvons donc des dictionnaires de cette façon tout aussi facilement. Génial. Je n'ai donc pas besoin de passer revue aucun type de solution pour cela Parfait. Très bien, alors voilà. Voici comment nous pouvons ajouter des éléments à notre dictionnaire et remplacer les clés Maintenant, nous pouvons jeter un œil à la lecture en boucle de nos dictionnaires Il est donc évident que les dictionnaires seront un peu différents ici Nous allons donc utiliser à nouveau Mon dictionnaire, et nous allons en fait exécuter une boucle à quatre boucles pour pouvoir le parcourir. Donc, ce que nous voulons faire, c'est en faire quatre et généralement, nous allons utiliser quatre touches dans mon dictionnaire. À ce stade, nous allons obtenir les touches 1 et 2. C'est ce que nous allons parcourir en boucle. Et si nous l' imprimons simplement, imprimez P. Vous pouvez voir que nous allons nous faire imprimer les touches 1 et 2. Maintenant, si nous voulons aller encore plus loin, nous pouvons rechercher de la valeur, disons que dans Key, nous pouvons imprimer la valeur et voir ce que nous obtenons en approfondissant deux couches. Oh, on y va. C'est mon erreur. Mon dictionnaire et mon entourage portent les mêmes bretelles bouclées . Nous y voilà. C'est ce que nous voulons faire, et nous imprimerons la valeur de cette façon. Et nous y voilà. Nous voyons donc la clé un, le nom, la santé et la clé deux. Maintenant, dans cette situation, puisque nous avons une chaîne ici, tous les caractères étaient imprimés individuellement, comme vous le voyez ici avec le fait qu'elle est verticale. Et les caractères incluent des espaces. C'est tout ce que nous avons là. Comme vous le voyez, nous avons cherché la clé et le dictionnaire pour obtenir la clé 1. Ensuite, ce que nous faisons ici, nous parcourons la valeur en boucle, nous imprimons toutes ces lettres individuellement, puis nous imprimons le nom de la clé. C'est pourquoi nous avons ceci, puis le point clé. Ensuite, nous passons à la touche deux, et nous imprimons la suivante. Donc nom et santé, puis nous imprimons sur la touche deux. Vous pouvez donc voir comment nous parcourons ces dictionnaires en boucle et vous pouvez aller plus loin ou parcourir un ensemble spécifique de dictionnaires Vous pouvez donc voir comment nous parcourons ces dictionnaires en boucle ces dictionnaires C'est bon. C'est donc peu près tout ce que vous devez savoir pour utiliser et accéder aux éléments de votre dictionnaire. Donc ça va faire l'affaire pour ici. Ensuite, nous allons voir comment obtenir les commentaires de l'utilisateur, et nous allons passer à d'autres boucles. 16. Obtenir des entrées: Très bien, il a donc été porté à mon attention qu' apparemment, les entrées sont absentes de la partie linguistique Nous allons donc aller de l'avant et je vais vous montrer comment le faire très rapidement. Je vais juste créer une interface utilisateur. Je vais juste cliquer sur Control pour ma nouvelle scène. Je vais continuer et le renommer. Je vais l'appeler. Allons faire un test de saisie. Je vais l'enregistrer avec Controls, input test point TSN. C'est très bien Et je vais y ajouter un script. Génial. Et je vais simplement fermer toutes les autres sections dont nous n'avons pas besoin pour cela, n'est-ce pas ? Donc, dans mon cas, j'étend un contrôle, mais dans votre cas, peut s'agir d'étendre un corps de personnage deux D lorsqu'il s'agit de créer joueurs pour des jeux ou quoi que ce soit d'autre, peu importe ce que cela étend, car vous pouvez ajouter ou recevoir des informations de pratiquement n'importe quel type de nœud. C'est vrai. Maintenant, ce que je vais faire Oui, nous allons juste utiliser l'impression pour le confirmer. Il existe donc plusieurs façons d'obtenir des informations. Et l'une des principales façons dont vous verrez beaucoup de monde le faire est de suivre un processus de soulignement funk, ou de suivre un processus de physique funk Il s'agit de deux points différents du cadre. Le processus physique est l'endroit où vous devez placer tout ce qui est lié à la physique. Donc quelque chose comme déplacer votre joueur. Comme vous allez probablement devoir faire face à des choses comme les collisions et à d'autres problèmes basés sur la physique, vous devriez probablement le faire dans le cadre d'un processus physique. Et c'est probablement dans ce processus que beaucoup d'autres éléments de vos projets seront abordés, mais vous devez généralement essayer de garder les choses aussi claires que possible. Maintenant, une autre situation que vous pourriez voir utilisée sera une autre fonction appelée input. Et une entrée non gérée, et notre dernière est une saisie clé non gérée Maintenant, il y a quelques petits changements dans façon dont ils sont gérés et voyez si je maintenais simplement ma souris ici Selon la version de Gudo que vous avez, vous pouvez le voir ou non Si vous ne voyez pas les fenêtres contextuelles et votre version, vous devriez pouvoir simplement maintenir la touche Ctrl enfoncée et cliquer sur la fonction pour obtenir les mêmes informations. Vous découvrirez ici certaines de ces différences avec la saisie clé non gérée, saisie non gérée, etc. Mais les trois derniers sont spécifiquement destinés à la saisie. Et puis c'est ici que vous allez avoir des choses plus continues comme maintenir le doigt enfoncé pour vous déplacer, par exemple. D'accord ? Je vais donc me débarrasser de ceux qui ne sont pas manipulés. Nous n'en aurons pas besoin pour cela. Je voulais juste vous les signaler pour montrer que c'est une option à utiliser ici. Je vais me débarrasser du Est-ce que je veux me débarrasser de ça ? Non Je vais garder cela dans mon exemple. Et je vais me débarrasser des processus physiques simplement parce que je ne vais pas déplacer de personnages ou faire quoi que ce soit basé sur la physique. Et je vais vous montrer ici. Le moyen le plus simple pour nous de faire certaines entrées est d'utiliser if input, et cette classe d'entrée contient toutes les entrées disponibles, qu'elles soient intégrées ou que vous ajoutez à la carte d'entrée. Nous allons donc dire que je saisis un point. Nous pouvons dire « moi » et vous pouvez le voir ici, tout ce que vous pressez est similaire à la façon dont vous accéderiez à un menu principal et diriez « appuyez sur n'importe quel bouton ». Donc, si vous appuyez sur n'importe quel bouton, cela va se déclencher. part un menu principal, je ne sais pas où vous pourriez l'intégrer, mais si vous en avez besoin, est-ce que quelque chose de pressé est là pour vous ? Et nous allons aller de l'avant et le tester. Nous disons donc que je saisis tout ce qui est pressé et tabulé dedans, nous dirons imprimer quelque chose si nous pouvons l'épeler, orthographe est parfois difficile, quelque chose pressé, et je vais aller de l'avant et appuyer sur Exécuter la scène actuelle Vous voyez, pendant que nous sommes assis ici, prenez juste une seconde pour courir. Ça y est. Si j'appuie sur n'importe quel bouton de mon clavier, je vais appuyer sur J, appuyer sur quelque chose et cela se déclenche cinq fois exactement là où il se trouve dans le processus. Si j'appuie sur L, c'est parti. Nous pouvons constater que ces chiffres augmentent. Si je me débarrasse de la pile, tu peux voir que chaque fois que j'appuie sur des boutons, tu peux voir notre numéro dans le coin. Remplissage, non ? Donc, le simple fait de cliquer dessus, parce que c'est une entrée, c'est quelque chose. Clic gauche, clic droit , l'un de ces boutons du clavier, non ? Travaillez toujours. Toutes ces choses se déclenchent parce que tout peut se déclencher. C'est tout ce qui est pressé. Quelles sont les autres options qui s'offrent à nous ? Nous l'avons, et nous avons l' action qui vient d'être pressée, l'action qui vient d'être publiée, l'action pressée. Et puis nous avons un peu de joie. Donc, ces joybutton, bien sûr, seront vos manettes, n'est-ce pas ? Il va donc vous demander un appareil, puis il vous demandera un bouton de joie. Maintenant, je n'ai pas de connecteur pour manette, mais vous pouvez faire quelque chose de spécifique pour les manettes, ce quelque chose de spécifique pour les manettes, qui n'est pas ce que nous allons faire ici, mais c'est quelque chose à souligner pour nous, tout comme nous avons une étiquette, une pression sur une touche, la touche physique, le bouton de la souris Vous pouvez donc voir que vous avez tout un tas de choses que vous pouvez faire ici Alors allons-y avec le plus facile, le plus simple. Disons, désolé, prenons juste un verre. OK. Donc, si l'entrée est une action, il suffit d'appuyer. Maintenant, il est évident que vous n' en aurez pas beaucoup. Vous allez probablement voir beaucoup de ces boutons d'interface utilisateur ici. Certaines de ces interfaces sauf je crois que c'est la touche Entrée par défaut. Et vous voyez, nous sommes en train de passer à une série d'actions. Oui, donc nous allons y mettre ça. Et maintenant, vous verrez quand je l'exécuterai, gardez à l'esprit qu'il s' agit d'une action pressée. Donc, si j'appuie sur le bouton, je le tiens enfoncé , il n'est enfoncé qu'une seule fois, est-ce pas ? Il n' apparaît qu'une seule fois. Pas de problème Et je lâche prise, rien ne se passe. Maintenant, nous pouvons configurer un autre système, donc nous pouvons dire que si le point de saisie est une action, nous pouvons dire une libération. Nous allons utiliser le même bouton ici. J'accepte, et nous allons procéder à l' impression et nous allons dire quelque chose de publié. Nous avons appuyé et nous venons de relâcher, et nous utilisons la touche Entrée pour les deux. Donc, si j'appuie sur ce bouton, cela indique que quelque chose a été pressé. Si je le laisse enfoncé, rien ne se passe. Et dès que j'ai retiré la clé, quelque chose s'est détaché. Donc, selon ce que vous faites, vous voudrez peut-être que quelque chose se passe sous presse ou que quelque chose se passe lors de la publication. Maintenant, il existe une autre option que vous avez vue là-bas. Ce sera le cas si l' entrée est une pression d'action, donc pas simplement une pression, mais une pression. Et je dirais que j'accepte. Génial. Nous pouvons donc voir la différence ici. Imprimer. C'est ce qui va se déclencher lorsque quelque chose est maintenu enfoncé. Donc, quelque chose a tenu. Donc vous allez voir, je vais appuyer dessus. Nous allons voir nos articles pressés. Je vais le maintenir enfoncé pendant un moment Nous allons donc voir un spam dans cette console de sortie contenant quelque chose de maintenu enfoncé, de quelque chose de bloqué. Et puis, quand je sortirai, nous verrons quelque chose sortir. Hein ? Je l'ai fait juste pendant un moment là-bas. C'est moi qui l'ai trouvé. Nous pouvons voir quelque chose pressé, puis quelque chose maintenu pendant tout ce temps. Et puis quelque chose s'est relâché quand j'ai relâché le bouton. Ils voient que vous avez trois situations différentes que vous pouvez utiliser ici. Et selon le type de système que vous utilisez, type d'entrées que vous effectuez, vous pouvez utiliser n'importe lequel d'entre eux à vos fins. Maintenant, j'ai mentionné que nous avions également touche « key say is key press ». Et puis cela va prendre un code clé. Donc, dans notre cas, ce que nous faisions maintenant sera la touche Entrée, à droite. Et nous allons simplement imprimer Entrée, appuyer sur. Et nous l'exécutons, nous le maintenons enfoncé et nous pouvons voir que nous l'obtenons. Nous ne sommes donc pas simplement pressés et relâchés lorsqu'il s'agit de touches. Alors, gardez cela à l'esprit. Maintenant, si vous voulez configurer vos propres actions ici, je vais simplement le sauvegarder. Plus. Allons-y. Comme je l' accepte, comme nous l'avons fait ici. Nous allons le faire dans la partie jeu. Mais il vous suffit de passer aux paramètres du projet, accéder à la carte d'entrée, puis d' ajouter une nouvelle action, vous assurant que vous êtes dans la bonne case ici. Je vais dire que nous allons procéder et appeler cette action test. Cliquez sur le bouton Ajouter. Maintenant, si je fais défiler l'écran jusqu' en bas, je peux appuyer sur cette icône plus, et je peux mettre le bouton que je veux. Disons que j'appuie sur le bouton K, non ? J'ai cliqué sur OK. Et je peux venir ici et je peux dire : si j'agis, il suffit d'appuyer, tester l'action. Maintenant c'est moi qui le gère. Maintenant, si j'appuie sur le bouton K, on a appuyé sur quelque chose qui se déclenche. donc aussi simple que cela d'ajouter de nouvelles entrées est donc aussi simple que cela d'ajouter de nouvelles entrées à votre projet. Et il y a quelques autres points que vous pourriez aborder. allons donc avoir ou ils vont avoir plus de détails tels que des mots d'action, des choses comme Action Strength. est donc grâce à la force d'action que nous allons obtenir des chiffres réels. Donc, entrez, obtenez de la force d'action. Et si nous y jetions un coup d'œil, nous verrons si nous allons recevoir des coups Nous allons récupérer un chiffre de 0-1. Et c'est à quel point ou avec quelle force un bouton est maintenu enfoncé. Donc, sur un clavier, c'est en gros zéro ou un, non ? Soit c'est de la presse, soit ce n'est pas le cas. Cependant, si vous utilisez des manettes, c'est là que vous pouvez créer des choses, par exemple maintenir un bouton enfoncé à mi-hauteur pour viser et appuyer dessus à fond pour tirer. Par exemple, il y avait pas mal de vieux jeux équipés de ce type de système. Metal Gear Solid avait l'endroit où vous pouviez appuyer, je crois que c'était le bouton carré dans les anciens jeux. Vous appuieriez pour viser, puis vous appuieriez dessus à fond ou relâcheriez pour effectuer le tir. Et obtenir de la force d'action est la façon dont nous y parviendrions réellement. D'accord, il y a donc beaucoup d'options que vous pouvez utiliser pour obtenir des informations, mais je vous ai montré les principales pour y faire face Et j'ai toujours configuré la saisie ici, et c'est parce que l'événement d'entrée d'événement est n'importe quoi. Cela peut être un clic de souris ou un clic de clavier. Il peut s'agir simplement de déplacer la souris sur l'écran, car le mouvement de la souris est un événement d'entrée, n'est-ce pas ? Donc, si je me contentais d'imprimer l'événement, ici. Et tu y jettes un œil. voyez, alors que je déplace ceci, vous pouvez voir que le mouvement de la souris entraîne beaucoup de choses. La position relative, vous avez stylo, une pression et des inclinaisons, ou si vous voulez soutenir une tablette Tu as compris. Vous avez obtenu la vélocité, c'est-à-dire la vitesse à laquelle la souris se déplace. D'accord. Montrez-moi l'index des boutons. Donc, le clic gauche sera l'index 1, le clic droit l'index deux. Donc, si vous voulez utiliser quelque chose comme la saisie, vous devrez l'affiner. Ainsi, par exemple, nous ferions quelque chose comme VR disons que l'événement est un événement d'entrée. Nous pouvons donc dire touche si vous vouliez que ce soit un clavier, boutons JoyPad. Si vous vouliez que ce soit un bouton, une action événementielle, une souris, un bouton de souris, mouvement de souris, un glissement d'écran, un écran tactile. Ce sont des éléments que vous utiliseriez pour créer un bouton d'écran tactile, par exemple. Evénement d'entrée, raccourci. Vous avez donc toutes ces choses ici, mais disons simplement un événement d'entrée. Allons-y Clé d'événement d'entrée. Et puis nous pouvons dire que ar EV est égal à l'événement en tant que clé d'événement d'entrée. Et allons-y, imprimons EV, voyons ce que nous obtenons à partir d'ici. Nous voyons qu'il ne se passe rien ici. Et dès que j'appuie sur un bouton du clavier, nous pouvons voir que nous avons des boutons , n' est-ce pas ? Nous recevons des codes clés Nous recevons les mods, qu' ils soient physiques, de localisation, qu' ils soient enfoncés ou non, et bien sûr, d' écho, lequel sera vrai si le bouton est maintenu enfoncé Nous avons donc maintenant ces clés d'événement de saisie. C'est bon. Alors maintenant, nous pouvons continuer et nous pouvons dire « I EV press », non ? Donc, si vous appuyez sur le bouton , nous pouvons utiliser le mot ici ou vous pouvez utiliser deux esperluettes et simplement améliorer Nous vérifions donc que les deux conditions trouvées et le code EVP égaux à P ED, dans mon cas Et je peux continuer et imprimer quelque chose comme D, E, presser. Maintenant, si j'avais un autre bouton sur le clavier, rien ne se passerait, mais dès que j'appuierai sur la touche D, nous recevons un accusé Maintenant, si vous le voulez vraiment, vous pouvez simplement entrer ici et, dans votre saisie, dire « I input action press », « Film ». Tu peux faire tout ça ici. Mais lorsque nous recevons un événement, vous pouvez tout aussi bien l'utiliser, et c'est le genre de situations que vous pouvez faire maintenant, si vous souhaitez également utiliser l'événement, ainsi que l'action ici. C'est bon. Nous pouvons dire si l'événement est la clé d'entrée, si nous le voulons, et si l'événement est une action pressée, et maintenant nous pouvons continuer et choisir quelque chose que nous avons testé. Je ne me souviens pas vraiment de ce qu'était l'action de test. Je ne vais pas m'en douter. Mais je dirais Action Press. Je ne me souviens pas de ce que c'était. Je pense que c'était le KK. J'espère avoir raison. J'appuie dessus, et nous voyons Action Press. D'accord. Alors, on y va. Cela fonctionne donc pour nous. Très bien, donc j' espère que cela vous donne une assez bonne idée de la façon dont nous pouvons obtenir l'avis du joueur. Il existe d'autres petits moyens. Par exemple, si nous avions une zone de texte à l'écran, nous pourrions en extraire la propriété de texte. Et je crois que si je me souviens bien, est ce que nous verrons dans notre premier projet. Très bien, j'espère que cela dissipera toute confusion , et j'espère que vous pourrez comprendre certaines des manières dont nous pouvons obtenir l'avis du joueur 17. Boucles du temps 17: Très bien, jetons un coup d' œil à While Loops. Nous avons déjà utilisé une boucle à quatre boucles par le passé, et nous avons maintenant un deuxième type de boucle. Et une boucle à quatre, comme vous vous en souvenez, nous allons parcourir un ensemble d' éléments qui se trouvent dans un autre élément, que ce soit dans une plage de nombres ou dans une liste. Une boucle de Wile est quelque chose qui va tourner en boucle indéfiniment tant qu'une certaine condition est vraie Alors allons-y et voyons comment nous pouvons utiliser une boucle Wile Dans ce cas, nous allons l'utiliser pour compter. Très bien, alors allons-y et créons Je vais enregistrer MyNum, définissons-le à zéro par défaut Et nous allons dire que Wile BiNum est inférieur ou égal à cinq Nous allons juste imprimer MyNum. Et à ce stade, si nous essayons cela, notre boucle va se bloquer et tout le programme va se bloquer. Nous allons rester bloqués sur l'écran de démarrage. Et comme vous pouvez le voir dans la console de sortie située en bas, il passe simplement à zéro spam parce que c'est tout ce qu'il sait faire. Et en fait, ça ne va même pas se fermer, donc je dois appuyer sur le bouton d' arrêt en haut. Donc, avec une boucle, il est dangereux de s'y retrouver coincé Vous devez avoir un moyen de sortir à tout moment. Si aucune sortie n'est codée, vous allez tomber en panne. Maintenant, il existe de nombreuses façons d' effectuer une sortie, et dans ce cas, nous vérifions si M NUM est inférieur ou égal à cinq Le moyen le plus simple de résoudre ce problème serait donc créer cette déclaration pour qu'elle devienne fausse. Maintenant, nous pouvons le faire en réglant simplement que M NUM est maintenant égal à six, ce qui le cassera. Nous n'allons pas compter , mais ça va se casser. Cela va sortir de la boucle. Mais ce que nous préférons puisque nous utilisons une boucle sauvage, nous pouvons supposer que nous voulons compter jusqu'à zéro . Nous allons donc simplement appeler MyNum, disons que plus est égal à un Maintenant, c'est exactement la même chose que de dire que M NUM est égal à MyNum plus un C'est juste une façon plus courte de l'écrire en faisant plus égal à un. Donc maintenant, si nous l' exécutons, nous allons le voir compter à partir de zéro, un, deux, trois, quatre , cinq, puis une fois que nous aurons atteint six, cela ne correspondra plus à notre condition. Cela va donc faire en sorte que notre condition redevienne fausse, et nous allons sortir de cette boucle. C'est donc un moyen assez solide de le surmonter. Cependant, ce n'est pas le seul moyen de percer. Comme vous l'avez vu, alors que nous n'avions qu'un numéro d'impression, nous avons provoqué le crash. Mais ce que nous pouvons faire, c'est utiliser ici un mot clé appelé frein. Et cela rompra la boucle, quoi qu'il arrive, que la condition soit vraie ou fausse, elle va simplement sortir de cette boucle, comme vous le voyez ici. Même si zéro est définitivement inférieur à cinq , l'utilisation de ce mot-clé nous permet de sortir de cette boucle, que la condition soit vraie ou fausse. Maintenant, nous pouvons utiliser des boucles while avec des éléments tels que des dictionnaires, une liste et une liste Nous allons donc y jeter un œil. Nous dirons donc les nouveaux utilisateurs de Wile. Tout cela signifie que tant qu' il y a des utilisateurs dans cette liste et qu'elle n'est pas vide, elle sera renvoyée comme vraie. Et une fois que la liste est vide, elle renvoie la valeur false. Donc, ce que nous allons faire dans cette boucle, c'est dire que notre utilisateur actuel est égal à nos nouveaux utilisateurs point POP et que nous pouvons apparaître en avant. Et nous allons simplement y imprimer. vérifiant l'utilisateur, nous pouvons faire En vérifiant l'utilisateur, nous pouvons faire notre pourcentage S et simplement transmettre notre utilisateur actuel. C'est bon. Alors maintenant, si nous allons de l'avant et que nous exécutons cela, nous pouvons voir que nous allons réussir. Et une fois que tout est sorti ou que vous avez fait apparaître tous les noms, c'est faux et nous sortons de cette boucle Et comme vous pouvez le voir dans le résultat, nous imprimons cette déclaration pour chaque utilisateur que nous avons repéré. Maintenant, si vous voulez supprimer des éléments d'une boucle, nous pouvons certainement le faire de manière très simple. Et, bien sûr, cela ne compte pas seulement pour enlever des objets, mais nous allons regarder nos animaux là-bas, et nous pouvons voir que nous y avons des lézards à trois reprises Donc, ce que nous pouvons faire pour une autre vérification des déclarations, c'est dire, s'il s'agit d'un lézard, et voilà s'il s'agit d'un lézard, Ou un lézard sauvage chez les animaux. Donc, tant que le lézard l' une des clés des animaux, il sera l' une des clés des animaux, il continuera à courir Si vous vous souvenez de ce que j'ai dit plus tôt ou plus tôt lorsque nous examinions des listes, j'ai dit : si vous vouliez vous débarrasser de plusieurs éléments qui étaient, disons, des doublons, vous devriez appeler pour les supprimer ou les effacer constamment, encore et encore , jusqu'à ce qu'ils disparaissent tous Eh bien, maintenant que nous connaissons Woloops, nous pouvons simplement vérifier si le lézard se trouve à l'intérieur Et bien qu'il y ait un lézard chez les animaux, nous allons procéder à son élimination C'est si simple, nous allons simplement appeler Animals Dot. Retirez-le, ne le retirez pas. Ce que tu appelles effacer Lezard. Vous voyez, nous allons ensuite imprimer des animaux. Chaque fois que nous le retirons et que nous y jetons un coup d'œil. Et nous voyons que nous avons deux lézards maintenant. Nous avons commencé avec trois. Ensuite, nous ajoutons un lézard, puis nous n'avons plus de lézards Vous pouvez donc voir que c' est un moyen simple de parcourir une boucle et de supprimer tous les doublons Très bien, cela expliquera ce que sont les boucles wile et comment nous pouvons les utiliser dans différents scénarios 18. 18 Fonctions et arguments: Allons-y et passons aux fonctions. Maintenant, les fonctions, nous en avons déjà vu et utilisé deux. Nous avons utilisé le processus et prêts tout au long du cours jusqu'à présent. Mais vous pouvez créer complètement vos propres fonctions. Et à titre d'exemple, nous pouvons en avoir un qui ressemblerait à ce que vous voyez ici. Nous pourrions donc avoir un message d'accueil qui vous souhaite la bienvenue dans tout ce que nous faisons, n'est-ce pas ? Des livres, si on peut l'épeler correctement. Maintenant, vous remarquerez quelque chose en commun avec tout cela. Maintenant, en regardant tout cela, vous verrez quelques similitudes, et vous verrez que c'est la structure de base que nous avons utilisée pendant tout ce temps, et qu'elle constitue la structure de base de toute fonction que vous allez écrire. Sur la première ligne, nous commençons par le mot clé Bunk FNC, qui indique à GDScript que nous voulons définir ou créer une fonction Et ceci est suivi un autre mot ou d'une série de mots, mais nous ne pouvons pas y avoir d'espaces. qui est alors précédé d'une paire de parenthèses, ce qui crée une fonction Bien sûr, nous devons le terminer par puis passer à la ligne suivante et taper sur l'une d'elles. Maintenant, à partir de cette deuxième ligne, c'est le morceau de code que nous voulons écrire ou exécuter dans notre fonction, et bien sûr, nous n' exécuterons qu'à l'intérieur de notre fonction. Donc, si nous devions le gérer maintenant , rien ne se passerait. Mais ce que nous pouvons faire, c'est passer à la version prête pour que, lorsque ce script sera chargé, nous puissions réellement appeler la fonction que nous venons de créer en tant que message d'accueil . Et cela signifie que cette fonction se déclenchera chaque fois que Ready sera déclenchée. Ainsi, même si nous n'avons pas à tout écrire dans la fonction prête, nous pouvons tout organiser en fonctions individuelles distinctes et les appeler. Cela aidera à garder notre code plus propre et plus beau à regarder. Et le nom de votre fonction doit suivre les mêmes modèles, je suppose que vous devriez le dire en tant que variables. Ainsi, par exemple, j'ai expliqué comment vos variables devraient être de préférence plus courtes, bien définies et je vous exactement quelle donnée elles contiennent. Eh bien, une fonction devrait également faire exactement cela. Une fonction doit contenir ou vous indiquer exactement ce qui se passe à l'intérieur de la fonction simplement en lisant son nom. Et non seulement cela, mais une fonction ne doit faire qu'une chose et une seule. Cette fonction ne devrait pas faire quatre choses différentes en son sein. Maintenant, nous avons examiné ou utilisé certaines de ces fonctions qui ont pris des arguments ou des paramètres. Certains d'entre eux, comme le supprimer et l'effacer lorsque nous devons ajouter une autre information. Eh bien, nous pouvons également le faire avec nos fonctions. Supposons donc que nous voulions créer un programme qui accueille quelqu'un. Nous l'avons déjà fait. Nous avons atteint nos pourcentages. C'est ce que nous avons mis. Mais au lieu de créer une variable en haut, nous allons en créer une juste entre parenthèses de fonctions Maintenant, nous pouvons simplement laisser choses comme ça et cela prendra n'importe quel type de données, mais nous pouvons également déclarer de quel type de données il doit s'agir. Nous pouvons même aller plus loin et nous pourrions le dire ou le déclarer, ainsi que lui donner un paramètre par défaut. Maintenant, lorsqu'un élément possède un paramètre par défaut, cela signifie qu'il est facultatif. Nous n'avons pas besoin d'entrer d'argument lorsque nous appelons la fonction ici et qu'elle est prête. Nous n'avons rien à saisir ici, et si nous ne saisissons rien, le paramètre par défaut est celui qui lui sera attribué. Cependant, si nous tapons quelque chose ici, il va le remplacer Allons-y et donnons-lui la valeur par défaut de Bob. Et nous pouvons aller de l'avant et ajouter un pourcentage d'utilisateurs. D'ici, nous savons ce qu'il faut remplir. Et vous verrez si nous nous contentons d'appeler le message d'accueil et ne rien mettre dedans, nous recevrons Welcome Bob. Mais si nous allons de l'avant et que nous tapons quelque chose ici, allons-y avec Jim. Et nous le saisissons. Vous voyez, nous sommes les bienvenus Jim Jim entre ensuite et remplace la valeur par défaut prédéfinie de Bob Maintenant, que se passe-t-il si nous essayons de mettre quelque chose qui est pas pertinent ? Mettons-le donc à zéro. Ce que nous examinons, EC, nous obtenons immédiatement une erreur, qui nous indique que cela doit être une chaîne, pas un int. Et c'est l'avantage que vous allez obtenir en déclarant le type de variable qu'il doit s'agir. Si nous ne l'avions pas et que nous avions juste dit « Hey, l'utilisateur est égal à Bob », nous pourrions maintenant le remplacer Et nous disons « bienvenue zéro », ce qui n'a aucun sens Lorsque vous avez besoin de données spécifiques pour votre fonction, vous aurez probablement également besoin qu'elles soient d'un type spécifique. Donc, tout comme pour les variables, il serait judicieux que vous renseigniez exactement quel type d' informations ou que vous déclariez le type de vos arguments. Même si vous ne voulez pas définir de valeur par défaut, il convient également de noter que nous pouvons avoir plusieurs arguments ici, et c'est là que les positions commencent à avoir de l'importance. Nous l'avons donc déjà fait auparavant lorsque nous avions un inducteur ou un nom et un poste Donc, si nous faisons une virgule ici pour le séparer, nous pourrions y mettre un job, et nous mettions simplement une chaîne Et encore une fois, nous pouvons continuer et nous pouvons les appeler dans n'importe quel ordre lorsqu' il s'agit de les remplir dans notre impression, comme s'il s' agissait de variables normales, et vous remarquez probablement cette erreur ici Maintenant, d'un point de vue fonctionnel, il n'y a rien de mal à ce code Mais ce que cela vous indique est quelque chose que vous devez garder à l'esprit, savoir que tout ce qui a un paramètre par défaut doit être placé à la fin, car tous les paramètres facultatifs doivent être à la fin de votre liste d'arguments. C'est exactement comme ça dans le script GD. Vous devez donc mettre tous les éléments obligatoires en premier, puis ceux qui sont facultatifs à la fin Donc, vous voyez, nous n'avons fait que changer de tâche et d'utilisateur, et maintenant nous n' avons aucune erreur, même si c'est la même chose sur le plan fonctionnel Très bien, c'est ce que nous allons faire pour notre introduction rapide ici aux fonctions et aux arguments, également appelés paramètres notre introduction rapide ici aux fonctions et aux arguments, également appelés paramètres , à renseigner et à vous montrer nos valeurs par défaut ou comment attribuer des valeurs par défaut et l'ordre dans vous montrer nos valeurs par défaut ou comment attribuer lequel toutes ces choses doivent être 19. Alias de fonction 19: Très bien, alors rassemblons tout ce que nous sommes en train de faire pour le moment Allons-y et je vais ouvrir l'entrée que nous avons faite auparavant en double-cliquant simplement sur le script hors de mon système de fichiers. Et je vais aller de l'avant et préparer tout ce que j'avais ici. Et on pourrait le préparer. Mais ce que nous allons faire à la place, c'est intégrer tout cela dans une toute nouvelle fonction que nous allons créer. Et je vais appeler le mien Process text. Traitez le texte. On y va en bas, et on y va. Et nous pouvons simplement dire «   passez à l'intérieur de notre boîte ». Très bien, nous avons maintenant notre fonction dans le texte du processus. Et ce que je vais faire, en fait, je m'excuse. Nous n'allons pas faire ça là-bas. Cela sera prêt à l'emploi. Le traitement du texte va en fait être effectué à une étape séparée, et cela va prendre un argument que nous pouvons appeler nouveau texte, et nous lui attribuerons un paramètre par défaut égal à zéro. C'est bon. Maintenant, je vais juste les surligner, maintenir la touche Alt enfoncée et utiliser la flèche vers le haut pour les déplacer vers le haut. Bien, donc dans le texte du processus, nous allons prendre ce texte tel qu'il a été introduit, et nous pouvons le vérifier, de la même manière et nous pouvons le vérifier que nous l'avons fait ici dans le processus ici Je vais donc simplement copier ce que nous avions dans l'entrée, le déplacer ici dans le texte de notre processus. Prenez-les et tirez-les vers l'arrière en maintenant la touche Shift enfoncée et en appuyant sur la touche Tab. Maintenant, ce que nous allons faire, c'est rester aussi rapide que possible, mais je vais le remplacer par Q. Donc, si mon texte est égal à Q, nous n'avons pas du tout besoin de récupérer le champ de texte, car nous allons utiliser notre nouvelle propriété de texte. Nous allons donc maintenant transmettre un morceau de texte à notre fonction de traitement de texte. Et nous allons vérifier si le nouveau texte est Q, puis nous allons appeler Quit comme nous l' avons fait dans notre saisie, et nous allons créer une variable appelée My Name s'il n'y en a pas. Et nous allons l' attribuer au nouveau texte que nous passons dans cet argument ou que nous transmettons cette fonction en tant qu'argument. Ensuite, nous pouvons le remplir à nouveau, comme nous l'avons fait avec notre saisie. Je ne fais rien d'extraordinaire ici. Passons à Nous avons besoin de notre contribution. Passons donc à notre processus, et nous allons faire notre instruction if, donc nous dirons si l'entrée est de l'actine et nous allons passer à la publication Et nous opterons pour le Enter. Maintenant, si vous dites maintenant, si vous n'avez aucune action ici, vous pouvez utiliser l'interface utilisateur sauf, je crois, que c'est l'interface par défaut car il s'agit soit d'un espace, soit d'une touche Entrée, soit d'une touche Entrée. Mais si vous n'en avez pas créé un auparavant dans la section de saisie, rendez-vous simplement dans le projet et les paramètres du projet, allez dans l'onglet de la carte de saisie en haut, ajoutez une nouvelle action appelée Mind Enter. Et puis à côté de cette action, une fois que vous l' avez ajoutée, vous verrez un bouton plus. Vous pouvez appuyer dessus et sélectionner la touche ou le bouton de votre choix. Donc, tout ce que nous allons faire ici, lorsque nous libérerons l'entropie, c'est simplement appeler le texte de notre processus, et nous pouvons réellement transmettre ce champ de texte que nous avions Allons-y, saisissons ce champ de texte et saisissons la propriété de texte de. Maintenant, vous verrez qu'une fois arrivés ici, nous pourrons taper ce que nous voulons. Et il se remplit exactement comme nous l'avons fait précédemment dans la section de saisie. Tout cela fonctionne donc de la même manière et fondamentalement, c'est pareil. Mais comme vous pouvez le voir, lorsque nous écrivons ceci, c'est tout ce dont nous avons besoin pour le moment. La touche I est enfoncée, lancez cette fonction. C'est beaucoup plus court, c'est beaucoup plus propre et plus beau à regarder Et surtout, nous pouvons utiliser cette fonction partout où nous en avons besoin, de sorte que nous n'avons pas à écrire le même code encore et encore. Maintenant, si vous avez un long morceau de code, ou, malheureusement, pas un long bout de code, un long nom de fonction pour lequel vous ne pouvez pas trouver de meilleur nom, nous pouvons réellement créer un alias pour ce nom. Maintenant, un pseudonyme, c'est un peu comme un substitut, non ? Nous pouvons donc prendre ce nom court, et il représentera cette fonction. Il va donc représenter ce nom long, peu comme le fait une variable. Nous avons un nom court représente cette grande quantité de données. Il s'agira donc d' un nom de variable qui représentera une fonction entière. Très bien, alors allons-y et ici, en haut de notre script, nous pouvons créer une variable Je vais appeler cet alias. Et ce que vous allez définir comme égal à, c'est que nous pouvons simplement lui attribuer le nom de notre fonction. Très bien, procédez comme ça, et ça marchera. Donc, si nous venons ici et que nous appuyons sur Entrée, nous pouvons continuer et faire un point d'alias, Paul, et puis entre ces parenthèses se trouve ce que nous voulons transmettre Il s'agirait donc de notre champ texte et de sa propriété de texte. Vous verrez si nous allons de l'avant et le gérons. Boum, tout fonctionne exactement comme avant. C'est juste un peu plus court et nous utilisons un alias. Maintenant, si vous souhaitez peut-être créer un alias pour une fonction qui se trouve dans un script différent sur une note complètement différente, l'alternative sera similaire à cela. Je vais donc aussi créer un alias, appelé appelable Et un appelable est une fonction psychopathe, non ? Donc, la seule différence est lorsque nous le créons en tant qu'appelable, nous devons en fait y ajouter deux arguments La première étant donc l' endroit où se trouve la fonction. Donc, dans ce cas, c'est sur le même script que les ventes. Nous pouvons donc dire « soi ». Cependant, si cela se trouvait dans, disons, notre champ de texte en dollars, alors nous utiliserions notre champ de texte en dollars, cel. Mais comme il s'agit du même script, nous pouvons taper self, puis il prend un deuxième argument, qui, comme vous le voyez, est un nom de méthode ou de fonction sous la forme d'une chaîne. Nous allions donc procéder et le taper comme ça. Maintenant, vous pouvez voir que nous pouvons faire exactement la même chose que nous avons fait pour alias to.com et transmettre notre art. Voilà. Ce ne sont donc que deux manières de créer un alias pour une fonction. 20. 20 cours: Qu'est-ce que la classe et comment en créer une ? Nous avons donc déjà utilisé des cours. Nous ne les avons tout simplement pas appelés cours. Nous les avons appelés objets. Et l'édition de ligne ici, c'est une classe, et toutes les classes existantes sont sous forme de nœuds ici. Vous pouvez donc parcourir et jeter un œil à toutes les différentes classes. Et il y a même des classes qui ne figurent pas dans cette liste, comme JSON, à laquelle nous reviendrons lorsque nous verrons comment enregistrer et charger différents types de fichiers. Mais c'est ce que nous faisons, non ? Vous appelez une classe et vous appelez new pour créer une nouvelle instance de la classe en question. Maintenant, dans le cas d'une modification de ligne, nous avons quelque chose de graphique, mais dans le cas de quelque chose comme JSON, où nous n'avons rien de graphique, mais nous avons des éléments que nous pouvons utiliser. Et nous verrons cela dans notre prochaine section, nous passerons également en revue les expressions régulières. Alors allons-y et donnons-nous une idée de la façon dont cela fonctionne. Allons-y et nous allons créer notre propre classe. Je vais juste cliquer avec le bouton droit sur mon système de fichiers cette fois et sélectionner Nouveau script. Nous allons hériter de dans ce cas, oui, nous pouvons hériter de node. C'est très bien Et je vais l'appeler mon cours de PET et me lancer gratuitement. Maintenant, je vais le trouver et double-cliquer dessus pour que nous puissions l'ouvrir. Et je vais tout supprimer à l'exception de nos extensions en haut. Maintenant, pour créer une nouvelle classe, nous n'avons en fait pas besoin de tout ce que nous avions auparavant. Ce que nous allons faire, c'est taper nom du trait de soulignement de la classe avec un espace, et nous pouvons mettre le nom que nous voulons pour cette classe Donc, pour rester dans le nom du script, je vais l'appeler PET et ce sera notre classe PET. Vous allez maintenant ajouter un deuxième argument ici sous forme de chaîne, et ce serait un chemin vers une image à l'intérieur de votre projet. Une icône, et cette icône apparaîtra réellement ici, même manière que le contrôle a un petit cercle ici, un cercle vert. Votre fonction remplacera cette icône. C'est bon. Donc, dans Pet, ce que nous allons faire, c'est créer des variables ici, n'est-ce pas ? Donc, le nom de Savar, c'est vrai. Et ce sera égal à une chaîne vide. Nous connaîtrons l'âge de notre animal de compagnie. Ensuite, il sera simplement mis à zéro par défaut, et nous pouvons avoir le type, qui sera défini sur une chaîne. Maintenant, comme ce sera sa propre classe, ce serait bien si nous avions des moyens de changer certaines choses. Nous pouvons donc continuer et créer une fonction appelée name. Va. Et je vais lui attribuer de nouveaux noms afin d'éviter les conflits. Cela et nous allons créer cette fonction appelée change de nom. On y va. Maintenant, c'est ce que nous avons et nous pouvons faire de même pour notre époque et pour tout le reste. Nous pouvons donc entrer et créer notre funk comme un script normal ou comme un script normal ou comme nous le faisons normalement sur un script qui change d'âge Nous allons entrer dans une nouvelle ère et nous allons simplement définir « Nous avons ces deux Blackbird Ouais Nous voulons donc fixer l'âge égal au nouvel âge. Et nous pouvons faire la même chose avec PET, avec cela, vous changeriez de type, ce qui n' aurait pas vraiment de sens à moins d' avoir une sorte d' animal vraiment étrange capable de changer le type de créature dont il s'agit. Je suppose qu' capable de changer le type de créature dont il s'agit il en va de même pour Pokemon Allons-y donc et avec un type égal au nouveau type. Et nous pouvons déterminer de quoi il s'agit. Je vais dire chaîne, et chaîne de cette façon, nous n'avons aucun problème à transmettre des choses. Et maintenant que nous l'avons, je vais passer à la classe de fonction close out. Nous voulons ajouter un nouveau script à un contrôle ici. Test de classe. C'est bon. Maintenant, ce que nous allons faire , c'est dans le cadre de notre jolie fonction. Nous pouvons maintenant créer une nouvelle variable appelée PET et définir sur PET point new. Maintenant que nous avons accès à toutes nos fonctions, nous pouvons dire PET, faire un point. Et maintenant, vous pouvez voir que nous avons l'âge, le nom, changement d'âge, le changement de nom, le type de changement, puis tous les éléments standard que nous aurions sur un nœud typique que nous étendons. Donc, si nous le voulions, nous pouvons maintenant imprimer ceci est mon pourcentage S. Il est un pourcentage S et un pourcentage S O. Et maintenant nous pouvons facilement simplement le remplir. Ce que nous avons ici. Donc, les premiers éléments du PET, ce sont les noms. Je dirais Etname nourri par pet point Type et pet point H. Maintenant, cela devient un peu long Vous remarquerez ces lignes claires ici dans l'éditeur, puis une ligne beaucoup plus dure ici. Essayez de ne pas dépasser ces limites dans la mesure du possible. Et ce que nous pouvons faire, c'est simplement appuyer sur Entrée, cela ne s'affichera pas. C'est sur le Oro ? Donc, ce que nous pouvons faire, c'est quelque chose comme ça et tout organiser sur une seule ligne. Nous pouvons tout clarifier comme ça, et quand nous l'aurons écrit ou quand nous démarrerons cela, nous créerons un nouvel animal de compagnie, mais nous n'allons pas l' ajouter dans l'arbre parce que nous n'en avons pas besoin, dans ce cas, parce que nous voulons simplement accéder à ses propriétés, n'est-ce pas ? Et nous pouvons créer. C'est mon animal de compagnie. Nous avons cette phrase et nous la remplissons sur la base des informations que nous y avons, les informations que nous avons là, les valeurs par défaut sont toutes vides à l' exception du zéro Donc, la phrase semble toujours un peu bizarre. Mais ce que nous pouvons faire, c'est qu'avant de faire cette impression, nous pouvons appeler Pet point change Let's use Name, par exemple, et nous pouvons transmettre un nom. Nous allons donc dire Billy. Et maintenant, vous pouvez voir que cela se remplit ici dans notre console de sortie. Et nous pouvons faire la même chose avec l'âge et le type. Cependant, si nous voulons rendre quelque chose comme ça obligatoire, il sera un peu ennuyeux obliger les autres utilisateurs à le faire régulièrement. Donc, ce que nous y faisons c'est que nous pouvons appeler une fonction int, et c'est quelque chose qui est intégré à toutes les classes. Alors funk, soulignez INIT, ouvrez et fermez Et c'est là que nous pouvons avoir une liste définie de paramètres à mettre en place. Et ce sont toutes des choses qui seront définies par défaut dès que notre classe aura été créée. Nous allons donc aller de l'avant et transmettre , je vais dire un nouveau nom. Ensuite, nous ferons une nouvelle ère et une nouvelle ère, n'est-ce pas ? Ensuite, tout ce que nous allons faire, c'est dire que nom est égal au nouveau nom. Nous allons dire que l'âge est égal, égal au nouvel âge, et le type est égal au nouveau type. Maintenant, lorsque nous revenons à notre script de test, vous verrez que nous avons une erreur. Au moins, nous devrions avoir une erreur qui apparaisse. Allons-y. Et c'est parce que nous devons maintenant avoir des arguments. Donc, à l'intérieur de new inside du nouvel appel ici, ce sont tous les paramètres que nous devons remplir pour notre fonction int. Nous avons donc besoin d'un nom, d'un âge et d'un type. Et encore une fois, nous pouvons les appeler par types votre chaîne et la chaîne que vous voyez quand nous arriverons ici maintenant, nous allons devoir la remplir, alors allons-y pour y mettre un nom. Disons des chauves-souris. Notre deuxième argument est notre âge que nous pouvons mettre en deux. Ensuite, nous avons eu besoin d'un type. Disons chien. D'accord. Allons-y. Nous pouvons gérer ça. Et maintenant, nous voyons que tout cela est intégré. C'est le sac de mon animal de compagnie. Il a un chien et il a 2 ans Maintenant, tout cela est rempli. Nous condensons cela parce que nous n'avons pas besoin de le faire, nous n'avons pas besoin d'écrire trois fonctions différentes pour changer cela par rapport à notre animal de Et au lieu de cela, nous avons simplement tout mis dans notre fonction interne ou initialisée qui vient être reconstruite dans toutes les classes C'est vrai. J'espère que cela vous donne une idée de ce que sont les classes, de la manière dont nous pouvons les créer et de la manière dont nous pouvons réellement les utiliser dans notre code. Une classe est accessible pour n'importe quel script ou vous pouvez créer une nouvelle instance de cette classe à partir de n'importe quel script. Et vous pouvez créer une classe juste pour avoir des utilitaires afin de gagner du temps. Je l'introduis simplement dans un utilitaire et j'appelle certaines fonctions spécifiques dont vous pourriez avoir besoin partout, ou vous pouvez l'utiliser pour créer un objet, comme , dans ce cas, une classe animale ou si vous créez un jeu, peut-être une classe ennemie, puis cet ennemi aura sa propre santé sa propre attaque et ses propres informations. 21. Ce que nous allons faire (espace rempli): Bien, cette semaine, nous allons faire monter les choses d'un cran au lieu de nous contenter d' texto, 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 avec une manette à deux joueurs D. Collisions. Peut-être que nous allons entrer dans des particules. Nous pouvons travailler avec certains générateurs. Et comme vous le voyez, si vous n'avez jamais joué à Frogger auparavant ou si vous n'en avez jamais entendu parler, vous voyez, nous allons travailler avec une interface utilisateur pour affichage en tête haute Nous avons des points que nous allons devoir suivre. Trouvez-y ma souris pendant une seconde. Mais non seulement cela, mais nous allons également voir si cela va le montrer ici ? OK, nous avons donc un certain nombre de grenouilles par joueur. De toute évidence, nous n' avons pas à y mettre de pièces. Mais c'est essentiellement le jeu ici. Nous avons donc 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. Et 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 Frogger si vous n'y avez jamais joué ou si vous n'en avez jamais entendu parler 22. Créer le livre d'histoires: Très bien, bienvenue à tous. Et aujourd'hui, nous allons commencer à créer notre tout premier jeu. Ce que nous allons créer aujourd'hui est en fait le livre de contes de notre MadisGame Et ce livre de contes contiendra toutes nos histoires ainsi que les instructions que nous allons demander au joueur Maintenant, si vous le souhaitez, vous pouvez continuer et créer cela dans un tout nouveau projet. Je vais simplement supprimer les petits exemples que nous utilisions ici. Lorsque vous avez appris la langue ici, il vous suffit de les sélectionner et de les supprimer. De cette façon, je peux repartir sur une table rase. Et puisque je vais simplement conserver tous nos projets dans ce seul projet, je vais simplement créer un nouveau dossier et l'appeler MDLibs Encore une fois, je vous recommande créer complètement un nouveau projet. De cette façon, vous pouvez tout exporter individuellement. Très bien, alors nous sommes allés de l'avant et nous avons ceci. Nous avons notre dossier MadipsFolder, pour votre projet. Et je vais juste cliquer sur mon dossier. Si vous démarrez un nouveau projet, il vous suffit de cliquer avec le bouton droit de la souris dans un espace vide. Et je vais créer un nouveau script. Je vais commencer et créer un script ici, et je vais juste appeler ce cours de livre de contes et cliquer sur Preate C'est bon. Maintenant, je peux continuer et le mien n'est pas tombé sur mon dossier parce que j'ai cliqué sur l'extérieur Je vais donc simplement cliquer avec le bouton droit de la souris et le déplacer où je le souhaite Et je l'ai dans mon dossier, non ? Je vais ouvrir ça. Nous pouvons prolonger Non, c'est bon. Nous n'en aurons pas besoin car ce cours ne contient que quelques informations pour nous. Je vais donc créer un livre de contes sur les noms de classe, et nous aurons besoin de prolongations pour cela ? Non, je ne pense pas que nous le soyons. Je vais donc aller de l'avant et déplacer tout cela afin que nous puissions prendre un tout nouveau départ ici. Très bien, c'est ici que nous allons créer nos histoires, et nos histoires seront conservées dans une variable qui est un dictionnaire de type up Très bien, je vais donc créer une variable appelée Stories. Et ça va être un dictionnaire. Et comme il s'agit d'un dictionnaire, je vais aller sur Entrée pour l'ouvrir. N'oubliez pas que le dictionnaire est désigné par les accolades qui entourent nos informations Et pour ceux-ci, je peux juste dire la première histoire et deux points, ce sera notre clé. Et maintenant, nous avons besoin d'une valeur pour cela. Et cette valeur sera également un dictionnaire, car nous aurons besoin de deux informations à l'intérieur de l'histoire. Nous allons avoir besoin de la véritable histoire. A et ce ne sera qu'une chaîne vide pour le moment. Et puis il y en aura aussi un pour nos accessoires. Et ce ne sera qu'un tableau. Nous allons donc avoir des crochets ici. Et c'est le modèle que nous allons utiliser pour toutes nos histoires. Nous allons donc avoir l'histoire 1, l' histoire 2, l'histoire 3, l'histoire 4, etc. Et tout ce que nous allons faire, c'est aller de l'avant et intégrer cela. Ainsi, par exemple, pour l'histoire, nous dirons : voyons voir ce que nous voulons mettre ici ? Très bien, alors je suis allée de l'avant et j'ai créé ma petite histoire ici Donc, un jour, le pourcentage S. Maintenant, pourcentage S n'est qu'un espace réservé pour n'importe quelle chaîne Et nous pourrons le remplacer ultérieurement par tout ce que l'utilisateur insère. Donc, ce pourcentage S, dans ce cas, va agir comme notre blanc dans notre histoire. Alors un jour, le blanc est passé au blanc pour recevoir une quête. Cette quête était d'aller à Blank pour récupérer Blank, non ? Nous avons donc cette petite histoire ici, et c'est parti. Si vous souhaitez diviser l' histoire en plusieurs lignes, nous pouvons facilement le faire. Donc, en faisant cela en ayant notre barre oblique ici à la fin, puis sur la ligne suivante, nous avons un avantage Il va ajouter cette chaîne à cette chaîne, et maintenant nous pouvons tout avoir ensemble au même endroit. Mais en plus de cela, il est beaucoup plus facile de voir quand tout est en ligne ou sur un site comme celui-ci Maintenant, je l'ai imprimé avec un int juste à des fins de test, juste pour m'assurer qu' il n'y a aucun problème , aucun bogue étrange. Nous y voilà. Nous sommes prêts. Maintenant, pour ce qui est de nos instructions, il s' agira de chaînes à l'intérieur de ce tableau à l'intérieur de cette liste Et au fur et à mesure que nous traversons, un jour, le blanc. Ce blanc a donc du sens s'il s'agit d'un nom, nous pouvons donc continuer et simplement taper un nom Et quelle est la prochaine étape ? Je suis allé au vide, donc ça va être un endroit. Notre prochain à recevoir une quête. Cette quête devait aller comme il fallait aller, et ce sera un autre endroit pour récupérer quelque chose. Ce serait juste un autre nom. accord ? C'est donc essentiellement ainsi que nous allons travailler avec nos instructions. Nous passons donc par là. Nous avons un nom puis un lieu, puis un autre lieu, puis un nom, et cela remplit toutes nos options ici Cela nous donnera suffisamment de choses pour combler nos lacunes. Et il ne nous reste plus qu'à mettre une virgule ici à la fin, à passer à une nouvelle ligne, à coller une copie de ce que nous venons d'avoir, à changer la première histoire en histoire deux Et maintenant, nous pouvons continuer et créer une autre histoire avec quelques instructions supplémentaires, et nous pouvons simplement continuer et le faire à plusieurs reprises Afin d'avoir un beau livre de contes complet à utiliser. Très bien, nous avons donc une deuxième petite histoire ici. Un matin, D Baker est allé chez Je suis allé chez Blank U au magasin. À sa grande surprise, cependant, un blanc s'arrêta. Maintenant, je suis passé au verbe noun et au pronow, mais en y repensant, le pronom n'a probablement aucun sens, parce que nous avons déjà dit que c'était un « il », parce que nous avons déjà dit que c'était un « il Sa boutique, sa surprise. Donc je vais juste redevenir un nom, alors arrête d'être Blaine Et vous pouvez simplement continuer à le faire en permanence et créer autant de petites histoires amusantes que possible et vraiment remplir votre livre de contes Et une fois que votre livre de contes complètement créé et prêt, nous pouvons passer à la section suivante et commencer à créer l'interface avec laquelle nos utilisateurs pourront interagir Ensuite, nous allons réellement créer le code et faire en sorte que tout fonctionne. 23. Créer l'interface: Très bien, alors allons-y et commençons à créer l' interface dont nous aurons besoin pour que aurons besoin pour notre joueur puisse réellement jouer au jeu Donc pour le moment, nous n'avons qu'une scène vide ici, et il va nous en falloir une nouvelle. Voyons donc ce que nous voulons ? Eh bien, nous allons avoir besoin que le joueur soit capable de taper du texte, conformément aux instructions fournies Nous allons évidemment devoir afficher du texte à l' écran pour que l'utilisateur sache de quelles instructions il a besoin, sache de quelles instructions il a besoin, et pour lire l'histoire à la fin Et nous pouvons également y mettre un bouton. Ainsi, si l'utilisateur ne souhaite pas appuyer sur Entrée, il peut cliquer sur le bouton tout en soumettant son texte. Ce sont donc trois choses dont nous aurons besoin au minimum ici. Allons-y donc. Nous pouvons créer. Je vais continuer et cliquer sur Interface utilisateur ici la section de création d'un nœud racine sur le côté gauche, et cela nous donnera un nœud de contrôle pour nous démarrer. C'est bon. Et je vais le renommer Maine, car ce sera la source principale de notre jeu Je vais appuyer sur ce petit bouton plus juste au-dessus avec Main sélectionné, et cela va m'inviter à créer un nouveau nœud. Maintenant, vous ne faites que les différents objets que nous pourrions créer. Et n'oubliez pas que nous pouvons également le faire dans le code. exemple, nous allons simplement Par exemple, nous allons simplement passer à Control. Et tu sais que je vais juste aller chercher. C'est ce que je cherche. Donc, l'équivalent de le sélectionner et de l' ajouter ici serait le même que si nous avions un script sur notre page principale ici, et que nous disions simplement «   ligne edit point new », puis que nous l' ajoutions à la scène. C'est exactement la même chose que ce que nous venons de faire ici, sauf que nous faisons les choses visuellement, uniquement parce que cela va être plus rapide à la fin de la journée. Et si nous avons les outils nécessaires pour accélérer la production, nous pouvons tout aussi bien en tirer parti. Je vais y aller et prendre le petit manche orange qui se trouve ici, je l'étire. Et je vais continuer et pendant que cela est sélectionné, je vais aller en haut de mon écran. Cliquez. Allons-y. Cette petite icône se trouve à côté de l'ancre et vous verrez apparaître une fenêtre contextuelle pour les préréglages de l'ancre Et je vais juste sélectionner celui qui se trouve au centre de mon écran. Allons-y. De cette façon, je sais que mon champ de texte sera toujours juste au milieu. D'accord. Maintenant, cet objet possède un tas de propriétés ou vous pouvez également les appeler des variables, n' est-ce pas, qui se trouvent sur celles-ci et auxquelles nous pouvons accéder. Et l'un d'entre eux est le texte réservé. Et nous pouvons le constater si nous jetons un coup d'œil sur le côté droit de l'inspecteur. Nous pouvons voir le texte de l' espace réservé ici. Maintenant, nous pouvons continuer et taper ici, ce qui donnera à notre utilisateur une idée de ce qu'il est censé taper. Tout comme lorsque vous accédez à un site Web, il peut y avoir e-mail dans le champ e-mail et un mot de passe dans ce champ. Nous allons donc dire « submit prompt », point, point, point. De cette façon, notre utilisateur sait que c' est ici qu'il envoie sa demande. Et je vais renommer ma modification de ligne en utilisateur. Voulez-vous l' appeler User prompt ? Non, appelons cela une invite, vous voulez accéder au texte de la demande, champ d' invite. Soumission rapide. Voilà, parce que nous soumettons notre police ici ou non, fonti prompt, désolé Je vais donc opter pour cela et simplement appeler Rapid Submission. Maintenant, j'ai mentionné que je voulais un bouton, donc je vais sélectionner à nouveau Main. Je veux que ce soit le propriétaire. Je vais taper le bouton en haut. Maintenant, j'ai un bouton, et je vais régler le texte de ce bouton pour qu'il dise simplement « OK ». Et je vais faire la même chose avec le bouton sélectionné, je vais sélectionner le bouton tout en haut à côté l'ancre et sélectionner le centre. De cette façon, il peut être centré. Et je vais juste le saisir avec le clic gauche, puis je vais maintenir la touche Shift enfoncée et le faire glisser vers la droite si je peux le trouver Allons-y. Juste comme ça. Allons-y. Maintenant, je pense que certaines histoires peuvent être un peu longues. Je vais donc aller de l'avant et saisir les deux, à la fois mon invite et mon bouton O. Et pour cela, je viens de procéder et vous pouvez cliquer sur Shift Click ou Ctrl Click. Quoi qu'il en soit, nous travaillerons pour ici. Je vais le saisir sur mon interface utilisateur, puis maintenir la touche Shift enfoncée pour que nous puissions le maintenir en ligne droite, et je vais juste le déplacer un peu vers le bas pour avoir un peu plus d'espace en haut au cas où nos histoires deviendraient un peu longues. OK. Ces ancres indiquent donc où se trouvera notre objet par rapport à ce point de l'écran ? Cette ancre est donc au point mort de notre écran. Ainsi, quelle que soit la taille de la fenêtre , ce champ de texte, cette modification de ligne et ce bouton OK seront toujours situés à peu près au centre. Cela va donc presque automatiquement mettre à jour sa position en fonction des ancres et de la taille de la fenêtre qui est formidable pour nous, c'est parce que nous ne savons jamais quelle sera la taille d'un écran . Voyons voir. À partir de là, de quoi d'autre avons-nous besoin ? Eh bien, nous allons avoir besoin d'afficher du texte. Voyons voir. Nous pourrions utiliser une étiquette pour demander ou afficher nos informations. Nous pourrions également utiliser un texte enrichi, que je pense que nous allons utiliser sous forme de thad. Nous allons donc continuer et en ajouter une autre dans notre scène, et ce sera une étiquette en texte enrichi. Et je vais juste sortir cette boîte orange, cette poignée. Et je pense que je vais placer les points d'ancrage au centre de manière à ce que tout soit relatif ici Cliquez sur la touche Maj et faites-la apparaître. Et je pense que cela suffira pour une grande partie de nos informations. Quelle est la taille de ce texte ? Oui, je pense que ça ira. Très bien, voyons voir. Étiquette de texte enrichi, je vais la renommer texte d'affichage D'accord. Je pense donc que c'est tout ce dont nous aurons besoin. Je vais continuer, appuyer sur Controls et enregistrer ma scène. Le voici dans mon dossier. Et maintenant, si nous devions l'exécuter , nous n'aurions aucun problème. Nous pouvons voir que tout s'est parfaitement bien passé ici. Tout semble bon. Nous pouvons taper à l'intérieur de nos livres. Et je vais aller chercher la fenêtre, afin de pouvoir vous la montrer ici. Maintenant, il va être important que tu voies la fenêtre. Voilà. Vous pouvez voir que nous pouvons le saisir et en supprimer des éléments. Génial Nous pouvons appuyer sur le bouton OK. Fantastique Maintenant, ce contexte est un peu fade. C'est un peu ennuyeux. Donc, ce que je vais faire, c'est me rendre sur Google et simplement rechercher Blackboard Voilà. Recherchez un tableau noir, tableau noir, tout ce que vous voulez rechercher Et je vais continuer, choisir une image au hasard et l'enregistrer. Il ne me reste plus qu'à trouver où se trouvent mes dossiers. Ici. Sauvez, revenez voir Gato. Et voilà. Nous pouvons le voir enregistré ici. À l'intérieur de mon dossier. Je vais donc ajouter un autre objet à mon objet principal ici dans ma scène. Et ce sera une texture rectifiée que je vais simplement renommer en arrière-plan Et je vais simplement faire glisser ici l'image Blackboard que j'ai créée ou, malheureusement, que je n'ai pas créée et que j'ai trouvée sur Google Et une fois l'arrière-plan sélectionné, la texture rectifiée, je vais la faire glisser vers l'emplacement de texture sur le côté droit, à l'intérieur de l'inspecteur, et la déposer dedans. Et si nécessaire, vous allez modifier la taille d'extension ici et l'étirement si nécessaire afin de modifier la taille et de la modifier Par exemple, si nous le définissons pour conserver l'aspect, il ne bougera pas, mais si nous changeons notre mode d'expansion pour ignorer la taille, par exemple, c'est parti. Nous pouvons voir que nous pouvons faire avec ça. Et si nous changeons simplement l' aspect Keep pour le mettre à l'échelle, c'est parti. Nous pouvons maintenant l' étendre pour l'adapter à nos besoins. Maintenant, ce qui est important, c'est que vous voyez ce contour bleu ici. Tout ce qui se trouve à l'intérieur de cette boîte est ce que nous allons pouvoir voir à l'intérieur de notre fenêtre. Je vais donc juste la rendre un peu plus grande que notre fenêtre juste pour m'assurer qu'elle est complètement recouverte. Et nos ancres dans le coin supérieur gauche. Maintenant, pour le contexte, cela ne fonctionnera pas. Je vais donc ajuster mes ancrages, et je vais sélectionner celui qui est complètement détruit Et ça va mettre une épingle dans chaque coin. Cela garantira que, quelle que soit la taille de notre fenêtre, cet arrière-plan la remplira toujours. C'est bon. Nous avons donc maintenant un problème. Notre expérience est au top de tout. Nous ne pouvons pas voir notre bouton ni rien de ce que nous avons fait auparavant. Eh bien, c'est juste à cause des couches, essentiellement. Si vous avez déjà travaillé dans Photoshop, vous connaissez certainement les calques ici. Tout ce que nous avons à faire, c'est de récupérer nos antécédents, et nous devons vraiment nous en faire une idée. Parce que ce qui est en haut sera derrière tout le reste en bas. Je sais que c'est un peu l' inverse dans Photoshop. Au bas se trouve généralement ce qui se cache derrière tout. Vas-y, fais juste une sorte de flip, quelque chose dont tu dois te souvenir. Mais nous y voilà. Maintenant, nos visuels sont tous configurés ici et nous sommes prêts à commencer à saisir partie du code afin de faire fonctionner nos boutons et tout le reste et de démarrer notre jeu 24. Sélectionner l'histoire et inviter le joueur: Très bien, nous allons maintenant commencer à écrire une partie de notre code Nous allons placer notre script sur notre nœud principal ici. Je vais donc simplement ajouter un script. Je vais juste laisser le mien appelé Min et appuyer sur Créer. Très bien, alors voyons voir. Que devons-nous faire ? Eh bien, nous devons suivre notre histoire actuelle. Allons-y et créons une variable pour cela. Histoire actuelle. Ça va être ça. Est-ce que ce sera un tableau dans notre cas ? Nous allons sélectionner une histoire, et cela va nous donner Non, cela va nous redonner un dictionnaire. Mais nous pouvons en fait retenir cela et en faire un dictionnaire. Allons-y. Nous allons devoir suivre les paroles de nos joueurs, n'est-ce pas ? Les mots qu'ils ont soumis. Nous allons donc prononcer les mots des joueurs, et celui-ci sera un tableau auquel nous pourrons ajouter des éléments. Maintenant, nous allons utiliser un mot clé appelé « ready ». Et dans la version 4.1, nous devons en fait utiliser ce symbole pour utiliser ces mots clés. Mettez-le sur le symbole , puis utilisez-le prêt. Ensuite, nous pouvons continuer et créer notre variable comme d'habitude. Et ce sera notre texto pour les joueurs. Ce qui équivaudra à notre soumission rapide que nous voulons obtenir Donc, pour obtenir ce nœud, il existe en fait deux façons de le faire. Le plus simple est d' utiliser simplement ce signe dollar, qui signifie simplement get node. Et à partir de là, nous avons un accès facile à notre soumission rapide. Comme vous le voyez, il suffit de descendre d'un niveau ici. Et si nous commençons à taper, nous verrons la fenêtre contextuelle de saisie automatique s'afficher et nous cliquons dessus, c'est parti. Chaque fois que nous voulons accéder à cet objet, nous pouvons simplement saisir le texte du joueur. Maintenant, nous allons également le faire pour notre texte d'affichage et notre bouton. Je vais donc dire que le texte d'affichage est égal à ce que je viens de l' appeler le texte d'affichage. Génial Et nous en aurons un autre pour notre bouton. Avons-nous besoin du bouton ? Non, nous ne le savons pas vraiment. Nous n'en aurons pas besoin pour cela. ne vaut pas la peine d'utiliser ce bouton par défaut ici. D'accord. Allons-y et retirons le processus de là. Alors, voyons voir ce dont nous aurons besoin. Nous devons sélectionner une histoire, non ? Nous devons donc attribuer notre histoire actuelle, et pour garder les choses organisées, nous allons créer une fonction pour conserver notre histoire actuelle définie. C'est une histoire d'actualité funk. C'est comme ça. Et comme il s'agit d'une fonction distincte, je vais faire deux lignes entre les deux. Et comment définir comment allons-nous situer cette histoire actuelle ici ? Eh bien, nous n'allons rien renvoyer à la fin , car nous allons simplement l' attribuer directement à notre variable. Donc, pour y parvenir, nous allons avoir besoin d'un nombre aléatoire ou de sélectionner une histoire aléatoire. Je vais donc créer une variable appelée Stories, et ce sera un tableau, qui sera juste égal au point StresOh de notre classe de livres de contes Et écoutez, nous ne pouvons pas y accéder. Revenons donc à notre cours de livre de contes, et pour éviter d'avoir à créer un nouvel objet pour cela, puisque tout ce dont nous avons besoin est d' accéder aux histoires qu'il contient, nous allons utiliser le mot clé statique que nous avons mentionné dans la première semaine le moment, nous revenons à notre script principal, et nous pouvons faire du story-book point STRS Je ne peux pas attribuer de valeur de type dictionnaire à une variable, nous voulons donc obtenir nos Et dans ce dictionnaire, nous allons utiliser des touches à point, parenthèses ouvertes et fermées Et ce que cela va faire, les touches appellent ici que nous pouvons faire appel à un dictionnaire, il va renvoyer un tableau ou une liste de l'histoire 1, de l' histoire 2, de l'histoire 3, l'histoire 4, etc. Il y aura donc tous les noms de nos petites histoires ici. C'est bon. Maintenant, à partir de là, nous devons en sélectionner une au hasard. La question est donc de savoir lequel voulons-nous ? Eh bien, nous allons créer une variable appelée histoire sélectionnée ici. Et, bien sûr, ce ne sera qu' une chaîne parce que toutes nos histoires sont des ficelles. C'est donc logique. Et accédons à nos histoires ici, à droite, les histoires de Ray. Et dans la version 4.1, nous pouvons simplement sélectionner Pick Random. C'est tout ce que nous avons à faire, et il va sélectionner au hasard une histoire à nous raconter. Et c'est tout ce que nous devons faire pour cela. ne nous reste plus qu'à aller l'avant et à définir notre histoire actuelle. Nous pouvons donc dire l'histoire actuelle. Voyons voir. Nous l'avons juste réglé sur ce point. Alors ça devrait nous donner un dictionnaire complet. Les deux, ça devrait aller. Nous allons donc simplement dire que l' histoire en cours est égale à l'histoire sélectionnée. La force ne peut pas être attribuée à un type de variable. Oh, c'est vrai. Il faut écrire ça différemment. Storybook point Storys , puis je vais utiliser ces crochets ici parce que nous voulons accéder à l' histoire qui s'y trouve Et celle à laquelle nous voulons accéder est une histoire sélectionnée, n'est-ce pas ? Encore une fois, nous allons passer en revue cette question. Nous créons une variable appelée stories, qui est un tableau ou une liste. Et cela est attribué à toutes les différentes histoires, vrai, les clés de notre dictionnaire. De toutes nos histoires dans notre livre de contes. Maintenant, Stories contient tous les titres de nos petites histoires. Et puis l'histoire sélectionnée est une chaîne qui est définie sur une histoire aléatoire, hors de notre liste. Ensuite, nous définissons l'histoire actuelle que nous avons déjà créée en haut , à savoir le dictionnaire. Nous mettons cela sur un pied d'égalité l'histoire contenue dans notre livre de contes, l'histoire que nous avons sélectionnée. C'est bon. Et nous pouvons voir cela fonctionner facilement si nous nous contentons de monter dans notre bloc prêt, et si nous devons réellement appeler, définir l'histoire actuelle, parce évidemment ce que vous allez faire au début du jeu. Ensuite, je vais juste continuer et imprimer notre histoire actuelle. De cette façon, nous pouvons simplement voir s'il fonctionne car il est déjà vide par défaut. Donc, si je l'imprime avant, si nous définissons notre histoire actuelle, nous devrions pouvoir la voir, et je vais juste jouer cette scène. Allons-y, nous pouvons donc voir qu'il est vide en haut. Et puis, après avoir préparé notre service, nous avons le matin où le boulanger est parti à blanc pour ouvrir sa boutique à sa grande surprise. Il semblerait donc que nous ayons reçu la première histoire. Refaisons-le. Et c'est parti. Nous avons maintenant une histoire complètement différente. Le ciel blanc était d' une belle nuance de blanc, alors que le blanc jetait le blanc sur le blanc. Et nous pouvons voir que nous avons également toutes nos instructions ici. C'est fantastique. Nous allons tous venir ici. Tout fonctionne très bien. Nous avons maintenant une histoire sur laquelle travailler. Nous les avons sélectionnés au hasard. Maintenant, nous devons nous demander comment inviter le joueur, n'est-ce pas ? Eh bien, nous n'avons plus besoin de ces relevés imprimés car nous savons que cela fonctionne bien. Notre histoire est donc définie. Comment pouvons-nous demander à notre joueur ? Eh bien, c'est simple. Nous allons descendre, créer une nouvelle fonction. Nous allons l'appeler Prompt Player. Et ce que nous allons faire, c'est voir. Passons directement à notre texte affiché. Et nous voulons accéder à sa propriété de texte afin de pouvoir la définir. Et pour éliminer toute confusion potentielle, nous allons dire, utilisons le terme « plus égal » ici, et voyons en quoi cela correspond à notre situation. Et je dois dire, May, j'ai ce que nous allons y ajouter, ce seront nos bals de fin d' année en cours. Et le message que nous allons vous demander pour savoir lequel nous voulons sera basé sur les mots que nous avons créés en haut ici, n'est-ce pas ? Les mots de nos joueurs. Et nous allons nous baser sur la taille, car souvenez-vous que lorsque nous travaillons avec une liste, nous commençons à compter à zéro, un, deux, trois, n'est-ce pas ? Donc, si la taille de nos joueurs est nulle, cela signifie que nous n'avons pas encore de soumissions. Nous allons donc obtenir le premier élément de cette liste. Si le joueur a soumis un seul mot à un objet, alors nous allons obtenir le deuxième élément, et ainsi de suite. Très bien, nous pouvons donc demander au joueur de cette façon. Et je sais que cela devient un peu long de ce côté , mais voyons voir. Pour le moment, c'est tout ce dont nous avons besoin pour inviter le joueur. C'est bon. Donc, ce que nous allons faire à partir de là, après avoir sélectionné l'histoire en cours , déjà enregistrée, nous pouvons passer à l'appel et appeler le joueur à partir de là. Et cela devrait être tout ce dont nous avons besoin. Alors allons-y et essayons-le. Oh, il semblerait que j'ai rencontré un problème ici, et qu'est-ce que c'est ? Jetons un coup d'œil. Oh, oui, je vois l'erreur ici. Dites-moi que les instructions ne sont pas une chose parce que j'ai utilisé un P majuscule dans mon livre de contes Donc, si j'en fais juste un P majuscule, cela devrait résoudre mon problème. Et nous y voilà. Il nous demande donc si je peux avoir un verbe ? Ensuite, je peux continuer et taper ici. Vous pouvez appuyer sur OK, puis sur Entrée. Rien ne va changer ici pour le moment. Mais vous avez remarqué que j'ai dû cliquer dans cette case lorsque nous avons commencé. Donc, si je le redémarre et que maintenant je dois venir ici, je dois cliquer dessus moi-même. Eh bien, pourquoi ne pas simplement automatiser cela ? Allons-y et récupérons le texto du joueur. Et nous allons appeler ce que l'on appelle Grab focus. Alors maintenant, lorsque nous l' exécutons, nous y voilà, il est déjà là, et nous pouvons simplement commencer à taper immédiatement. Nous n'avons donc pas à perdre de temps. C'est bon. Donc, pour continuer à inviter le joueur, nous devons regarder les mots que nous avons soumis, n'est-ce pas ? Nous devons en fait soumettre ces mots. Pour cela, nous allons donc devoir connecter certains signaux pour savoir quand les choses se passent. Je vais donc cliquer sur mon envoi rapide dans ma scène. Ensuite, je vais me déplacer vers la droite et cliquer sur l'onglet qui dit nœud. Et ici, nous pouvons voir tous les signaux par défaut qui se trouvaient ici. Et celui que nous recherchons est le texte soumis dans la section d'édition de ligne. Et en gros, chaque fois que nous appuyons sur la touche Entrée, le texte saisi par l'utilisateur est soumis le texte saisi par l'utilisateur est Je vais donc simplement continuer et double-cliquer dessus. Très bien, vous devriez voir un écran comme celui-ci, et tout cela est génial parce que nous n'avons aucun script dessus, et celui-ci est bleu parce que c'est à cela que nous essayons de connecter le signal. Nous allons donc simplement sélectionner notre fichier principal, car il contient notre script, et nous allons cliquer sur Connect. Si vous voulez renommer la fonction ici, c' possible, je ne vais pas le faire Je vais juste le laisser avec le nom par défaut ici, et je vais simplement appuyer sur le bouton Connect. Et vous le verrez ajouté ici, en bas de notre script. Je vais juste maintenir la touche Alt enfoncée et utiliser la flèche vers le haut pour le déplacer de quelques espaces vers le haut. Allons-y, débarrassons-nous de ça. Va. C'est réglé. Mais nous y voilà. Nous voyons donc que sur le nom de cette fonction, qui va se déclencher à partir de ce signal, elle va exécuter ce bloc de code. Maintenant, nous pouvons voir que nous avons un nouveau texte, qui est une chaîne qui nous est transmise. Ce nouveau texte est donc ce qui a été saisi à l'intérieur de cette ligne. C'est bon. Ainsi, lorsqu'un texte est soumis, nous devons ajouter aux mots de notre joueur. Et comme nous devrons faire plusieurs fois sur plusieurs sites ou du moins sur plusieurs sites, allons-y et créons une fonction pour cela. Funk, ajoutez, voyons voir comment je l'ai appelé ? Ajoutez des mots aux joueurs pour que nous puissions garder les choses propres. Allons-y. Et tout ce que nous allons faire dans cette fonction, c'est ajouter nos mots, n'est-ce pas Les mots des joueurs. Ajouter. Maintenant, ajoutez. Cet appel ici nous permet simplement d' ajouter des éléments à notre tableau, d' ajouter des éléments à notre liste. Donc, tout ce que nous saisirons ici sera ajouté et nous n'ajouterons que du texte playertext point text Maintenant, nous pourrions faire en sorte que cela soit plus propre, mais cela pourrait entraîner des problèmes potentiels plus tard. Qui sait ? Nous allons donc procéder de cette façon pour le moment. Et ce qui serait bien, c'est que cela affiche du texte, si nous le supprimons de notre écran, pour en faire une chaîne vide, je suppose que vous pourriez dire. Nous allons dire afficher le point de texte. Et nous allons appeler clair, et cela ne fera que le vider. Et ce que cela va faire, c'est supprimer l'invite qui s'affiche sur notre écran, nous demande un verbe ou un nom ou autre Et pour montrer visuellement à notre joueur que notre texte a été envoyé, nous pouvons également le faire pour le texte de notre joueur. Voyons à quoi cela ressemble maintenant. Nous devons rappeler ici avant d'oublier. Donc, une fois le texte envoyé, nous allons appeler « ajouter aux mots du joueur ». C'est bon. Donc, si nous allons de l'avant, que nous l'exécutons et que nous y jetons un coup d'œil maintenant, vous dites : Puis-je avoir un verbe et nous dirons courir. Et j'ai appuyé sur Entrée. Et vous voyez, notre texte ici bas a été vidé et notre tableau en haut a également été vidé Donc c'est génial. Il semble que notre texte ait été soumis et nous sommes prêts à le mettre à jour avec une nouvelle invite. Fantastique C'est bon. Afin de continuer à vous demander, nous allons configurer partiellement ce dont nous aurons besoin pour configurer la fin et redémarrer le Nous allons donc simplement laisser cette partie de côté et revenir à cette fonction à l'avenir. Donc pour le moment, nous allons juste l'utiliser pour vérifier ou appeler cela vérifier les mots du joueur Lang. Je ne veux donc pas que tu te confonds avec ce nom. Cela aura plus de sens si nous ajoutons des éléments lorsque nous vérifierons si le jeu est terminé. Je vais donc me lancer dans le funk, vérifier les mots des joueurs Lang D'accord. Donc, ce que nous allons faire, c'est la façon dont nous pouvons le formuler. Voyons voir. Nous pouvons dire si nous allons utiliser une instruction if ici. Je vais donc dire si les mots des joueurs ont pris de la taille. Et n'oubliez pas que cela nous permettra d'obtenir le nombre d' objets contenus dans les mots de notre joueur ici. Donc, le nombre de mots que nous avons déjà soumis. Et nous allons dire que c'est égal à notre histoire actuelle, aux instructions, aux pots de bal Non Allons-y, instructions par points. Taille d'un point, car n'oubliez pas que nos instructions sont une liste. Et bien sûr, nous avons une erreur ici jusqu'à ce que nous mettions nos deux points à la fin de notre ligne. Nous allons donc dire que si le joueur a soumis le même nombre de mots que nous avons reçu, nous pouvons faire quelque chose Mais nous ne voulons pas le faire, n'est-ce pas ? Parce que nous voulons le dire, sinon, comme ça. Parce que nous voulons dire : Oh, si le joueur n'a pas encore envoyé assez de mots, nous devons le lui demander à nouveau, et c'est exactement ce que nous allons faire. Nous allons appeler Prompt Player. C'est bon. Et quand il s'agira de la prochaine vidéo, nous reviendrons et nous réécrirons cette fonction Mais pour l'instant, cela devrait fonctionner pour nous. Allons-y et jetons un coup d'œil. Alors, puis-je avoir un adjectif ? Bien sûr. Allons-y avec Pretty. Vous appuyez sur Entrée et l' objet est mis à jour. Mais nous ne vérifions nulle part la longueur de nos joueurs Vous comprenez donc pourquoi cela pose problème. Voyons donc où pouvons-nous le faire ? C'est ce que nous faisons lorsque nous ajoutons des éléments aux mots de notre joueur. Donc, une fois que nous aurons ajouté le mot et que nous l' aurons soumis pour nous, nous vérifierons le lien voir si nous pouvons continuer à jouer et si c'est le cas, demanderons à l' utilisateur de choisir le suivant. Voyons voir. Puis-je avoir un verbe ? Oui, allons-y avec RN ou Run. Allons-y. Puis-je avoir un nom, chien Puis-je avoir un adjectif ? Joli. Puis-je avoir un adverbe Oui, rapidement. Puis-je avoir un nom ? J'espère que nous avons trouvé beaucoup de choses ici. rouge. Puis-je avoir une terminaison verbale en ING ? cambriolage. Et voilà, notre histoire est terminée. Nous n'avons plus d'instructions. Nous n'avons pas encore notre histoire, mais toutes nos instructions s'y trouvent Maintenant, nous pouvons voir que le texte affiché n' a pas été effacé, ce qui est intéressant. Donc, au lieu d'appeler clear à l'intérieur de nos mots d'ajout au joueur, récupérons simplement la propriété text et définissons-la sur une chaîne vide. Et voyons comment cela fonctionne ici. J'ai un verbe, courir. Allons-y. Alors maintenant, nous l' avons mis à jour de cette façon. Je ne sais pas pourquoi Clear ne fonctionne pas. Il y a peut-être un bug là-dedans en ce moment. Je ne sais pas Mais nous pouvons simplement l' effacer manuellement en le réglant sur un écran vide. Et si vous voulez continuer comme un sur chaque ligne, si vous voulez continuer comme ça, un sur chaque ligne, il suffit d'ajouter un plus égal et de faire ce backend. Ou est-ce un attaquant ? Je pense que c'est l'avant ici, et ce sera une nouvelle ligne. Donc, si nous le regardons de cette façon, il peut y avoir un b run, et ça ne va pas vraiment se passer de cette façon. Je mélange toujours les deux pour ce qui est de savoir dans quelle direction il est censé aller. Adjectif. Joli. Allons-y. Maintenant, nous pouvons avoir une nouvelle tente sur chaque ligne à vous demander. Donc, si vous préférez que ce soit comme ça, c'est ainsi que vous pouvez apporter cette petite modification. Ayez un nom. Oui, chien se terminant par ED, je suis en train de dessiner un blanc ici en ce moment. Je ne sais pas pourquoi, mais tu vois l'idée. Nous pouvons donc avoir une nouvelle gamme où vous pourrez vous faire une idée la façon dont vous voulez que vous soyez présenté. D'accord. Et je pense que c'est suffisant pour aujourd'hui parce que je pense que tout ce dont nous avons besoin maintenant, c'est de mettre fin à notre jeu, qu'il s'agisse d'y mettre fin complètement, de raconter notre histoire, voir si le joueur veut rejouer, de voir si le joueur veut rejouer, et toutes ces choses amusantes. Donc, un petit mot avant de décoller. Au lieu d'inviter le joueur ici en haut, ce que nous pouvons faire maintenant, c'est simplement vérifier la longueur des mots du joueur dans notre boîte prête, et cela devrait nous permettre de configurer la même chose visuellement Oui, on y est. D'accord. Voilà, vous l'avez. Nous avons une grande partie de notre configuration de jeu ici. C'est simple en termes de jeux vidéo, et cela vous donne l'occasion de vraiment utiliser les éléments que nous avons abordés au cours de la première semaine, quelle que soit la version si vous utilisiez les deux. Nous travaillons donc avec des variables, différents types de données, travaillons certainement avec des fonctions pour que tout reste beau et propre. Nous utilisons ici une programmation orientée objet. Avec notre livre de contes, nous invitons nos joueurs à le faire Tu apprends de nouvelles choses. Si vous n'avez pas lu la version alternative, vous avez appris à ajouter. Vous avez découvert Grab Focus, peu importe celui que vous avez suivi, vous avez appris à utiliser Pick Random et Keys. Vous avez donc appris pas mal de choses en plus de ce que nous avons appris au cours de la première semaine Quelle que soit la version que vous avez lue, vous avez peut-être suivi les deux. Mais je vais arrêter de m' attarder ici, et je vous verrai dans le prochain où nous terminerons le jeu afin d'en avoir un entièrement jouable 25. Terminer et recommencer: Très bien, tout le monde, allons-y et terminons. Nous allons terminer notre partie. Nous devons vérifier si notre histoire est terminée. Nous devons réellement raconter notre histoire, et nous allons utiliser notre bouton OK pour avoir deux utilisations ici. Cela va donc fonctionner à la fois de rejouer avec une nouvelle histoire et de soumettre notre texte. Commençons donc par cela avec notre bouton ici. Je vais donc simplement sélectionner mon bouton, et je vais connecter le signal, appuyer sur le signal et encore une fois, je vais simplement connecter à mon principal, et je vais le laisser avec le nom par défaut ici. Et juste pour que les choses soient un peu claires, je pense que je voudrais déplacer cela un peu vers le haut et placer mes deux espaces entre les deux. De cette façon, vous pouvez simplement avoir mes deux signaux côte à côte. Très bien, pour l'instant, lorsque nous appuyons sur notre bouton, nous pouvons simplement utiliser Ajouter aux mots du joueur, et cela fonctionnera de la même manière que si nous sur Entrée sur notre clavier Cela devrait parfaitement fonctionner, exactement de la même manière. Donc, le verbe Ron, on clique sur OK, on y va maintenant, Dog, OK. Très bien, donc tout est en cours de soumission, tout fonctionne bien. Excellente. Nous devons donc savoir quand notre histoire sera terminée. Ainsi nous saurons s'il est temps de raconter notre histoire et de terminer le jeu, ou s'il faut continuer à jouer et demander au joueur une autre invite. Eh bien, pour ce faire, nous allons créer une nouvelle fonction, que nous appellerons I story done. Et le but de cette fonction est simplement de nous dire s'il nous reste encore des instructions à deviner Nous allons donc renvoyer une valeur ici. Et ce que nous allons déterminer, c'est si c'est vrai ou faux. Ce seront les mots des joueurs, taille est égale à celle de nos instructions actuelles, n'est-ce pas ? N'oubliez pas que nous voulons utiliser le double égal ici parce que nous faisons une comparaison. Et c'est tout ce que nous allons faire. Nous allons simplement le renvoyer, et ce sera soit vrai, soit faux. Très bien, maintenant, dans notre vérification de la longueur des mots des joueurs ici, au lieu de l'écrire comme ça, nous pouvons le reformater Et nous pouvons le dire, si j'en ai fini avec mon histoire. Et pour l'instant, nous ne faisons que taper le mot passe parce que c'est à ce moment-là que nous allons terminer le jeu, et nous allons ajouter un autre bloc ici. Allons-y. Nous allons donc dire que si l'histoire est terminée, nous mettrons fin à notre jeu lorsque nous aurons écrit cette partie de notre code. Sinon, demandez à nouveau à l'utilisateur. Voyons donc ce qui se passera si nous le faisons maintenant. Nous arrivons en adjectif, prêts, nous appuyons sur le bouton de paiement Fantastique Notre texto répond toujours à l'invite Tout fonctionne toujours. Génial Nous n'avons encore rien cassé. C'est génial. D'accord, alors comment finissons-nous notre jeu ? Eh bien, si l'histoire est terminée, nous devons terminer le jeu. Nous allons donc créer une nouvelle fonction appelée end game, et remarquer comment nous créons une fonction pour tout ce qui est ici afin que nous puissions tout organiser. Et nous disons : OK, eh bien, nous avons un problème à la fin du jeu, nous savons qu'il faut venir ici et examiner la fonction de fin de partie. Ou peut-être que notre histoire n' apparaît pas à la fin, et nous devrons passer à la fonction que nous allons créer ici dans une seconde, intitulée Tell Story. Cela nous aidera donc à réduire les bogues que nous pourrions rencontrer dans notre projet. À l'avenir, en étant organisé et préparé dès maintenant. Bien, alors comment finissons-nous notre partie ? Eh bien, ce que je vais faire, c'est prendre notre écran. Vous souhaitez utiliser notre texte d'affichage ? Non Nous voulons récupérer mes soumissions rapides, n'est-ce pas ? Nous voulons donc obtenir le texte du joueur. Et ce que nous allons faire ici, c'est utiliser Quarter. Et ce que cela devrait faire, c'est revenir à notre scène ici sur deux D, c'est saisir cette ligne et la supprimer complètement de l'écran. De cette façon, il n'existe plus. C'est essentiellement ce qu'il fait. Le supprime complètement, le supprime de la mémoire Cela libère donc de la mémoire, et c'est important de le faire, pas nécessairement dans ce jeu, mais dans d'autres jeux Supposons que vous continuiez à créer ces nouveaux objets, mais qu'ils ne soient jamais supprimés. Vous allez essentiellement commencer à créer des fuites de mémoire. Vous devez donc vous rappeler de libérer tout ce dont vous n'avez plus besoin. À ce stade, nous n'avons plus besoin du texte de notre joueur. C'est bon. Donc, ce que nous allons faire ici ensuite c'est que je vais modifier le texte de notre bouton. Je vais donc prendre notre bouton, ce signe du dollar. Tu te souviens de ce nœud short get, n'est-ce pas ? Nous voulons donc obtenir le nœud dans le nœud que nous voulons obtenir est notre bouton. Et si nous écrivons simplement le mot bouton, c'est parce que c'est ainsi qu'il s'appelle ici dans notre scène. Donc, si je le renommais en quelque chose d'autre, je devrais m' assurer que cela correspond. Donc, sur ce bouton, nous voulons en obtenir la propriété de texte, et je vais la configurer pour qu'elle soit rejouée. Et pendant que nous y sommes, nous devons nous assurer que le message OK est indiqué lorsqu'il s'agit d'inviter notre joueur. C'est bon. Je vais donc simplement le mettre dans notre fonction de lecture rapide et configurer le texte pour qu'il dise « OK ». D'accord, la dernière chose que nous ayons à faire avant notre fin de partie est d' appeler et de raconter Et cela va nous donner une erreur jusqu'à ce que nous le créions, alors allons-y et créons au moins ce nom, racontons une histoire, et c' est maintenant une nouvelle fonction. Pour raconter notre histoire à l'écran, il suffit de vider complètement le texte. Donc, afficher le texte à points est égal à une chaîne vide. Et je vais juste le mettre ici dans histoire de Side of Tell, au cas où vous opteriez la nouvelle approche linéaire lorsque vous inviterez votre joueur à venir ici Donc, juste au cas où vous le feriez, je vais également effacer le texte ici. ne nous reste plus qu'à définir notre texte d'affichage et la propriété de texte que nous pouvons voir. Et nous l'avons mis sur un pied d'égalité avec notre histoire actuelle. Et nous voulons la propriété de l'histoire. Je vais m' assurer de l'épeler directement dans mon livre de contes, une histoire en majuscules Et nous devons remplir tous ces espaces réservés. Donc, pour ce faire, il suffit de faire un signe d'envoi, et d'ajouter ce que nous voulons. Ainsi, par exemple, nous pouvons opter pour la banane, et cela va remplir notre premier espace vide avec de la banane. Maintenant, nous avons plusieurs articles. cause de cela, nous devrions le faire sous la forme d' une liste comme celle-ci, tomber dans le coma et faire notre prochaine, c' une liste comme celle-ci, tomber dans le coma et faire notre prochaine, tomate, la suivante et ainsi de suite. Mais nous l'avons déjà fait. Nous avons déjà la liste ou le tableau de toutes nos chaînes. Ce sont les mots que nous avons créés pour les joueurs et auxquels nous avons ajouté tous nos textes soumis. Nous pouvons donc simplement venir ici et dire les mots aux joueurs. D'accord. Maintenant, nous allons vérifier les mots des joueurs Link, et nous disons que l'histoire est terminée, et nous allons appeler Endgame C'est bon. Maintenant, devons-nous l'appeler ailleurs ? Non, mais nous allons devoir appuyer sur notre bouton de redémarrage dans un instant, allons-y et assurons-nous notre bouton de redémarrage dans un instant, que cela fonctionne. C'est bon. Il peut donc y avoir un adjectif. Oui, joli nom, rock, verbe se terminant par ED, éduqué Un adverbe, rapidement, un nom pluriel fleurit. Et nous y voilà. Nous pouvons voir que notre ligne a été supprimée. Notre bouton indique maintenant rejouer au lieu de OK. Et nous avons notre message en haut de la page. Le joli ciel était d'une belle teinte rocheuse alors qu'ils s'éduquaient rapidement à travers les fleurs. Maintenant, j'ai deux S. C'est peut-être mon erreur ? Est-ce que c'était quelque chose que j'avais trouvé dans mon histoire ? C'est également possible. Et non, cela ne semble pas figurer dans l'histoire, donc c'était entièrement de ma faute. J'ai dû appuyer deux fois sur S. Mais voilà. Voilà notre histoire, et notre bouton Play Again ne fonctionne pas ici. La raison en est que nous essayons d'ajouter les mots de nos joueurs. Cela nous a amené à cette fonction à cause de notre erreur. Et si nous devions le regarder, paramètre, le nouveau texte n'est jamais utilisé, c'est parfaitement bien. Mais le problème que cela nous pose, c'est de nous dire que le texte du joueur n'existe pas, n'est-ce pas ? Nous ne pouvons pas utiliser les mots de nos joueurs. Je ne peux rien faire de tout ça. Eh bien, c'est bon. Notre problème est en fait dû au fait que nous appuyons sur un bouton. Parce que selon que notre jeu est terminé ou non, nous déterminerons si vous souhaitez redémarrer le jeu ou demander à nouveau à l'utilisateur, n' est-ce pas ? Donc je suis juste en train de les remplir. Ne m'embête pas ici. Si vous suivez utilisez les flèches parce que vous le souhaitez, c'est fini, vous allez rendre une piscine parce que nous renvoyons quelque chose, et cela nous donnera un vrai ou un faux. Pour le reste, nous ne faisons que rétablir un vide. Je vais donc les parcourir rapidement et les remplir. Et je pense que c'est le cas de tous. Je les ai tous, non ? D'accord, donc quand on appuie sur notre bouton, il ne nous reste plus qu'à vérifier si notre histoire est terminée Donc, si l'histoire est terminée et que nous voulons recommencer le jeu. Sinon, maintenant, appuyez dessus. Nous allons appeler Add to Player Words. Alors, comment redémarrer le jeu ? Eh bien, pour le redémarrer complètement, dans ce cas, tout ce que nous avons à faire est d'obtenir un arbre, et cela nous donnera notre arbre entier. Et tout ce que nous avons à faire est d' appeler pour recharger la scène actuelle, et ce sera comme si nous avions simplement cliqué sur Exécuter la scène actuelle ici en haut Si nous avions juste appuyé sur ce bouton pour la première fois. Donc, lorsque le rechargement de la scène actuelle démarre, nous devrions être à nouveau dans cette situation. Donc, adjectif, je vais juste le parcourir pour que nous puissions voir que nous avons quelque chose de complètement nouveau. Adverbe éduqué . Assurez-vous que je n'en mets qu' une seule cette fois, des fleurs au Nous y voilà. OK. C'est cool. Et nous rejouons. Puis-je avoir un verbe ? Nom Ran. Biscuit. Un autre nom, Brownie Un matin, le boulanger est allé courir et devrait dire « Run ». À sa grande surprise, un cookie s'est arrêté. Oh, j'ai dit Brownie au lieu de Brownie J'ai mis un R à la fin. Mes doigts m'ont trahi en orthographe aujourd'hui. Mais maintenant, nous pouvons rejouer, et une autre histoire peut commencer. Nous pouvons donc continuer à jouer à ce jeu aussi longtemps que nous le voulons. Et ce jeu fonctionne parfaitement pour nous. Et si jamais vous souhaitez ajouter une histoire, nous pouvons simplement accéder à notre livre de contes et vous pouvez simplement continuer à ajouter d'autres histoires et instructions, et cela continuera à fonctionner Nous n'avons pas du tout à ajuster notre code pour quelque raison que ce soit. Nous ajoutons simplement une autre entrée, histoire cinq, histoire six , histoire sept, et nous pouvons continuer avec autant d' histoires que nous le voulons. Maintenant, si vous êtes curieux de connaître cette erreur en jaune que vous avez vue plus tôt, elle nous indique simplement que le nouveau texte n'est pas utilisé pour le signal M, et c'est très bien. Nous n'avons pas à nous inquiéter à ce sujet. Ce n'est qu'une erreur jaune, qui ne fait que nous le faire savoir. Et on pourrait l'éteindre. Il y a certaines choses que nous pourrions faire, mais le plus simple est de simplement mettre un soulignement ici au début. C'est tout Maintenant, si nous l'exécutons, cette erreur ne s'affichera plus . Donc, ce trait de soulignement au début de votre paramètre indique simplement «  ignorer » s'il n'est pas utilisé, en gros Mais voilà, nous racontons maintenant notre histoire, et notre jeu est terminé. Soit nous racontons l'histoire, soit nous invitons l'utilisateur à continuer à jouer, et nous avons ou nous demandons de remplir d' autres champs Et nous avons un bouton Play Again au cas où nous voudrions continuer. D'accord, donc ça ira pour Mad Libs. C'est un jeu assez court que nous avons joué. Cela fait probablement environ une heure que nous avons passé à examiner cela, et vous avez commencé à mettre en place des fonctions, ces retours. Si nous avons utilisé des instructions Else à quelques reprises, nous utilisons des booléens Nous utilisons des dictionnaires, des tableaux, des classes. Nous utilisons beaucoup de choses ici, même s' il s' agit d'un jeu si simple, je dirais. Eh bien, avec ça, vous l'avez terminé. Félicitations. Donnez-vous une tape dans le dos. J'ai hâte de voir ce que vous allez créer dans le futur, et j'ai hâte que nous passions au prochain projet. 26. Ce que nous allons faire (espace rempli): Bien, cette semaine, nous allons faire monter les choses d'un cran au lieu de nous contenter d' texto, 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 avec une manette à deux joueurs D. Collisions. Peut-être que nous allons entrer dans des particules. Nous pouvons travailler avec certains générateurs. Et comme vous le voyez, si vous n'avez jamais joué à Frogger auparavant ou si vous n'en avez jamais entendu parler, vous voyez, nous allons travailler avec une interface utilisateur pour affichage en tête haute Nous avons des points que nous allons devoir suivre. Trouvez-y ma souris pendant une seconde. Mais non seulement cela, mais nous allons également voir si cela va le montrer ici ? OK, nous avons donc un certain nombre de grenouilles par joueur. De toute évidence, nous n' avons pas à y mettre de pièces. Mais c'est essentiellement le jeu ici. Nous avons donc 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. Et 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 Frogger si vous n'y avez jamais joué ou si vous n'en avez jamais entendu parler 27. Tilemap et nouveau TilemapLayer: D'accord. C'est encore moi ici. Et je voulais juste faire une avant de passer à Frogger Vous remarquerez que si vous utilisez une nouvelle version, Tao Map a un triangle jaune ici, qui nous que ce nœud va être obsolète, qui signifie qu'il va être retiré du moteur Ainsi, selon le moment où vous regardez cette vidéo, il peut que le nœud de la carte en tuiles n'existe plus. Et si je dois deviner, il sera supprimé dans la version 5.0 de Gato C'est juste mon hypothèse. Je ne sais pas quand il sera réellement retiré. Mais je vais vous montrer l' alternative qui a été ajoutée au cas où vous voudriez commencer à l'utiliser. Maintenant, au lieu du Tilemap, eh bien, si vous regardez dans le futur, vous savez quoi utiliser pour dissiper toute confusion Maintenant, avec la carte des tuiles, nous avons tout configuré ici, n'est-ce pas ? Et nous avons tous nos nœuds, désolé, pas nos nœuds, nos textures, notre route, notre eau, le terre-plein et notre maison. Et vous voyez, nous allons continuer à peindre ici, n'est-ce pas ? Nous pouvons entrer et simplement peindre sur l'écran. Et nous avons plusieurs couches ici dans une liste déroulante sur le côté droit, qui est toujours là en bas. Maintenant, c'est ce qui est différent. Ces couches seront désormais leurs propres nœuds au lieu de tout avoir à l'intérieur d'une seule carte à tuiles. Donc, tout ce que nous ferions à la place de cette carte en tuiles , c'est d'ajouter une couche de cartes en tuiles, n'est-ce pas ? Accédez à notre inspecteur, ensemble de tuiles, ouvrez cette configuration de tuiles, assurez-vous que c'est une mosaïque posée ici en bas. Et nous pouvons aller de l'avant et ajouter notre médiane. Nous pouvons ajouter notre route, et nous pouvons ajouter notre eau. Alors tout le reste serait exactement pareil, je ne pense pas que nous ayons abordé quoi que ce soit en ce qui concerne la collision ou quoi que ce soit d'autre ici. Vous ne devriez donc pas avoir à faire autre chose là-bas. Et puis, tout comme sur la carte à tuiles, vous pouvez entrer et peindre avec pour pouvoir continuer et vous assurer d'entrer, de sélectionner votre nœud, de sélectionner la tuile que vous souhaitez utiliser. Et bien sûr, vous pouvez entrer et commencer à peindre, comme vous le faites avec la carte à carreaux, n'est-ce pas ? Nous pouvons donc entrer. On peut y aller, boum , boum, le mettre dedans, prendre notre violet. Changez mon carreau, prenez nos violets, tombez sur moi, remplissez les pièces de la route. C'est vrai. Vous pouvez donc venir peindre la neige comme d'habitude. Maintenant, ce que nous avons dans une couche séparée est cette section d'accueil. Donc, ce que nous ferions, c'est passer à : nous allons maintenant ajouter une deuxième couche de cartes en tuiles. Prenez un autre jeu de tuiles, sélectionnez le carreau situé en bas, et nous vous apporterons cette tuile d' accueil. Et voilà. Maintenant, j'ai laissé que le mien est un peu par défaut ici, en taille par défaut, donc je veux probablement entrer et changer la taille des carreaux ici spécifiquement pour celui-ci. Mais cela étant dit, non ? Je peux simplement entrer, peindre, cartographier, sélectionner tout cela, et je peux entrer et je peux simplement le peindre, n'est-ce pas ? Je le tamponne comme avant. L'utilisation d'une couche de carte de tuiles et d'une carte de tuiles n'est donc pas très différente. Vous devez simplement vous rappeler que chaque couche aura son propre nœud vers le bas au lieu de simplement la sélectionner dans une liste déroulante. Et pour ce qui est du code lui-même, si j'entre et que nous y jetons un coup d'œil, nous allons jeter un œil ici. Normalement, nous recevons notre carte des tuiles. Nous appelons Get Cell source ID. Dans ce cas, nous transmettons le numéro de couche, puis la position de la carte, afin de nous faire une idée de ce sur quoi nous nous trouvons. Désormais, cette fonction existe à la fois dans la couche tilemap et dans la couche tilemap Je vais sélectionner Tilemap ici et vous pouvez voir ici, l'identifiant de la source Gell Je vais utiliser la loupe pour vous ici. Fais-moi voir. Obtenez l'identifiant de la source cellulaire. La première est la couche, puis les coordonnées, puis nous avons un drapeau facultatif. Avons-nous cela Mais si vous souhaitez utiliser la couche Tilemap, la couche carte de tuiles a exactement la même chose, exactement les mêmes fonctions ici La seule différence, c'est que nous ne transmettons pas de couche. Nous ne faisons que transmettre les coordonnées. Donc, si ma carte de tuiles ici, ma tuile était une couche de cartes de tuiles, dans ce cas, ce serait la couche zéro que nous utilisons. Je choisirais donc celui-ci l'eau médiane de mes rangs dessus, et je ne transmettrais position sur la carte, et c'est tout. Vous devez donc vous rappeler que toutes les couches seront des nœuds de couches de cartes de tuiles individuels à l'avenir. Et dans toutes les fonctions qui vous demandent une couche de cartes en tuiles, vous n'y insérez simplement rien . Ignorez simplement cet argument. Très bien, j'espère que cela dissipera toute confusion que vous pourriez avoir selon le moment où vous regardez ce film Et c'est là la principale différence avec laquelle nous travaillons. Très bien, prends soin de toi. Have yourself est une bonne idée, et j'espère que Frog vous plaira. 28. Créer l'arrière-plan: Très bien, alors allons-y et commençons à créer Frogger Et 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. D'accord. La première chose à faire est donc, d' autant plus que nos spreads sont si petits, réduire ou de ne pas les réduire, mais de réduire notre écran à la taille d'une borne d'arcade. Et pour ce faire, nous allons simplement passer au projet et accéder aux paramètres de notre projet. C'est bon. Je devrais donc commencer comme ça avec les paramètres avancés désactivés. Et vous verrez sur le côté gauche que nous allons simplement descendre dans la section d'affichage et entrer dans la fenêtre. Et nous allons régler la largeur à 336 et la hauteur à 240. D'accord ? Il s'agit de la taille d'un écran de borne d' arcade , de la résolution d'écran appropriée, et ce sera parfait pour nos petits sprites D'accord. Une fois que vous l'avez réglé, vous pouvez continuer et simplement fermer, et vous verrez que notre petite boîte bleue est devenue beaucoup plus petite qu'elle ne l'était auparavant. D'accord, donc 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, et la zone de pointage où nous devons amener notre grenouille. Nous allons donc configurer tout cela. De cette façon, nous pouvons passer directement à la configuration et au fonctionnement de notre jeu. Et les vidéos suivantes. D'accord, nous allons donc avoir besoin d'une scène en deux D. Cliquons donc sur deux D, et cela nous donnera un nœud deux D pour notre nœud racine. Et si vous voulez continuer et le renommer, vous le pouvez. Vous pouvez l'appeler Main si vous le souhaitez. Gestionnaire de jeu. Ça n'a pas vraiment d'importance. Si vous le souhaitez vraiment, vous pouvez simplement le laisser comme nom par défaut. Je vais laisser le mien par défaut pour le moment. Et afin de créer cela dans notre petit arrière-plan, je vais créer un nouveau Tilemap. Je vais donc appuyer sur le bouton Plus. Et nous allons continuer et sélectionner la carte en mosaïque dans le menu déroulant. S dans notre nœud de création. C'est comme Tilemap. Allez-y, double-cliquez dessus et sélectionnez-le. Maintenant, j'ai installé le mien ici. Je vais aller de l'avant et supprimer tout cela. 1 seconde. Très bien, vous devriez donc ressembler à ceci lorsque vous aurez sélectionné Tilemap Si vous ne l'avez pas sélectionné, allez-y et sélectionnez-le. Et ce que nous allons faire, c'est nous diriger vers la droite. Et nous allons passer au set de carreaux ici. Il reste vide pour le moment. Ce que nous allons faire, c'est cliquer dessus et passer à un nouveau jeu de vignettes, puis cliquer sur ce jeu de tuiles, 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. Donc, si nous allons dans nos sprites 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 même temps comme ceci et simplement les faire glisser dans notre boîte de vignettes. Donc, avant de pouvoir réellement les utiliser ici, comme vous pouvez le voir, nous ne pouvons pas cliquer sur ce que nous voulons faire. Je vais juste y faire défiler la page avec ma molette de défilement ou vous pouvez ajouter un signe négatif. La première chose que nous devons faire est de nous assurer que nous sommes sur l'onglet de configuration ici, sélectionner notre eau, et nous pouvons cliquer dessus, et maintenant nous avons cette boîte orange autour d'elle. Cela signifie que nous avons une tuile que nous pouvons désormais utiliser. Et je vais faire la même chose pour Road, Median et mon frère au foyer tout droit de l'autre côté. Maintenant, la maison est un peu plus grande. Donc je pense que c'est peut-être un ty, pas plus que ça. Voyons voir. Qu'est-ce qu'on a ? Oh, 26 c'est trop gros. Comment est-ce ? Je pense que ça fera parfaitement l'affaire. C'est bon. Y sont-ils déjà allés ? J'ai un 16 sur 24 pour cette tuile. D'accord. Donc maintenant, si nous cliquons sur Tile Map en bas de notre écran, nous devrions maintenant pouvoir cliquer sur et commencer à dessiner nos sprites Alors cliquez sur ma médiane, cliquez sur ma vignette violette ici, et faites simplement glisser une ligne vers le bas, allez sur ma route, et nous avons cinq niveaux de circulation. Nous avons donc besoin de cinq rangées de noir ici, trois, quatre et cinq. Et si nous revenons à notre image, nous avons alors une autre couche de violet, cinq couches d'eau. Un, deux, trois, quatre, cinq, puis nous avons une couche d'eau qui passe sous notre maison. Faisons donc une couche de plus là-bas. Allons chercher notre page d'accueil et allons-y cliquez sur un sprite et faites glisser votre souris dessus pour pouvoir sélectionner les trois Et placons-le. Oh, regarde ça. Il semble que nous ayons ce problème. Eh bien, qu'est-ce qui se passe ? Eh bien, nous sommes en train de remplacer nos tuiles hydrauliques ici. Ce n'est pas ce que nous voulons faire. Nous devons donc dessiner cela sur une autre couche, et je vais juste continuer en la remplissant d'eau jusqu' en haut dans les d'eau jusqu' en haut dans les deux dernières lignes. Je vais donc cliquer sur notre section d'accueil ici, et nous ne voulons pas les remplacer. Nous voulons le construire par-dessus. Vous remarquerez donc qu'ici, sur le côté droit de nos cartes en mosaïque, quelque chose qui indique la couche zéro, et si nous avons une liste déroulante, il n'y a rien d'autre. Nous voulons donc accéder à notre inspecteur de notre carte en tuiles, ouvrir la section des couches, cliquer sur Ajouter un nouvel élément, et nous avons maintenant une deuxième couche. De retour dans les cartes en mosaïque avec notre ligne d'accueil sélectionnée, nous pouvons accéder à la couche déroulante et appuyer sur la première couche. Et maintenant, nous pouvons dessiner directement dessus sans affecter notre final There you go. Nous en avons eu sept avec ça. Et juste pour être sûr de résoudre nos lignes un, deux, trois, cinq, non ? Ça m'a l'air bien. Si nous cliquons à nouveau sur notre numéro de TD, rien n'est génial. Voilà ce avec quoi nous travaillons. Et si vous vous souvenez quand nous examinons la configuration Alfoger, quoi elle ressemble ? Nous avons effectivement notre score, et cette information est indiquée en haut dans cette zone bleue vide, cet espace d'eau vide. Nous avons nos troncs, des tortues qui sautent à travers et qui nous aident à sauter par ici. à 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 c'est sur notre route noire que nos voitures vont apparaître Mais bon, nous avons maintenant tout configuré. Et juste comme ça, c'est assez facile de démarrer. La nouvelle carte en mosaïque est vraiment agréable pour se lancer rapidement. Avant, nous n'avions pas de couches, et maintenant que c'est le cas, cela facilite grandement la configuration de ce type de choses . D'accord. C'est notre parcours. Allons-y et passons à la partie suivante. 29. Créer le joueur: Bien, allons-y et créons notre joueur, mais avant cela, je vais le sauvegarder Je vais juste appuyer sur Control pour accéder à mon dossier Froger et enregistrer ma scène très rapidement D'accord. Donc, pour notre joueur, il aura sa propre scène que nous ajouterons. Nous allons donc cliquer sur l'onglet plus en haut ou ajouter un nouveau SEM. Nous allons passer à O. Et comme il s'agit d'un joueur que nous devons contrôler, s'agira d'un corps de personnage à deux D. Cela s'appelait autrefois un corps cinématique, et dans d'autres moteurs, vous pouvez entendre des gens l'appeler ainsi Mais ici, on l'appelle désormais un corps de personnage deux D. D'accord. Maintenant, ce corps de personnage, nous avons ce triangle jaune qui nous donne un petit avertissement, et il nous indique simplement que notre nœud n'a aucune forme. Je ne peux pas entrer en collision avec quoi que ce soit. Il n'y a aucune collision. Et pour le moment, c'est bon. On peut y flotter. Et ce que nous allons faire, c'est ajouter un autre nœud ici. Et ce que nous voulons ajouter, c'est un sprite deux D. Nous voulons ajouter un sprite animé Eh bien, nous voulons que notre sprike soit animé. Nous avons deux cadres pour cela. Alors allons-y et créons un sprite animé deux D. Et sur le côté droit de l'inspecteur, ouvrons la section d'animation où il est écrit Sprite frames Cliquons dessus et créons de nouveaux sprites frames. Et puis ouvrons ces cadres de sprites en cliquant simplement dessus D'accord. Nous avons donc 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 forme de plus ici. Et je vais le renommer en jump. C'est bon. Donc, avec Idol sélectionné, je vais ajouter Boger Idol PNG Et avec le saut, nous pouvons intégrer Boger Idol puis notre icône de saut, Boger Et maintenant, nous devrions pouvoir passer de l'un à l'autre. Chaque fois que nous voulons affronter ces ennemis, d'accord. Areo, à voir si on y joue. Nous sautons. Nous faisons notre petit rebond gonflable. Et vous remarquerez peut-être que le sprite est un peu flou ici dans notre moteur de rendu, mais ici, nous pouvons voir qu'il est censé être 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 dans notre système de fichiers, aller sur le côté gauche pour l'importation En fait, ce ne sera pas une importation. Tu l'as déplacé. Alors laissez-moi simplement aller de l'avant et vous dire où se trouve cette partie. C'est bon. Donc, si vous vous dirigez vers les paramètres de votre projet, Whoo. Où suis-je allé ? Accédez aux paramètres de votre projet et localisez la section de rendu et de texture ici pour accéder aux 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. Passez du linéaire au plus proche, continuez et fermez-le , et vous verrez vos sprites devenir beaucoup plus précis Donc, si vous voulez faire du pixel art comme celui-ci, c'est la valeur par défaut que vous souhaitez utiliser dans les paramètres de votre projet. Et maintenant, nous avons un beau broki pointu, d'accord. Et pour le moment, 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 inquiéterons quand nous arriverons à cette partie Je vais donc passer la touche Control S pour la sauvegarder, et je vais juste appeler ce joueur. Maintenant, si j'entre dans ma scène principale avec mon nœud deux D sélectionné, je peux cliquer sur No This plus pour un nouveau nœud, mais sur la chaîne à côté. Et cela nous permettra de citer une scène qui existe déjà. Et pour nous, ce sera notre scène de joueurs. Maintenant, on peut aller le chercher et on peut faire venir ce petit bonhomme. Et nous pouvons placer. Et nous pouvons faire ce que nous voulons avec ce petit bonhomme. Voyons voir. Transformons-nous. Nous savons donc que c'est en valeurs de 16. Donc 172 ne suffirait pas. Ce serait 176 si nous sommes sur des valeurs de 16. Je vais juste déplacer ma petite grenouille ici. 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 nous en avons besoin pour le moment. nous allons passer à la suivante, où nous aborderons mouvements de certains joueurs. 30. Mouvement du joueur: Très bien, allons-y et nous allons créer le mouvement pour notre petite grenouille puisse se déplacer de haut en bas à gauche, Donc, pour commencer, nous allons avoir besoin de quelques informations. Maintenant, si vous voulez utiliser les touches fléchées, alors I up, UI down, UI left et UI right existent déjà. Mais je veux utiliser le WASD. Je vais accéder à mon projet et accéder aux paramètres de mon projet. Et je vais entrer dans le mappeur d'entrée en haut. Ajoutez une nouvelle action, et je vais juste taper vers le haut, ajouter vers le bas à gauche et à droite. Maintenant, pour chacune de ces actions ici, je vais simplement aller sur le côté droit et appuyer sur le bouton plus. Et pour terminer, je vais choisir le plus positif. Je vais juste appuyer sur W sur mon clavier. Et je vais vous montrer à quoi ça ressemble. Ce que vous allez voir à partir de là, voyons voir. Est-ce que cette fenêtre est là ? Et je vais juste en parler plus haut. Voilà. Donc j'ai juste appuyé sur la touche W, et nous avons cliqué sur OK. Nous descendons, appuyons sur le plus, appuyons sur la touche. Et encore une fois, A pour gauche et D pour droite. Très bien, maintenant nous avons les commandes en haut, en bas, à gauche et à droite, et nous pouvons terminer Notre joueur va avoir besoin d'un script, et je vais prendre note de mon sprite animé sur Jump Je ne me suis pas débarrassé du premier sprite, donc je vais juste prendre celui-ci avec ses jambes écartées Et j'ai mis un script sur le côté du corps de notre personnage, t2d, sur la scène de nos joueurs Et nous en avons juste un vide, comme ça. Maintenant, ce que je vais faire, c'est créer une fonction appelée mouvement. Comme ça. Et c'est juste pour que nous puissions tout garder propre et organisé et que tous nos déplacements soient regroupés au même endroit. Tout ce que nous allons faire pour prendre en compte les entrées ici, c'est utiliser l'instruction if. La même instruction if que nous avons beaucoup utilisée. Nous allons donc si, puis nous voulons accéder à l'objet d'entrée ou à la classe d'entrée. Donc, entrez. Et puis pointez parce que nous voulons vérifier son action. Et nous voulons y aller avec la sortie de ce jeu. Ou simplement relâché ou simplement pressé. L'un ou l'autre fonctionnera spécifiquement pour ce jeu. Si nous maintenons la touche enfoncée, l'action est-elle enfoncée, c'est alors que le bouton est maintenu enfoncé. simple fait d'appuyer et de relâcher signifie qu'il suffit d'appuyer dès que le bouton est activé Lorsque vous appuyez dessus et que vous le relâchez , le bloc de code s' exécute lorsque vous soulevez le doigt. Je vais choisir J Press. Essayons ça. Et je vais utiliser le bouton, et c'est une chaîne qui aurait dû vous apparaître automatiquement Et ceci avec deux points, afin que nous puissions y entrer et créer le bloc de code. Et tout ce que nous allons faire, c'est faire deux choses. Nous devons déplacer notre petite grenouille. Nous devons le déplacer vers le haut de l'écran, et nous allons le monter d'un bloc, et tout sera divisé en 16 blocs ou 16 vignettes. Nous allons donc déplacer notre grenouille de 16 blocs vers le haut dans ce Nous allons donc obtenir notre position. Et si cela vous semble un peu plus logique, vous pouvez dire position du point automatique parce que vous vous déplacez vous-même auquel ce script est attaché. Et pour le moment, cela va nous donner des coordonnées X et Y. Deux chiffres y sont associés. Donc, 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. Et ceux-ci correspondent à Et ceux-ci correspondent à l'endroit où ils se trouvent à l'écran Donc, 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 et 233, dans mon cas. C'est donc de là que nous partons, et nous allons ajouter ou soustraire du X ou du Y pour obtenir nos mouvements Donc, comme nous voulons augmenter lorsque nous appuyons sur le bouton, nous allons affecter le numéro Y. Nous allons donc dire le point de position Y. Très bien, nous sommes seuls, nous voulons obtenir la propriété position, puis nous voulons en obtenir le numéro Y. Et pour monter en haut de l'écran, il faut en fait soustraire. Nous allons donc dire moins est égal. fait que nous puissions dire que c'est égal au nombre de position Y est égal à position Y moins le nombre somme, qui sont des nombres de somme, dans ce cas, ce sera 16. Donc, si nous devions simplement laisser les choses comme ça et faire notre course, c'est dommage que notre petite grenouille ne bouge pas Pourquoi ne bouge-t-il pas ? J'espère que vous vous en apercevrez ou que vous le saisissez avant que j'appuie sur le bouton de lecture. Nous n'appelons jamais notre mouvement nulle part, donc nous ne vérifions jamais vraiment la présence de tout cela. Et pour cela, nous allons simplement le mettre dans la fonction de processus ici. Mouvement. Et maintenant , on l'appelle. Oups, du moins ce serait le cas si nous pouvions l'épeler correctement. Nous y voilà. Et si nous essayons de le lancer maintenant, appuyez 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. Un père que 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 donc fonctionner notre animation. Alors, comment jouons-nous notre animation ? Eh bien, si nous regardons notre scène de joueur, nous pouvons voir dans notre script que nous pouvons descendre, suivre cette ligne facilement, juste un niveau avant le Sprite two animé D. Donc, trouvons ce nœud Et comme je l'ai montré auparavant, c' était d'utiliser ce signe du dollar, ce serait le moyen le plus simple. Et dès que vous commencez à taper Sprite animé , il apparaît. Et n'oubliez pas qu'il ne s'agit que d'un Sprite two D animé parce que c'est son nom Donc, si je devais donner un nom à cette banane et à une très mauvaise orthographe de banane, alors c'est ce que je devrais taper ici pour y accéder. Je vais juste rétablir ce nom par défaut. Et tout ce que nous allons faire, c'est faire appel à ce jeu. Alors, ne jouez pas. Et vous verrez apparaître les animations que nous avons créées. Nous allons donc utiliser le saut. Et si nous essayons maintenant juste avec cet ajout de nos fouets de ligne, vous devez jouer cette scène et non notre joueur Voilà. Vous pouvez voir que nous faisons notre saut, mais nous sommes un peu coincés dans notre saut maintenant. C'est donc un peu décevant. Alors, 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, aller sur le côté droit de l'onglet « Nœud », et nous allons connecter un signal indiquant que l'animation est terminée Donc, si nous double-cliquons dessus, une fenêtre contextuelle s'affichera pour connecter un signal ici, et nous allons simplement sélectionner le corps du personnage TD sur lequel se trouve notre script et appuyer sur le bouton Connect. Il va tout maintenir enfoncé pour utiliser mes touches fléchées pour l' afficher. Ouaip. Ainsi, chaque fois que notre animation aura fini de jouer, ce bloc de code s' exécutera maintenant. Et ce que nous voulons qu'il se passe ici, c'est revenir à notre état d'inactivité où notre grenouille est assise là. Donc pareil, nous allons avoir notre Sprite two animé D. Nous allons appeler play, et ça va rester inactif Si nous essayons cela maintenant, que ferons-nous ? Encore une fois, si nous jouons la bonne scène, comment nous essayons d'y parvenir, nous voyons maintenant que nous avons cela, comme un petit saut qui apparaît lorsque nous traversons l'eau avec un ping . C'est génial. Maintenant, le fait est que notre idole va jouer constamment à ce stade, notre idole joue, puis elle finit, et parce qu' elle finit, elle va jouer. Donc, même si cela ne posera pas vraiment de problème avec ce jeu, cela pourrait être quelque chose à garder à l'esprit à l'avenir. Donc, pour résoudre ce problème, nous pouvons réellement le résoudre à l'aide d'un médiator informatique. Et comme vous pouvez le constater, mon petit résultat, c'est que 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 si Animated Sprite sonne. Tu veux le symbole du dollar. Si Sprite est animé, deux points D. Pourtant, Animation. Non, ça ne s'appelait pas comme ça ? Eh bien, si nous accédons à notre sprite animé, d'ailleurs, vous pouvez y accéder. Il vous suffit de maintenir la touche Ctrl enfoncée et cliquer sur le sprite animé en deux D dans notre code Ensuite, j'ouvrirai la page de documentation pour. Et voici ce que nous recherchons ici. Obtenez une animation. Nous voulons donc obtenir de l'animation. Comme vous le voyez, cela n'apparaissait pas. Il est donc parfois utile de consulter la documentation de toute façon. Nous voulons faire en sorte que j'anime Sprite Tod Dot Get Animation. Et si nous devions y jeter un œil, l'animation en cours, la ressource Sprite frames, la valeur est modifiée, le compteur d'images, la progression des images ou la réinitialisation Mais ce que nous voulons faire, c'est obtenir ce qu'est cette animation. Cela nous ramènera donc essentiellement à 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. Et puis, quand nous jouons notre idole, nous allons simplement l'inscrire dans un onglet pour qu' elle se trouve à l'intérieur de notre cadenas. Et maintenant, nous allons vérifier notre courant à la fin de notre animation Si l'animation en cours est un saut, nous allons jouer au ralenti. Si on gère ça, on y va. Nous avons notre petit Bing qui a exactement la même apparence, mais nous n'allons pas jouer constamment l'animation inactive encore et encore. C'est lorsque l' animation inactive est lancée, souvenez-vous qu'elle ne joue qu'une seule fois, puis c'est terminé. Ce n'est pas en boucle. Et si le vôtre, par exemple, tourne en boucle pour une raison quelconque, alors allez-y, sélectionnez votre sprite animé, et s'il est en boucle, vous pouvez voir notre C'est parce que c'est activé, vous suffit donc de cliquer dessus pour le désactiver. Donc c'est 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, et si c'est le cas, nous allons jouer en mode inactif. Et lorsque le temps d'inactivité se terminera, cette instruction if ne sera vraie, car lorsque nous aurons une animation, elle sera inactive et non pas sautée. Donc, 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 donc une petite différence, une de ces choses qui se trouvent sur le backend et que le joueur ne remarquera jamais. Et 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 importants. Très bien, alors allons-y et nous pouvons maintenant notre bouton bas. Donc, si nous nous contentons de copier-coller ceci, nous pouvons obtenir un if au lieu d'un I. Nous voulons appuyer sur le bas plutôt que sur le haut, et nous voulons plus 16 au lieu de -16 Parce que si le négatif augmente, alors le plus va nous faire descendre, alors 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, et nous pouvons le faire en parlant de sa rotation. Donc, avant de sauter, nous pouvons obtenir une rotation automatique des points. Et si nous examinons nos joueurs, nous revenons à notre scène de joueur, comme sur le corps d'un personnage à l'intérieur de l'inspecteur. Si nous descendons, nous constatons qu'il y a une rotation ici. Et la rotation est exprimée en radians plutôt qu'en degrés. Donc, ce que nous pouvons faire, c'est dire que la rotation est égale, et nous pouvons utiliser cette fonction intégrée appelée Dg two RAD, et qui a peut-être changé ici. Et il semble que c'est le cas. On dirait qu'il a été renommé ici, donc deg two RD Il y a des soulignements dedans maintenant. Ensuite, nous allons prendre un argument sous forme de degrés. Donc, si nous disons 180, ce sera un revirement complet, non ? Parce que si nous tournons à droite, il fera 90 degrés. Si nous tournons à gauche, nous serons à -90. Quoi qu'il en soit, nous devons arriver à 180 ou à 180 négatifs. Donc je vais juste opter pour 180 degrés ici. Et cette fonction va convertir ces 180 degrés en radiance afin de pouvoir l' attribuer à notre rotation ici Maintenant, une rotation complète en radians vaut 3,14, et c'est de là que vient i. Ce serait donc pareil ici, 180 comme si nous devions simplement copier cette rotation égale Pi divisé par quatre. Cela nous donnera alors une rotation. Donc, si nous voulons diviser Pi par deux, cela nous donnera la moitié de notre rotation ici en radians Donc, si je devais vous montrer qu'avec Pi divisé par deux, oh, nous nous séparons de l'autre manière. Peut-être qu'il y en a un peu plus de deux. D'habitude, je n' utilise pas les radians moi-même. Nous, nous pouvons voir divisé par quatre, nous avons un peu un angle bizarre. Donc, vous voyez, cela peut parfois être un peu gênant lorsqu'il s'agit de radians Donc, c'est l'une des raisons pour lesquelles je préfère utiliser les degrés pour les radians, simplement parce que c'est quelque chose que je peux gérer un peu plus rapidement Et comme vous le voyez, nous y voilà. Nous retournons le visage vers le bas. Mais maintenant, nous ne sommes pas face à une sauvegarde, nous devons donc corriger cela dans notre code. Et nous ferons la même chose lorsque nous appuierons. Nous avons fixé notre rotation à zéro. Et si on devait y jouer maintenant. Nous y voilà. Maintenant, nous pouvons sauter vers le haut et nous pouvons sauter vers le bas. Et maintenant, et si nous voulions sauter à gauche et à droite ? Eh bien, nous pouvons les obtenir avec deux autres LCF ici. Et je vais juste les espacer pour qu'ils soient un peu plus lisibles ici. Nous y voilà. Donc, à partir de notre deuxième SIF ici, nous allons dire qu'il ne reste plus qu'à agir. Et au lieu de modifier la valeur Y, nous allons en fait modifier le X de notre position car X est à gauche et à droite. Et si nous partons à gauche, nous devons atteindre -16 ici Et des diplômes à lire. Eh bien, nous pourrions régler ce paramètre à 270, juste pour rester sur le côté positif, ce qui signifie que notre dernier Elsev ici, lorsque nous appuierons droite, nous allons modifier la position au lieu du Y, nous allons passer à plus 16 Et si nous nous déplaçons à droite, nous allons effectuer une rotation de 90 degrés. Donc, si nous allons de l'avant et essayons maintenant, nous devrions voir maintenant que nous pouvons sauter dans les quatre directions. Et nous pouvons nous déplacer. Et 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à. Et maintenant, nous devons en quelque sorte conserver notre position. Et bien, à l' écran, ce serait bien. Mais on pourra s'occuper de tout ça plus tard pour le moment. Nous avons juste notre mouvement, et cette vidéo devient un peu longue, alors je voulais juste garder le mouvement dans sa propre petite section ici. Nous y voilà. Nous pouvons courir comme notre propre petite grenouille en allant, en boing, en huant Mais c'est vrai, et voilà. Nous pouvons maintenant passer à la section suivante de notre code. Et je pense que nous allons ensuite créer nos véhicules et les faire nos véhicules et les faire commencer à traverser la route ici. 31. Créer les véhicules: D'accord. Aujourd'hui, nous allons aller de l'avant et créer les véhicules nécessaires à la traversée. Nous en avons maintenant deux autres. Voyons combien nous en avons ici dans nos sprites. Nous avons cinq voitures différentes. Allons-y. Et certains d'entre eux vont à gauche, d' autres à droite, et ils font déjà face dans la direction qu'ils veulent. Donc, 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, alors allons-y et créons une nouvelle scène avec notre bouton plus situé en haut de nos onglets Nous allons passer à un autre nœud, et tout comme notre joueur, nous allons utiliser les deux D du corps du personnage ici. Et nous allons lui donner un sprite Dans ce cas, comme nous n' avons aucune animation pour cela, nous allons simplement utiliser un Sprite deux D normal, et nous pouvons continuer à lui attribuer l'un de nos sprites Maintenant, 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 gauche pour le moment, il convient donc de le noter. Et je vais changer le nom de character body en D to be Truck et je vais l'enregistrer comme scène de camion. Et il va m'en falloir un peu plus. Maintenant, nous n'allons pas utiliser une forme de collision, bien qu'une sorte de collision puisse se produire ici, car il est évident que notre grenouille doit être écrasée d'une manière ou d'une autre si elle l'attrape Donc, pour m'y préparer, je vais créer une zone deux D. Et cela me permettra à peu près d'avoir une zone redéfinie que je pourrai vérifier Et pour sélectionner la zone dont la zone deux D est sélectionnée, c'est là que je peux introduire la forme de collision. Maintenant, la forme de collision porte ce petit triangle dessus, ce qui nous avertit. La forme de collision est donc sélectionnée. Nous nous déplaçons vers la droite vers notre section de forme, et nous en créons une nouvelle. Et ce sera juste une nouvelle forme de rectangle. Désormais, nous n'utilisons pas de formes compliquées telles que les crochets polygonaux. Et utilisez plutôt un polygone ou, désolé, utiliserez-vous la forme avec certaines de ces formes de base ici ? Parce que plus votre silhouette est tempérée, meilleure sera la performance Cependant, plus une collision est compliquée, plus elle sera précise. C'est donc une sorte d'équilibre que vous devriez trouver vous-même. Mais dans ce cas, heureusement pour nous, nous pouvons simplement utiliser ces rectangles et cela se trouvera, d' autant plus que nous recréons un jeu plus ancien comme celui-ci C'est bon. Maintenant que nous avons la forme de collision comme celle-ci, encore une fois, si vous ne l' avez pas remarquée, assurez-vous simplement que votre rectangle recouvre tout, chaque partie du camion ici. Et maintenant, notre camion va en fait avoir besoin d'un script dessus. Je vais en ajouter un. 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. Maintenant, pour ce faire, Bruni exporte une variable pour nous. Et ce que cela va faire, c'est que ce mot clé d'exportation va nous permettre de le changer dans l'inspecteur. Passons donc à l'exportation du signe arobase, et nous allons créer une variable, que nous appellerons direction. Ce sera un entier, et par défaut, nous pouvons simplement le mettre à zéro ou, désolé, nous pouvons le mettre à un. Cela n'a pas vraiment d' importance dans ce cas. Et 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 avoir besoin que ce soit négatif parce que nous allons nous déplacer vers la gauche, ce qui signifie que nous allons dans la direction négative. Je suis donc allée de l'avant et j'ai mis cela à un point négatif. Et maintenant, dans la fonction de processus, nous allons avoir besoin de notre personnage ou bien, personnage est correct, mais notre camion se déplace. Ensuite, pour pouvoir bouger, nous avons besoin de ce qu' on appelle se déplacer et glisser ou se déplacer et entrer en collision L'un ou l'autre fonctionnera pour qu'il y ait du mouvement ici. Dans mon cas, je vais simplement utiliser Move and Slide. Moving Collide, c'est bien aussi. Cela définit à peu près ce qui se passe lorsque deux corps physiques entrent en collision, n'est-ce pas ? Soit ils se cognent les uns contre les autres et y restent, 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 donc maintenant une diapositive mobile. Nous ne pouvons pas simplement y jouer maintenant car nous devons toujours contrôler ce mouvement. Je vais donc avoir ici une autre variable appelée vitesse, qui sera également un entier. Et je pense que je vais régler ça. Nous allons en essayer huit pour le moment, et nous verrons à quelle vitesse cela se produira. C'est peut-être un peu trop rapide. Alors tu sais quoi ? Je vais en fait essayer avec deux maintenant que j'y pense. Et tout ce que nous allons faire, c'est modifier la vélocité, et nous voulons changer le nombre X. Donc, tout comme la position, nous avons à la fois un X et un Y en ce qui concerne la vitesse, et la vitesse va contrôler le mouvement constant de notre objet. Passons donc à la vélocité, et à partir de quatre, intéressant. C'est peut-être un V majuscule parce que je sais qu'il y en a un intégré. Je suis assez sûr ici. Oh, non, c'est bas juste là. J'ai dû juste y mettre une faute de frappe. Mais voilà, nous pouvons simplement faire le point de vélocité X. Et cette fois, nous allons dire égal à égal. Nous n'allons pas dire moins ou plus car cela dépendra de notre orientation. Nous dirons donc la vitesse multipliée par la direction. Nous allons donc 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 de deux fois la direction. Donc, en ce moment, nous sommes à moins un, donc ce sera deux fois moins un, ce qui nous donnera moins deux et devrait nous faire avancer vers la gauche. Mais si nous faisons appel à l'inspecteur et nous le remplacions par un résultat positif, cela devrait être deux fois un, obtenir un résultat positif deux et nous permettre d'avancer dans la bonne direction. Donc je vais juste remettre le mien à moins un. Et 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, jouer cette scène et voir si elle bouge. Nous pouvons voir qu'il bouge, mais il se déplace bien trop lentement. Il va donc falloir ajuster cette vitesse. Revenons donc à huit. Huit, c'était peut-être bien. Essayons ça. Huit, ce n'est pas bien, mais c'est bien mieux. Alors voyons voir. Voulons-nous nous déplacer à 16 pixels ? 16 semble une bonne chose, même si cela semble assez facile, alors peut-être que nous voudrions augmenter ce chiffre. Et n'oubliez pas que nous pouvons toujours y revenir. Et comme nous utilisons la vitesse sur tous nos véhicules, nous pourrions facilement l'ajuster et la modifier une fois que les cinq voies seront réellement utilisées pour les véhicules Alors voyons voir qu'avec 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. Je vais donc juste utiliser 32 comme base. D'accord, 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 gauche et deux qui se déplacent vers la droite. Voyons ce que nous faisons 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 que rentrer, ajuster la forme du collesson si nécessaire, remplacer le sprite par une autre de nos voitures Et puis, si nécessaire, faites passer la direction de moins un à positive. Et cela 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. Et comme vous pouvez le constater, pendant que nous le conduisons, nos voitures roulent, elles traversent l'écran dans la bonne direction, et elles n'entrent jamais en collision les unes avec les autres Génial Maintenant, tout ce dont nous avons besoin, c'est d'un plus grand nombre de voitures qui apparaissent et nous ne voulons pas placer ces figurines, car si nous devons les placer manuellement, nous n'avons nous devons les placer manuellement, nous n' qu'une liste énorme de voitures et nous n'avons aucune idée du temps qu'il leur faudra pour apparaître ou du faudra au joueur pour terminer le niveau Nous allons donc créer des générateurs pour ces voitures. C'est bon. Et ces générateurs vont simplement faire apparaître le véhicule à une heure fixe Et nous pourrions avoir cinq générateurs différents si nous le voulions , un pour chaque voie Et voyons voir. Je pense que c'est ce que je veux faire. Je pense que je vais avoir ces cinq spanors différents de cette façon, ils pourront tous avoir leur propre temps. Et si vous le vouliez, vous auriez simplement pu définir une limite d'apparition ou 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 n2d de base Je vais juste appeler cet observateur. Voulons-nous l'appeler Spontero ? Ici, oui. Passons à en sponsoriser un, et celui-ci contrôlera mes meilleurs apparitions ici Et, vous savez, je pense que je vais également m'en servir comme base. Je vais juste me trouver une bonne place, et comme c'est le camion, je vais le ramener là-bas, et cela me montrera que si le camion apparaît à cette position, il sera là OK. Donc, sur mon générateur, je vais créer un nouveau script Ce sera juste un script DotGD générateur. Et encore une fois, nous allons l' utiliser sur presque tous nos Swannas que nous créons ici Alors, que devons-nous faire ? Eh bien, nous devons attendre un certain temps. Je vais juste supprimer ce commentaire de là, ainsi que celui qui se trouve ici à la ligne 9. Oups. Yo. D'accord, nous devons donc attendre un certain temps. Cette heure doit être aléatoire. Et ensuite, sur cette base, générez une vue. Donc, dans notre cas, nous allons charger le camion. Je vais donc aller de l'avant et ajouter une variable ici pour mon camion, et ce sera un préchargement ici. qui signifie que nous allons simplement charger la scène à l'avance. De cette façon, nous pouvons l'utiliser. Nous pouvons en donner l'exemple à 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 le seul véhicule ici, car il ne nous reste plus qu' à entrer et nous pourrons le modifier Je vais vous montrer comment nous pouvons également l' exporter. De cette façon, nous pourrions 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 d'abord, mettons-le en place et faisons-le fonctionner. Et 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 Et ici, nous allons passer à C' est là que nous avons besoin d'un nombre aléatoire. Allons-y et temps d'attente pour les appels. Il suffit d'appeler ça le temps d'attente. Et nous allons le mettre à flot et le définir comme égal pour voir, et un entier aléatoire et ne vous y trompez pas, nous pourrions simplement faire quelque chose comme ça et cela fonctionnerait Je ne pense pas que nous devions utiliser rand range, même si je peux me tromper à ce sujet. C'est bon, allons-y Et comme je veux vérifier cela mesure de sécurité, je vais maintenir le contrôle, cliquer sur Randi, et cela m'ouvrira sur cette page Et oui, je l'ai fait correctement. Donc, en utilisant le pourcentage 20, dans ce cas, comme vous le voyez, cela nous donnera un entier de 0 à 19 pourcentage 100 nous donnerait 0 à 99, et si nous faisions le pourcentage 100 plus un, cela nous donnerait un chiffre de 1 Donc dans mon cas, si j'en fais trois, nous aurons un temps d'attente de zéro, un, deux, je vais en ajouter un. Nous devons maintenant attendre au moins 1 seconde entre les apparitions des camions Donc ça va se situer entre un, deux et trois. Et nous pouvons voir à quoi cela ressemble. Nous pourrons toujours ajuster cela plus tard. Maintenant, notre temps d'attente, c'est ce que nous avons. Maintenant, nous devons réellement attendre ce laps de temps. Nous allons donc dire « attendez » et nous devons récupérer l'arbre pour le faire. Et 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 l'instant, nous allons dire wait, get tree point create timer, et ce sera notre temps d'attente ici. Notre temps d'attente aléatoire. Nous avons des temps morts. Nous allons attendre signal d'expiration qui sera envoyé à la fin de notre chronomètre, qui sera basé sur un nombre aléatoire, un nombre aléatoire de secondes. C'est bon. Une fois cela fait, nous pouvons créer une instance de notre camion dont l' , disons, VT pour véhicule ou VI pour véhicule est égale. Dans ce cas, nous allons dire camion, mais nous devons le remplacer par Dans ce cas, nous allons dire camion, véhicule. Truck Dot instanciate et ensuite nous l'ajouterons à nos éclaboussures Nous allons donc dire self point, add child pour l'ajouter à la scène et VI. C'est bon. Voyons comment cela fonctionne maintenant. Et ce n'est pas le cas parce que nous ne l'avons pas appelé. Passons à notre fonction REDI ici et appelons notre fonction spawn vehicle 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 ne le ferons apparaître qu'une seule fois Donc, ce que nous pouvons faire à partir de là, c'est après avoir ajouté un enfant, n'est-ce pas ? Après avoir ajouté le camion à notre scène, il s'appellera lui-même de manière récursive Cela va donc provoquer une boucle infinie. Cela va faire apparaître un véhicule sans rien faire, puis faire apparaître un Et quand c'est fini , créez un autre véhicule. C'est fait, créez un véhicule. Et ce sera toujours un nombre aléatoire à chaque fois que nous devrons attendre ou entre deux apparitions Donc, si nous y jetons un coup d'œil maintenant, nous pouvons voir qu'ils sont assez cohérents dans leur espacement, et alors c'était un espacement beaucoup plus grand Et nous nous sommes dit : « Oh, nous avons un espacement très serré sur celui-ci Il semble donc que le pourcentage trois plus un soit le plus court que nous voulons atteindre. Mais voilà. C'est donc à vous de décider si vous voulez qu'il y ait beaucoup de personnes proches les unes des autres. C'est donc à vous de décider si vous voulez tweeter ça 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 étant enfant à mon observateur, et l'observateur est là Donc, puisque le camion est ici à 00 dans sa position, oups. Ce camion est ici à 00 dans sa position ici. Et nous pouvons le constater si nous passons à la transformation 00. Ce sera exactement le même que son parent, qui dans ce cas, sera SponOro Donc, là où se trouve mon SponOro, il va apparaître à cet endroit juste en dehors de l'écran Maintenant, comment pouvons-nous exécuter un script pour pouvoir l'utiliser pour n'importe lequel de nos véhicules ? Eh bien, pour que cela fonctionne pour tous nos producteurs nous pouvons avoir le moins de travail possible ici Eh bien, tout d'abord, je vais changer nom de ma variable de camion en véhicule. Maintenant, nous allons l'utiliser pour plus d'un véhicule, pas seulement pour le camion. Cela signifie que je vais devoir le changer ici dans notre spawn, de truck point instanciate à vehicle point instanciate Et nous voulons que cette variable soit exposée à l'intérieur de notre inspecteur afin de pouvoir la modifier ici par nœud Nous allons donc effectuer le signalement avec exportation Et maintenant, qu' allons-nous exporter ici ? Eh bien, nous pourrions simplement le laisser tel quel, et cela fonctionnera si nous examinons l'intérieur de l'inspecteur. Mais si vous voulez être précis, cela s'appelle une scène pleine à craquer. C'est ainsi que vous l' exporteriez. Et puis nous pourrions même simplement supprimer le préchargement ici. Il nous suffit donc d'exporter notre véhicule au panneau et de le déclarer comme une scène de meute. Maintenant, si nous cliquons sur notre générateur et sur notre scène ici, nous pouvons simplement ouvrir le véhicule et dire « nouvel emballage  » ou Évidemment, 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 Et si nous le lançons, nous verrons nos camions apparaître comme ils le devraient, comme ils le faisaient auparavant accord ? Et si nous devions prendre, disons, voyons voir, la voiture 1 va également vers la gauche. Alors prenons une voiture, remplaçons cette scène là-dedans et jetons-y un coup d'œil. Et voilà. Nous l'avons fait fonctionner ici avec un autre véhicule. Donc, tout ce que nous avons à faire est de changer celui-ci. Et il y a beaucoup de voitures d'affilée là-bas. Encore une fois, cela peut se résumer à peaufiner les choses. Mais voilà. Je vais juste continuer, remplacer celui-ci par un camion et l' empêcher de fonctionner. Maintenant, je peux continuer et je peux créer plus de générateurs. Oups. Et nous faisons des incohérences historiques. C'est intéressant Je ne fais rien avec l'histoire. Je vais juste utiliser Control D ici. Et celui-ci est sponsorisé deux fois. Alors descendez, assurez-vous que tout est aligné. C'est le cas. Et ce sera la voiture 3. Je vais donc chercher la scène 3 de ma voiture, 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 Et nous pouvons faire la même chose pour nos fesses ici. Je vais donc le dupliquer une fois de plus. Je suis juste en train de le dupliquer avec Control D avec spanor sélectionné Et je vais juste le mettre ici pour ce véhicule. Et celle-ci n'est qu'une voiture. Je vais donc garer la voiture ici. Et on y jette un coup d'œil. Et nous voyons que toutes nos voitures qui se dirigent vers la gauche apparaissent toutes correctement. Fantastique Et maintenant, il ne nous reste plus qu' à les placer sur la droite. Et pareil, je vais juste dupliquer mon intervalle ici et le faire glisser vers la gauche. Et puis je l'ajuste ici en fonction de la position, ça devrait être bien. Et c'est la scène de la voiture quatre, de ma voiture quatre, et nous la dupliquons une fois de plus et nous la regroupons ici pour ma voiture deux sne. C'est bon. Maintenant, je devrais être en mesure de venir ici et de supprimer toutes ces voitures et camions temporaires. Et si nous le lançons, il devrait fonctionner parfaitement et faire apparaître tous nos véhicules dedans Maintenant, nous pouvons courir partout avec notre petite je dis « petite grenouille ». Voilà, nous l'avons. Et maintenant, nous avons juste besoin d' un moyen de traverser cette eau pour pouvoir y entrer. Et, bien sûr, un moyen pour notre petite grenouille de se faire écraser Je pense que nous nous occuperons du squishing la prochaine fois, donc nous allons tuer des joueurs ici 32. Mort et respawn du joueur: Bien, alors comment allons-nous faire pour que notre petite grenouille trouve Gist s'il se fait renverser par Gist s'il se fait renverser 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 Et nous allons nous en servir pour déterminer s'il a été renversé par une voiture en combinaison avec la zone 2 D qui se trouve sur nos véhicules. Et dans mon sprite animé, j'ai créé une nouvelle animation intitulée Death, et j'ai introduit le Frogger Maintenant que nous l'avons, nous avons également besoin de notre véhicule, nous allons devoir ajouter une connexion de signal ici, et celle que nous allons vouloir, c'est entrer dans la carrosserie. Et nous pourrions passer par ici et les connecter un par un sur tous nos véhicules ou nous pourrions gagner un peu de nos véhicules ou nous pourrions gagner temps et les connecter par le biais d'un script, d'un code. Et je pense que c'est ce que je vais faire ici pour gagner 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, et cette erreur est simplement due au fait que nous n'avons pas encore créé cette fonction. Nous voyons donc que nous saisissons notre zone deux D parce que c'est ce qui envoie le signal. Mettez en pointillé le nom du signal, qui est saisi dans le corps du message. Vous pouvez le voir sur la droite, et nous allons connecter ce signal à la fonction de connexion. Ensuite, nous créons ce qu'on appelle un appelable et nous transmettons un nom, et ce nom sera le nom de la fonction que nous voulons appeler Donc, un joueur touché, un coup de grenouille, vous pouvez opter pour Player Hit est le nom que je vais donner au mien. Et maintenant, il ne nous reste plus qu'à descendre et à créer une nouvelle fonction, Bunk Player Hit Maintenant, cette fonction transmet également une donnée. Si nous examinons le signal saisi par le corps ici sur le côté droit, vous pouvez voir qu'il passe dans le corps, et il s'agit d'un nœud de type deux D. Ce sera donc un nœud à deux D d'un certain type. Nous devons donc intégrer cet argument, donc body, node two D. Et juste comme ça, qui devrait maintenant connecter le signal pour tous nos véhicules, et pour tester la cellule, nous pouvons imprimer le corps, et nous verrons ça. Et j'ai également changé de joueur. J' ai renommé mon joueur du personnage Body TD en couche. 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 ainsi, nous devrions avoir une carrosserie imprimée chaque fois que nous sommes percutés par un véhicule sur la première voie d'essai Ouaip. Voie 2. Ouaip. Voie 3, c'est ça ? Voie 4 et notre dernière voie, le camion. Allons-y. Tous nos véhicules détectent donc lorsque nous sommes percutés, et nous pouvons voir que nous avons beaucoup de véhicules sur place à cette heure-ci. Cela peut donc être une bonne quantité, ou peut-être souhaitez-vous augmenter l'intervalle minimum entre eux. Encore une fois, cela dépend entièrement de vous et de la façon dont vous voulez vous y prendre. Qu'en est-il de la vôtre ? Mais grâce à cela, tous nos véhicules sont désormais connectés et configurés pour écraser notre petite grenouille Donc, si je vous ai dit que j'ai renommé le corps de mon personnage TD d'un joueur à l'autre , et que j'utilise un P majuscule, c'est parce que nous allons utiliser ce nom sur l'écran de notre véhicule. Nous allons donc dire si puis passer une chaîne ici, un joueur. Donc, si le joueur N. Nous voulons donc voir si cette chaîne se trouve à l'intérieur d'une autre chaîne, et si la chaîne que nous voulons vérifier est le nom du point du corps. Maintenant, souvenez-vous que le corps est l'objet avec lequel nous venons d'entrer en collision, le corps qui vient d'entrer dans la zone de notre véhicule, et la propriété du nom de celui-ci nous donnera le nom qu'il contient, qui dans notre cas est layer Donc, en gros, si notre nom est joueur, et plutôt que dans le nom du point du corps, nous pourrions simplement faire un double égal si nous voulons que ce soit un nom exact. Cela dépend entièrement de vous. Dans ce cas, cela ne devrait rien affecter. Enroulez notre instruction if avec deux points, passez à la ligne suivante, et nous pouvons maintenant exécuter notre PC de code. Alors, que voulons-nous faire lorsque notre joueur l'aura ? Eh bien, nous allons appeler la fonction DF sur notre lecteur. Maintenant, cette fonction n'existe pas encore, nous allons donc devoir la créer, mais le corps marque la mort. Et si vous voulez un cas de sécurité supplémentaire, vous pouvez dire si Body Dot a une méthode et transmettre le fil des décès, puis nous pouvons taper Body Point Death dans un autre cas. On peut y aller comme ça. Et cela évitera une erreur si nous devions continuer et exécuter cela. Vous voyez, nous n'allons pas avoir d'erreur ici parce que nous disons essentiellement : « OK, nous disons que si nous entrons en collision avec le joueur ici, alors si ce joueur, si ce corps a cette fonction, appelle-le Et à l'heure actuelle, il n'a pas cette fonction. Donc, si vous vouliez ajouter cette couche de sécurité supplémentaire en utilisant la méthode HAS, vous pouvez certainement le faire. Et je vais aller dans mon lecteur maintenant et créer cette fonction funk Dak Et ça ne marche pas Nous ne transmettons aucun argument avec cela. Alors, que se passera-t-il lorsque notre joueur mourra ? Eh bien, nous devons jouer à notre animation de mort pour corriger notre sprite Alors allons-y et faisons-le. Sprite animé deux points en D, la mort. Et jetons un coup d' œil à cela maintenant. Que se passe-t-il lorsque nous sommes percutés par un véhicule ? La Di Da, pauvre petite grenouille traversant la rue, à. OK. Nous vous voyons donc mourir, puis nous, ou Sprite, c'est la mauvaise voie Il ne fait pas face comme il le devrait. Corrigeons donc cela. Ensuite, nous allons simplement définir sa rotation. Et nous l'avons déjà fait lorsque nous avons insisté. Ajoutons donc cela à notre fonction de mort ici. Et nous jetons un regard qui devrait maintenant agir correctement, à plat ou en position. Génial Maintenant, ce que vous ne pouvez pas voir, c'est que nous sommes constamment en collision parce que notre forme de collision continue de heurter ces voitures Et en plus de cela, nous pouvons également continuer à avancer. Nous allons donc redevenir, et nous sommes à nouveau vivants. Nous avons donc une grenouille impossible à tuer. Ouais Bien, un accessoire compte la fois, empêchons notre collision de se empêchons notre collision de Et nous pouvons le constater. Et je vais vous montrer que si nous arrivons à toucher notre joueur, je vais juste imprimer Squished Frog Et vous pouvez voir que même si nous sommes morts, nous sommes toujours écrasés. Grenouille écrasée, et nous allons continuer à nous faire écraser même si nous sommes déjà 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. Et pour ce faire, nous allons simplement récupérer la forme de collision que nous avons créée, la forme de collision deux D, collision deux D, et que nous avons ajoutée à notre joueur Et nous allons utiliser ce que l'on appelle le différé. Et ce que cela va essentiellement faire si nous y jetons un coup d'œil, c'est appeler la méthode sur l'objet pendant le temps d'inactivité. Renvoie toujours Nou, pas le résultat de la méthode. Alors voilà. Notre mot clé ici est « l'appeler pendant les périodes d'inactivité ». Donc ça va s'appeler comme ça, quel que soit le nom que nous lui donnerons. Quand il aura la prochaine chance qu'il aura, gros, au lieu d'essayer de l'appeler maintenant alors qu'il n'en sera peut-être pas capable. Et les fonctions Sum vous diront de le faire. Donc, avant que nous n'appelions ça, vous n'avez pas besoin de les supprimer. Je vais juste vous montrer ici l'erreur. Donc, si nous arrivons ici et que je m'en vais, désactivé est égal à vrai, nous verrons si nous allons rencontrer une erreur ici. Et cela n'empêche pas notre jeu de fonctionner. Vous voyez, nous avons été écrasés deux fois, donc notre désactivation ne fonctionne pas pendant une seule Et deuxièmement, si nous allons dans notre débogueur et examinons les erreurs, cela nous dira que nous ne pouvons pas, nous ne pouvons pas changer l'état pendant le vidage des requêtes, utiliser le mode appel différé requêtes, Tu nous dit spécifiquement de l'utiliser. C'est pourquoi nous utilisons l' appel différé ici. Appel différé. Et voici une série de ce que nous voulons faire. Et dans ce cas, il va être désactivé. Si c'est désactivé, il faut un deuxième argument, et c'est ce à quoi nous allons le configurer. Dans notre cas, il sera réglé sur true. Et maintenant, si nous y réfléchissons, cette erreur va disparaître, et nous ne serons corrigés qu' une seule fois Et voilà. Cela ne va plus apparaître dans notre code. Et si vous craignez le report des appels lorsque nous sommes percutés de près par un véhicule, alors quand il y en a trois consécutifs, nous pouvons jeter un œil ici, et il est déjà désactivé avant même que le véhicule suivant ne nous touche. Maintenant, nous pouvons réellement mourir ici. Maintenant, nous devons nous demander comment nous en sortir. Maintenant, nous sommes simplement des grenouilles impossibles à comment nous en sortir. Maintenant, nous tuer parce que nous ne pouvons pas entrer en collision avec quoi que ce soit. Nous devons donc régler ce problème par notre mort, nous devons avoir une sorte de réapparition, nous devons nous assurer que nous ne pouvons bouger que si nous sommes bouger que si Oups. J'en supprime un peu plus que prévu. Bien, nous devons donc savoir si notre grenouille est vivante ou non notre grenouille est vivante ou Et nous pouvons le faire avec une fonction simple qui vérifie simplement s'il est vivant ou s'il est mort. Et en fonction de cette variable, nous pouvons soit nous déplacer, soit nous ne pouvons pas. Et pour cela, nous allons utiliser un ensemble d'états, qui sera un ENOM, comme vous pouvez le voir ici à partir de l'exemple Nous pouvons utiliser ces énumérations pour contenir des données spécifiques, je suppose que vous pourriez dire Et c'est essentiellement comme une liste d'options parmi lesquelles nous pouvons sélectionner. Et cela facilite les choses lorsqu' il s'agit de vérifier les choses. Et 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 et lorsque vous êtes dans un véhicule. Et c'est parce que les commandes à pied ne formeraient qu'un seul État. La natation serait un autre état, voiture serait un état et un avion en serait un autre, et cetera Et nous allons nous en servir pour savoir quand nous sommes vivants et quand notre grenouille a été écrasée Donc, pour créer cela, au lieu d'utiliser le mot clé var, nous utilisons Enum, le nom de l'Enum, qui 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 Et traditionnellement, d'après ce que j'ai toujours vu, c'est toujours dans les capitales, donc je vais vivre, puis tomber dans le coma jusqu'à la ligne suivante. Ce sont donc nos deux États vivants et morts. Ici, l'état par défaut sera Alive. Et nous allons créer une nouvelle variable appelée état actuel et nous allons simplement la déclarer comme étant un état. Ce sera donc l'un de nos États ici. Très bien, maintenant avec notre mouvement, tout ce que nous avons à faire est de vérifier si l'état actuel est égal à deux pour l'état en direct, puis de taper notre mouvement Alors maintenant, nous ne pouvons bouger que lorsque nous sommes vivants. Alors maintenant, quand nous mourons, nous devons lui dire que notre état actuel est désormais défini sur state equal deb. Donc, si nous l'exécutons maintenant, nous ne devrions pas être en mesure de bouger une fois que nous serons morts et écrasés. Et voilà. 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 de réapparition, respawn. Et une fois que nous aurons des vies ici, c'est ici que nous allons vérifier. S'il reste des vies au joueur, nous allons l'appeler ainsi. C'est bon. Alors allons-y, comment réagissons-nous ? Eh bien, 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 de position, non ? Position d'autodidacte, et nous devons la remettre à notre position de départ. Et pour le moment, ce sont 169 et 233. Je vais juste copier cette valeur très rapidement. Et à l'intérieur de ma scène principale, je vais ajouter un « Let's see ». Comment l'ont-ils renommé ici ? Ah, on y va. Il a été renommé Marker two D. Et donnez-moi une seconde. Je vais te le chercher . Voilà. Nous allons donc utiliser un marqueur deux D. Et je vais le configurer pour transformer pour le moment. Je vais juste coller la valeur. Je vais le mettre dans la même position que celle de départ de notre grenouille. Et je vais appeler ce joueur le lieu d'apparition. Et maintenant, lorsque nous répondons, nous pouvons faire en sorte que la position du point soit égale à celle de notre joueur. Ce n'est pas suffisant pour nous, donc je vais juste devoir le taper dans le joueur, le spawn, le lieu, la position du point Et cela devrait se produire assez instantanément. Allons-y donc et passons à notre processus ici. Et nous allons vérifier que l' état actuel de LI est égal à state point dead. Tu peux appeler Respawn, et cela devrait nous ramener au début, là où nous avons commencé, si tu te Et il semblerait que nous ayons un indice. Qu'est-ce qu'un mythe ? Oh, c'est juste. Lieu d'apparition des joueurs, nous ne pouvons pas y accéder car nous devons monter dans l'arbre, n' oubliez pas que nous sommes un joueur et que le joueur n'a pas un accès direct à cet emplacement playersp ici Nous devons donc suivre cette ligne et en monter une, puis cela nous amène à ce numéro deux D, puis à ce qu'aucun D ait accès au spawn de nos joueurs Nous devons donc en monter un. Et nous pouvons le faire de plusieurs manières. Nous pouvons aller de l'avant et obtenir un parent, un nœud. Et ce nœud G n'est qu'une longue forme d' écriture du signe du dollar. Et puis à l'intérieur se trouverait une chaîne indiquant le chemin menant directement à l'emplacement du joueur. Sinon, pour être un peu bref, nous pouvons simplement obtenir un nœud, et nous pouvons transmettre certaines informations. Nous pouvons utiliser un point, qui est égal à l'écriture de self, ou nous pouvons faire deux points, ce qui équivaut au parent que nous venons de supprimer. Et vous pouvez voir que c'est beaucoup plus court. Nous pouvons donc le faire avec le lieu d'apparition des joueurs de G parents. D'accord, et ça devrait régler le problème. Maintenant, quand nous serons écrasés, laissez-moi voir si nous revenons au début Seulement, nous ne pouvons pas encore bouger parce que nous devons fixer notre mise actuelle, souvenez-vous que nous ne pouvons pas bouger. L'état actuel est égal à State Live. Et en plus de cela, nous devons redéfinir notre animation pour qu'elle soit notre idole Wops Nous allons donc obtenir notre sprite animé TwoB et jouer à notre Idol Sprite, en le remettant à la normale Et quand nous l'exécutons maintenant, Splat uniquement maintenant, nous ne pouvons pas vraiment savoir quand nous recevons une réponse Donc, ce que je vais faire, tout d'abord, je vais utiliser Caldeford et le mettre de côté après tout le reste parce que après tout le reste je remarque que nous sommes écrasés deux fois. Nous verrons donc si nous pouvons corriger le problème en déplaçant simplement cette ligne Ce n'est pas le cas, d'accord. Ce n'est pas un problème. Nous avons juste besoin d' une petite minuterie, par exemple, par la suite, ce qui est très bien. Très bien, alors voyons de quoi avons-nous besoin ? Nous en avons besoin Notre symbole mort ne fonctionne pas très bien parce que nous dînons et nous réapparaissons instantanément. Nous ne pouvons rien dire de ce qui se passe. Donc, ce que nous allons faire, c'est qu'à l'intérieur de cette réapparition, cela créera simplement une attente Et nous allons faire ce que nous faisions avant d'utiliser Get Tree et créer ce chronomètre. Et nous allons le régler à 1 seconde. Cela semble long et le signal d'expiration. Donc, une seconde peut sembler longue dans un vieux jeu comme celui-ci, éclabousser puis nous réapparaissons. Génial Maintenant, nous nous faisons écraser plusieurs fois là-bas, ce qui est un peu dommage Je vais donc juste venir ici et créer un autre petit chronomètre pour 0,5, et je vais voir ce que je peux faire ou dans quelle mesure je peux le réduire grâce à des tests. OK, 0,5, on peut s'en sortir comme ça. Je vais essayer la version 0.2. Et je peux m'en tirer avec 0,2, donc nous pourrons peut-être même nous en tirer avec 0,1. J'ai ce très court délai ici. Oui, on y est. Maintenant, nous avons cette image d'une seconde pendant laquelle notre mort va apparaître à l' écran de notre pauvre petite Bronte écrasée. Et puis la réponse se produit. Génial Maintenant, si vous le souhaitez, vous pouvez définir ce nombre dans une variable ici pour indiquer le délai de réponse ou le temps de réponse, et ce sera le 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 un jour avoir envie de faire des modifications. Maintenant, si vous remarquez ici quand j'y allais, si je m'assois juste là, je pourrais me faire écraser par la voiture qui se trouve en dessous Non, je vais bien. Oh, mais je me suis fait écraser quand je me suis tournée sur le côté. Je pourrais donc modifier un peu plus ma position en Y. Je voudrais peut-être modifier un peu plus ma position Y, mais il ne s'agit que jouer avec la position et ça encore un peu plus 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 pour le moment, mais nous y arriverons lorsque nous arriverons à notre section d'interface utilisateur. Mais avec ça, prends soin de toi. C'est une grande quantité d'informations que nous avons passées en revue. Et j'espère que tu es prête. Nous passons à la section suivante du jeu, à savoir. 33. Mort de l'eau: Très bien, alors faisons en sorte que lorsque nous sautons dans l'eau, nous mourions et devions réapparaître. Eh bien, pour ce faire, nous pourrions le faire de différentes manières. Mais la façon la plus simple de procéder, é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. Sinon, tout ira bien. moi qui le fais. Passons au script de nos joueurs. Fermez les autres onglets. Nous allons donc passer au script de nos joueurs. Et ce dont nous aurons besoin c'est d'une nouvelle variable pour contenir notre carte en tuiles ici. Maintenant, nous n'avons pas besoin de le définir en haut, mais nous n'avons pas non plus à le définir constamment dans notre fonction que nous allons créer. Bien, donc allons-y et nous allons utiliser le mot clé « ready », ce qui signifie simplement et nous allons utiliser le mot clé « ready », que la variable que nous allons créer sera la même que si nous la définissions ici dans « ready Donc, si nous disions, par exemple, nombre est égal à dix, ce serait la même chose que si nous créions un nombre et mettions à dix ici, à l'intérieur du bloc prêt à l'emploi. Tout est prêt à l'emploi. Et cela est utile lorsque nous voulons mettre la main sur des nœuds spécifiques situés à l'intérieur de notre scène Et dans notre exemple, nous voulons obtenir cette carte en mosaïque ici Nous allons donc faire var Tilemap. Et nous allons définir le nœud à part égale, et bien sûr, il s'appelle actuellement simplement Tilemap. Maintenant, souvenez-vous de ce que j'ai dit, je crois que c'était dans la dernière vidéo. Au lieu d'utiliser getParent ici, nous pourrions le raccourcir et dans notre get no, il suffit de faire une barre oblique et d'avoir le même équivalent de G Je pense que je vais le faire juste pour que les choses soient encore un peu plus courtes. C'est bon. Nous avons donc maintenant notre carte des tuiles. Maintenant, ce que nous voulons faire, c'est vérifier sur quelle dalle nous nous trouvons. Je vais donc créer une nouvelle fonction ici. Je vais appeler ça le chèque, l'identification du portable. Oups. Cela va nous donner une tournure négative. Et ce que cela va faire pour nous, c'est que nous allons essentiellement l'utiliser pour abord connaître la position de la cellule sur laquelle nous nous trouvons. Nous allons donc parler de pause dans la barre, qui sera définie sur notre tilemap local à MAP Ensuite, cela prendra une position, et cette position sera la position de notre joueur. Maintenant, local to Map va simplement nous redonner une position, qui sera la position de la cellule sur laquelle nous nous trouvons. Et les cellules seraient chacune de ces cases oranges. Donc, puisque nous sommes debout ici, dès le début du jeu, il nous indiquera cette cellule, emplacement. Ensuite, la variable suivante que nous allons créer va simplement y entrer et dire : OK, c'est fait avec cette vignette. Maintenant, quel est cet identifiant, et il va nous en rendre un. Et pour obtenir cet identifiant, nous allons créer une variable ici. Et ce sera juste Tilemap. Des apparences. Carte en mosaïque. Pas encore. ID de la source de vente. Et cela va juste prendre les deux arguments. La première sera la couche sur laquelle il se trouve, c' est-à-dire la couche zéro. Et la seconde sera la position, nous avons déjà obtenue grâce à notre variable de pause cartographique ici. Donc maintenant, cet identifiant devrait être celui sur lequel nous nous trouvons. Donc, si nous arrivons et que nous imprimons cet identifiant, et que nous vérifions simplement l' identifiant du téléphone portable dans le cadre de notre processus, nous en voyons un être imprimé immédiatement pour la médiane , deux pour la route et trois pour l'eau. Pour ceux qui l'exécutent, nous pouvons regarder le résultat vers le bas. Nous en voyons un imprimé pour notre médiane, deux pour notre route. Et si je peux me rendre à l'eau ici, nous pourrons en avoir un pour le terre-plein, puis trois quand nous serons sur l'eau. Nous y voilà. Nous savons maintenant que cela fonctionne parfaitement, même si nous faisons tout le chemin jusqu' ici, car nous allons vérifier la couche zéro. Nous allons donc en avoir trois, ce sera notre eau puisque eh bien, nous le savons maintenant. Donc, ce que nous allons faire, c'est vérifier que mon identifiant est égal à trois, et c'est là que nous tuerons notre joueur. Très bien, alors nous entrons, appelons notre fonction de mort ici. Maintenant, lorsque nous touchons l' eau, nous devrions mourir. Nous y voilà. Nous pouvons donc maintenant mourir lorsque notre joueur touche l'eau et attendre la réapparition. Maintenant, cela peut être un peu éprouvant quand on vérifie constamment comme ça, quoi qu'il arrive Le meilleur endroit suivant serait donc appeler ici que lorsque nous sommes vivants, mais mieux encore, nous pouvons 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'ici, c'est bien. Saute, papa, attends la réapparition. Maintenant, bouge à nouveau. D'accord. Maintenant, nous pouvons noyer notre grenouille dans l'eau, et nous pouvons laisser notre grenouille se faire écraser par une voiture. D'accord. Nous avons donc maîtrisé tous nos décès maintenant. Il ne nous reste plus qu'à faire fonctionner nos plateformes, puis à obtenir nos petits points à gagner à la fin en sautant aux bons endroits, puis en configurant notre affichage tête haute avec notre score. Ensuite, je pense que nous aurons presque terminé. Je ne pense pas qu'il nous manque quoi que ce soit par la suite. Peut-être que vous vous trompez, mais voilà. Nous pouvons maintenant noyer notre grenouille dans l'eau, et vous savez maintenant comment identifier la tuile sur laquelle se trouve votre joueur Très bien, de le faire pour celui-ci. R. Je vous verrai dans la prochaine vidéo. 34. Plateformes d'eau: 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 qu'il nous reste à faire pour ces plateformes est simplement échanger les sprites et de les rallonger plus en plus. Donc, pour ma plate-forme ici, je vais simplement utiliser une configuration à trois sprites afin que nous utilisions le journal pour cet exemple, la fin, le milieu et l'autre extrémité, la droite, le milieu et le début Cela signifie donc que j' utilise trois sprites dans ma scène principale, la base de ma scène étant un corps de personnage que j'ai renommé plateforme Je pourrais le renommer en journal si je le voulais. Et il y a une zone 2 D avec un vaisseau de collision qui couvre mon journal de bord ici. Et j'ai connecté à la fois le signal d' entrée du corps et le signal de sortie du corps OK. Ainsi, une fois ces deux signaux connectés, le script de votre plateforme devrait ressembler à ceci, et nous sommes prêts à ajouter informations ou à tout y ajouter. Donc, avec la façon dont nous allons procéder, nous allons également ajouter des éléments à notre script de joueur. Et la majeure partie de ce travail portera en fait sur le script de notre joueur. Donc, pour le moment, passons à notre script de lecteur et ajoutons quelques variables que nous allons utiliser. abord, ce sera une plateforme, et ça va être un booléen, et c'est fondamental pour dire ou faire savoir à notre eau si nous sommes en sécurité parce que nous sommes sur une plateforme ou si nous ne sommes pas sur une plateforme, l'on appelle la notification de décès Nous allons obtenir notre plateforme var actuelle, et c'est un corps de personnage en deux D que nous transmettons. Ensuite, nous finirons par le régler . Pour l'instant, je vais simplement l'envoyer à N et nous aurons besoin d' une direction de plate-forme, qui est un entier par défaut. Nous allons passer à zéro, même si cela ne devrait pas avoir d'importance. C'est bon. 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 identifiant de cellule de contrôle, et nous allons ajouter des informations à notre instruction if. Nous allons donc dire si l'ID est égal à trois et si la plateforme est égale à false. De cette façon, nous dirons que si nous sommes dans l'eau et que nous ne sommes pas sur une plateforme, nous tuerons le joueur. Nos conditions y sont donc fixées. Voyons voir. Pour un joueur, nous allons également vérifier de son vivant. Si notre plateforme actuelle n' est pas égale à null, ce qui ne sera pas le cas, elle lui est juste égale pour le moment. Un objet lui sera assigné une fois que notre joueur figurera sur notre journal. Supposons donc que la plate-forme actuelle ne soit pas égale à zéro, alors nous pouvons simplement appeler notre position point plus égal, nous allons faire un petit calcul. Nous devons ouvrir et fermer nos parenthèses ici, car nous allons utiliser l'ordre des opérations pour nos calculs Nous allons parler de l'orientation de la plateforme. Fois 16. Nous allons donc l'utiliser comme plus un ou moins un, comme nous l'avons fait avec nos véhicules, et multiplié par 16. Nous allons donc soit déplacer 16 vers la gauche, soit 16 vers la droite, et nous allons le faire au fil du temps. Nous allons donc multiplier cela par Delta. De cette façon, nous ne sommes pas basés sur un cadre, nous sommes davantage basés sur le temps. C'est bon. ne nous reste donc plus qu'à définir l' orientation de notre plateforme, et nous pouvons le faire via une fonction. Amusant. Nous voulons suivre, allons-y avec la direction définie. Et cela prendra un argument d'un entier et ne renverra rien. Et tout ce que cela va faire, c'est qu'il va définir direction de notre plateforme égale à ter. C'est bon. Nous pouvons donc maintenant passer au script de notre plateforme, et nous n'avons pas besoin de ce bloc prêt à l'emploi. Nous pouvons le supprimer. Et dans le cadre de notre processus, nous voulons que notre journal, dans mon cas, continue de bouger. Je vais donc procéder et faire en sorte que le point X plus soit égal à 16 fois Delta. Cela va constamment le déplacer vers la droite. I lorsque nous entrons lorsque notre joueur entre dans la zone. Nous allons donc définir la plate-forme ici sur true, et nous allons configurer notre plate-forme actuelle sur notre journal ici, ma plate-forme ici. Je vais donc prendre la plateforme Body Dot et définir cela comme vrai parce que maintenant nous sommes sur la plate-forme et que le corps, je crois que c' était une plateforme en bordure de trottoir. Oui, la plateforme Curb est égale à cela. Et quand le corps est sorti, nous allons faire le contraire, donc nous allons nous mettre en place Au lieu de vrai, nous allons le définir sur faux. Au lieu d'une cellule, réglez-la pour qu'elle sache. accord ? Donc, ce que nous faisons jusqu'à présent c'est lorsque nous sautons sur le rondin, qui se déplace actuellement vers la droite à tout moment Pendant qu'il fait ça, OK. Redémarrez ça. Notre journal se déplace actuellement de 16 % vers la droite 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 définir la variable de plateforme notre joueur sur true. Ainsi, lorsque nous vérifierons l'identifiant de la cellule pour voir si nous sommes debout sur l'eau, plateforme sera vraie et notre joueur ne sera pas tué. Ensuite, nous définissons la variable de plateforme de courbe de notre joueur pour la plateforme actuelle égale à soi. Donc, le corps du personnage qui se déplace représente notre plateforme. Et sur cette base, nous pourrons déplacer notre personnage ici. La plate-forme actuelle n' est donc pas égale à null. Donc, si nous sommes sur une plateforme actuelle, nous allons déplacer nos froggi dans la même direction et à la même vitesse nous reste donc plus qu'à appeler cette fonction que nous avons créée set direction. Donc, le corps est un point ou une direction définie, et cela prend un entier, ce qui signifie que nous allons nous déplacer vers la droite. Nous en utiliserons un positif. Et 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, nous finissons par y mourir. Il faudra peut-être le mettre à jour. Il y a un moment. Ramène-en un nouveau. Va là-bas, donne une autre chance à papa. OK, je suis en train de mourir, donc mes signaux devront peut-être être reconnectés Je vais le déconnecter et le reconnecter. Et je vais faire de même avec ma sortie, déconnecter et reconnecter la sortie de mon corps Et nous verrons si c'était le problème. OK. 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 if à l'intérieur de notre identifiant de cellule de contrôle, je vais utiliser un poids et faire ce que nous avons fait auparavant avec Get tree, create timer, et nous allons juste faire une petite pause de 0,1 pour obtenir ce signal de temporisation Et 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, et nous partons. Et dès que nous sautons, nous pouvons retourner de l' autre côté si nous le voulons. Et quand même, 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 ? Je suppose que nous pourrions dire modulaire d'une manière, une manière qui sera plus conviviale, afin que nous puissions constamment changer si nous avons puissions constamment changer si deux sprites, trois sprites, un sprite, la taille de notre forme de collision, et avoir tout cela malgré tout, et, je suppose, définir notre direction afin que nous puissions à droite et certains à droite ou à gauche. Eh bien, nous allons continuer et exporter la direction d'un entier. C'est à zéro par défaut. Oh, j'ai la barre de mots là-dedans. Nous y voilà. Maintenant, je veux aller sur ma plateforme. Je peux le remplacer par un au lieu de zéro. Nous pouvons prendre la direction et la transmettre ici lorsque nous appelons set direction. Et plus égal, et nous pourrions faire la même chose ici où nous avons une direction Whoops multipliée par 16 Et nous pouvons aller de l'avant, vérifier et nous assurer que tout fonctionne toujours. Nous n'avons rien cassé. OK ? Les archéologues sont toujours en mouvement On peut sauter dessus et c'est bon. OK ? Nous n'avons donc encore rien cassé. C'est génial. Et voyons voir, de quoi d'autre avons-nous besoin ? Eh bien, je suppose que ce serait ça. Et nous pouvons simplement continuer et définir ou créer toutes nos différentes plateformes l'aide du même script. Ensuite, nous avons simplement créé un sponder pour cela, comme nous l'avons fait avec nos camions Je reviendrai tout de suite pendant que j'en créerai quelques-uns. Très bien, donc je suis allée de l' avant et j'ai créé trois longues tortues également, et j'en ai juste quelques-unes ici dans la scène. Et comme vous le voyez, allez-y , jouez à cette bûche, passez aux tortues suivantes. Ensuite, sautez vers la droite. Sautez sur ma tortue, attendez, sautez sur le rondin, et je suis prête à sauter dans ce qui serait notre espace éolien. C'est bon. Nos plateformes fonctionnent donc certainement très bien maintenant. C'est génial. Je tiens à noter que j'ai ajouté un wait for 0.1 sur le corps Entered avant de changer de plateforme dans notre script de plateforme. Je tiens donc à en prendre note. Et maintenant, tout ce dont nous avons besoin , ce sont nos géniteurs. Très bien, alors allons-y et créons-les. Et nous allons les fabriquer efficacement comme ceux que nous utilisons ici pour camions. Ensuite, nous allons nous procurer ou ajouter un no deux D, nous l'appellerons générateur de plateforme. Et nous allons commencer à les aligner. Alors nous en aurons un là-bas. Il y en a un là-bas. Ah, il y en a un qui y ressemble. OK. Ce look le fait même. En fait, c'est un endroit un peu bizarre. Oui, vas-y. Et puis il nous en faut deux de l'autre côté pour surmonter nos obstacles Un merci et un autre pour le défi que nous avons dû surmonter. C'est bon. Cela semble donc être de bons points d'apparition. Ceux-là sont un peu proches. Aidez à les soutenir un peu. Et nous allons avoir quelque chose de similaire à notre générateur de camions, alors je vais simplement copier notre générateur de camions. Et voyons voir. Est-ce que ce sera le même nom différent pour le véhicule. Oui, à peu près. Nous pourrions donc 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 veux faire quelque chose de différent 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 le générateur de ma plateforme, ajouter un nouveau script Et là, je vais aller de l'avant et simplement coller les scripts du véhicule. Je vais appeler ces plateformes. Oups. Ce n'est pas ce que nous voulions. Nous allons remplacer cela par platform point Instantiate PI for platform Instance, self at Child Temps d'attente Tu vois, c'est là que le problème va entrer en jeu. Donc je pense qu'on va voir. Nous allons passer à 1 ou 2, et nous en ajouterons trois. Nous verrons donc comment cela fonctionne. Ensuite, nous passerons d'un véhicule d'envergure à une plate-forme d'apparition Donc, celle-ci va être notre scène de journal. Scène de plateforme. Le prochain , encore une fois, ce sera pareil. Je vais simplement faire glisser mon script vers le haut et joindre à tous les poners de ma plateforme Et deux, c'est ma scène de journal. Trois, c'est la plate-forme en rondins, puis quatre et cinq seront mon terrain de jeu. D'accord. Donc, si nous nous débarrassons de ces plateformes, déplacez mon joueur en dessous de la colonne pour que la grenouille puisse s'asseoir dessus Voyons si cela fonctionne. Oui, oui, je traverse tout le chemin. Oui, voici mes tortues. Eh bien, il semble que nous devions modifier ces temps d'attente. Cela va permettre à 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. accord ? Essayons donc plus dix. Cela nous donnera donc une variation de 11 et 12 secondes. Oh, qu'est-ce que j'ai trouvé entre ces voitures ? R Donc, 11 et 12 secondes peuvent être un écart trop faible dans ce cas. Donc, à ce stade, nous sommes juste en train de peaufiner pour voir ce qui convient le mieux ici Mais peut-être que nous allons en essayer cinq et six. Et je vais sauter de l'autre côté, et nous verrons à quoi ressemble ce type de 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 cela ne semble pas être le cas, ce qui est formidable. Sinon, si vous voulez les coder un peu plus en dur ou les rendre différents en particulier, vous venez ici et vous faites votre temps d'attente ici et nous en ferons un float, pas un flat. 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 du temps exact que vous avez attendu par intervenant, vous pouvez le faire de cette façon Je vais continuer avec ce peu de randomisation ici. Et tu sais quoi ? Je vais y aller avec Ted. Et je pense que cela suffira pour nous, car nous avons maintenant nos sponsors. Nous avons nos plateformes. Tout semble donc fonctionner. Nous pourrions le traverser. Et je pense qu'ensuite, nous pouvons 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. D'accord. Donc, c'est ça. Nous en avons fini avec notre plateforme de les créer et de les piloter. Ensuite, nous allons couvrir la zone où nous sautons dans notre zone de vent et où nous y faisons apparaître notre petite grenouille D'accord. Je vous verrai dans le prochain. 35. L'espace gagnant: D'accord. concerne la zone du vent, vous pouvez voir que j' ai une nouvelle scène ici, juste une zone deux D avec une forme de collision et un sprite deux D dans lequel se trouve ma grenouille natale En tant que texture, si elle est désactivée ou visible, elle est désactivée par défaut. Vous pouvez le faire en cliquant sur le petit globe oculaire ici. Et WindSpace possède un script, ainsi qu'un signal saisi dans le corps qui y est connecté Et pour le script, nous allons simplement faire en sorte que la zone Win de Body Dot soit réglée sur true. La zone de victoire est une nouvelle variable qui a été ajoutée au jeu. L'état actuel du point corporel est défini sur body point sta point win. Nous avons donc ajouté un nouvel état ici, donc nous avons maintenant Alive, Dad et Win. Ensuite, il ne nous reste plus qu'à obtenir notre sprite deux D, obtenir la propriété visible, à la définir sur true Et pour ce qui est de notre lecteur éviter tout problème et corriger un petit bogue, j'ai cliqué ici. L'état actuel de LF est égal à stat point dead. J'ai mis notre poids d'une seconde ici et je l'ai retiré de la fonction de réapparition. Avant, il se trouvait ici au sommet. Je l'ai juste sorti et transféré là-haut dans notre État et cela devrait être tout ce que nous avions à faire. Nous pouvons maintenant revenir à notre scène principale et importer notre zone de vent, notre espace éolien, et simplement l'intégrer dans chacune de nos petites cases. Et 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 Vous ? J'ai donc le mien qui couvre tous mes domaines. Et si vous voulez vérifier vos zones de collision et toutes ces zones de débogage, il vous suffit de vous rendre dans le menu de débogage en haut, et vous aurez la possibilité d' afficher les formes de collision visibles Et si vous le faites, lorsque vous l'exécuterez, vous verrez que nous pouvons voir toutes nos petites boîtes de collision ici. Pour tout. Nous y voilà. Donc, si vous le 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. Et vous verrez une fois que nous serons remontés. Nous devrions avoir un autre journal. Ça y est. Et nous pouvons déclencher notre victoire. Yo. Et remarquez que nous n'avons été complètement imprimés sur notre console là-bas. Et lorsque notre état est notre état actuel au point gagnant, nous réapparaissons puis remettons la zone de victoire à false Maintenant, nous utilisons également win zone down dans notre identifiant de cellule de contrôle. Nous avons donc ajouté une autre condition ici. Donc, si l'ID est égal à trois et que la plateforme est fausse. Donc, si nous sommes sur l' eau, nous ne sommes pas sur une plateforme et notre zone de victoire n'est pas vraie, ou vous pourriez dire que la zone de victoire est égale à fausse. Ce serait une autre façon d'écrire. Alors on peut appeler mort. Donc, si nous ne sommes pas dans la zone du vent, nous ne sommes pas sur la plate-forme et que nous sommes sur l'eau, nous tuons notre grenouille Sinon, notre mise en jeu devrait être déclenchée, 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, c'est à vous de décider si vous laissez la grenouille activée ou non. Si vous le souhaitez, vous pouvez entrer et ajouter un nœud de temporisation. Tu pourrais venir ici et ajouter une minuterie. Et puis réglez ça sur, je ne sais pas, disons 5 secondes. Ensuite, nous pouvons entrer ou plutôt connecter leur signal d'expiration à notre espace éolien et à ce délai Nous allons placer notre sprite en deux D visibles par Voss, et juste après l'avoir transformé en Tro, nous pourrons commencer le temps Nous pouvons donc obtenir le chronomètre, Col Start. Si nous devions procéder de cette façon, c'est à vous de décider. C'est là qu'un peu de design va entrer en jeu. Dans quelle mesure voulez-vous que votre jeu soit authentique et personnalisé , etc. Donc mes serrures commencent à apparaître. Allez. Yo, donc je peux venir ici et nous attendre de passer. Donc, si nous utilisons le chronomètre, notre grenouille, notre petite grenouille locale va apparaître pour la victoire, puis au bout de quelques secondes, elle va disparaître pour que vous puissiez la voir là-haut et elle repart, elle a disparu. Donc, si vous voulez que ça disparaisse comme ça , c'est comme ça que vous le feriez. Nous pouvons simplement ajouter ce chronomètre à votre espace éolien, le régler dans l'inspecteur selon la durée que vous souhaitez. Démarrez le chronomètre après avoir configuré le sprite pour qu'il soit visible. Et lorsque le compte à rebours expire, réglez-le sur false. D'accord. Cela suffira donc pour notre espace éolien, et nous n'avons qu'à regarder notre écran tête haute, notre HUD ou notre Qu Wee et à créer un système de score D'accord. Voilà, et je vous verrai dans le prochain. Nous avons presque fini de nous créer une grenouille ou un clone. 36. Correction des fuites de mémoire: Très bien, tout le monde, aujourd'hui 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. Et nous avons cela à deux points de vue. Je veux dire, techniquement , plutôt dix, mais jetons un coup d'œil. Si nous y jouons, jouez à ce jeu, et je vais juste le sortir ici. C'est moi qui vais devoir le glisser pour vous. Vous pouvez donc voir tout apparaître hors écran, et ils arrivent, ils arrivent, et il suffit regarder ces voitures monter sur les plateformes en haut et faire de même Ils vont continuer et ils vont y aller pour toujours. Ils ne s'arrêteront jamais. Et c'est ce qu' on appelle une fuite de mémoire. C'est bon. Je vais donc simplement le laisser 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 situé en haut de notre arborescence de scènes, qui n'est disponible que lorsque le programme est en cours d'exécution. Et si nous appuyons sur la télécommande, jetez 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 Et pareil pour tous les autres spawners. Et nos générateurs de plateformes Nos générateurs de plateformes ne sont pas trop mal, car leur durée de vie est beaucoup plus lente que celle des voitures, mais ils vont durer éternellement et ils ne disparaîtront jamais Ils ne seront jamais libérés de leur mémoire. Vous aurez donc finalement ce petit jeu qui pourrait prendre 128 Go de RAM juste pour continuer à y jouer Cela prendrait beaucoup de temps, mais tout finirait par s'additionner. Corrigeons donc ce problème très crucial, je suppose, nous l'appelons un bogue, et c'est très simple 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 vue par fenêtre, j'ai un ensemble de chiffres que je vais utiliser ici. Et ce que nous allons faire, c'est que pour le moment, je suis dans le script de ma plateforme et dans le processus ici. Je vais juste vérifier si la position globale a obtenu X, maintenant la différence entre la position et position globale est que si nous allons sur nos plateformes 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 par-dessus tout, cela déterminera notre position globale telle que nous la verrons à l'écran, quel que soit le parent. Par exemple, si nous examinons notre espace de victoire ici, nous pouvons voir que sa position notre écran principal est 24 et 45. Et ce sera plutôt un espace mondial, alors que si nous y allons, nous pouvons voir notre espace éolien, notre position locale ici est à 00. Ce sont donc deux chiffres différents. J'espère donc que vous avez du sens quant à la raison pour laquelle nous utilisons la position mondiale ici. Et, bien sûr, nous voulons la propriété X parce qu'elle nous permettra de contrôler notre gauche et notre droite. Donc, si notre X est supérieur à 436, cela représente environ 100 pixels hors écran vers la droite Et si l'on se fie à l'endroit où se trouvent nos sponsors, cela laisse encore assez de place pour aller au-delà de cela. Donc, si notre point de position globale X est supérieur à 436 ou si notre point de position globale X est inférieur à moins 100 Nous allons donc environ 100 pixels hors écran, dans les directions gauche et droite. Donc, si l'une ou l'autre est vraie, tout ce que nous allons faire, c'est nous libérer de points Qu. D'accord. Nous devrions donc maintenant voir les plateformes de personnages se désactiver mutuellement ou se supprimer mutuellement de notre mémoire Et il ne s'agit là que d'une solution potentielle. Pour quelque chose comme ça, une autre solution, qui, si vous dépendez de votre jeu, par exemple, si vous faites quelque chose comme un enfer, vous devriez opter pour on appelle le regroupement d'objets, et nous pouvons parler de regroupement d'objets dans une vidéo de fond si vous avez raison. Je vais donc passer à vous devriez opter pour ce que l' on appelle le regroupement d'objets, et nous pouvons parler de regroupement d'objets dans une vidéo de fond si vous avez raison. Je vais donc passer à mon sponsor point GD ici, Mes véhicules Et voyons voir. Lequel recherchons-nous ici ? Sur le script de notre véhicule. Nous y voilà. Ce n'est donc pas notre temps sur un script de véhicule, et pareil à part le processus. Je vais coller le même code. Si le point de soulignement global X est supérieur à 436 ou si la position du trait de soulignement global X est inférieure à moins 100, le point automatique q Et maintenant, si je continue et que je m'occupe de ça, et oups, nous sommes dans la bonne scène, notre scène principale ici Je vais procéder à une pause très rapide, aller dans notre arbre isolé. Et nous pouvons jeter un œil à nos machines de rechange habituelles, voici où se trouveront les voitures Voici ma fenêtre de jeu pour y accéder Et si je continue et que je laisse ça jouer, non ? Nous avons donc des filets de voitures ici, et nous pouvons le voir ici Et je vais juste étendre la fenêtre vers la droite. mon erreur. Il semblerait que j' ai plutôt attrapé Goto Allez. Et 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é. Et vous pouvez voir les plateformes en haut faire de même. Et les mêmes choses se produisent sur le côté gauche, hors écran, ce que nous ne pouvons pas voir pour le moment. Donc voilà, avec cette simple ligne de code, techniquement deux lignes de code, nous avons réparé notre mémoire, oh, ça ne fait que me quitter la tête en ce moment. Fuite de mémoire. C'est marrant puisque nous parlons de mémoire. Mais voilà. Avec cela, nous avons résolu notre problème de fuite de mémoire. Et je vais vous montrer un problème ici. Ce n'est pas vraiment un problème, mais juste pour vous montrer un autre exemple ici. Nous allons sur la plateforme. Si nous utilisons 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 qui concerne les tortues , disparaître dans cette zone C'est bon. Regardez-les, ils arrivent. Donc, lorsque nous utilisons cette position locale, c'est parti. Vous voyez qu'ils disparaissent bien trop tôt. Ils passent à peine à l'écran, ils se déplacent à peine ici, et ils sont partis. C'est pourquoi nous devons utiliser la position globale. C'est bon. Je voulais donc juste vous le démontrer un peu plus visuellement. Pas de redessin. Gratuit. Et comme je l'ai dit, ils sont complets, détruisent l'objet et l'effacent de la mémoire. Très bien, alors voilà. Voici comment réparer ce retard de mémoire. D'accord. Ensuite, nous allons passer au score et au HUD, en ajoutant des vies de joueurs et tout ça dedans 37. Système de notation: R : Très bien. Dans la vidéo d'aujourd'hui, nous allons donc ajouter le système de points, comme vous pouvez le voir ici. Selon les règles, nous augmentons dix points pour chaque étape, 50 points pour chaque grenouille qui entre et de 1 000 points pour chaque fois que cinq grenouilles entrent C'est donc ce que nous devons garder à l'esprit lorsque nous faisons cela. Et je vais commencer par créer un script global, également appelé Singleton ou script de chargement automatique Et pour cela, je vais juste cliquer avec le bouton droit sur mon système de fichiers. Et créez un nouveau script, et je vais l'appeler mon Je vais juste rester simple et devenir mondial. Et pour l'activer, nous allons dans les paramètres de notre projet. Voyons voir. Est-ce que nous l'avons capturé en ce moment ? Nous ne le faisons pas. Allons-y. C'est peut-être un peu gros, mais allons-y. Et nous allons dans l'onglet Auto Load. notre bouton de navigation faites un flop et sélectionnez notre script global Je vais obtenir le nom global par défaut. Vous pourriez le modifier, mais je ne vois pas pourquoi nous devons l'ajouter, et c'est parti. Nous pouvons maintenant utiliser ce script n'importe où dans notre code. Et pour le moment, je pense que c'est là que nous allons maintenir notre score. C'est là que nous allons maintenir notre score. Donc, si nous fermons cela, nous pouvons maintenant ouvrir notre script global en double-cliquant dessus, et pour vous donner un exemple ici. Nous pouvons venir ici. Nous créons ici une autre fonction appelée Print SCORE. J'ai une variable ici appelée SCORE. C'est un entier, disons que vous avez 50. Et le but de cette fonction est simplement d'imprimer l'école. Comme il s'agit d'un paramètre global, je pourrais entrer dans le script de mon lecteur ici, et je pourrais simplement écrire le nom que nous avions donné à ce que j'ai laissé, qui s'appelait Global pour le point G majuscule, puis nous pourrions utiliser la fonction que nous venons de créer, imprimer la SCR. Ensuite, lorsque nous l'exécuterons, nous verrons cette partition imprimée ici dans notre sortie. Ainsi, 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, nous pouvons supprimer tous ces éléments et mettre le score à zéro par défaut. Et nous allons aller de l'avant avec une fonction appelée update score. Tout ce que nous allons faire ici, c'est nous rendre là où nous allons imprimer notre partition. Et devons-nous indiquer si nous devons l'afficher à l' écran dans cette vidéo ? Nous allons maintenant enregistrer l'affichage à l' écran lorsque nous commencerons à couvrir le HUD. Donc voilà, nous allons simplement procéder à impression de la partition. Lorsque cela se produit, le score de mise à jour prendra le nouveau montant à ajouter. Il peut s'agir d'un score int to do plus égal à un nouveau montant. Et nous pouvons le faire. Eh bien, assurons-nous d'abord que tout fonctionne. Donc, à chaque fois que nous sautons, nous obtenons dix points, non ? Nous allons donc devoir l'intégrer à notre mouvement dans toutes nos pièces. Nous allons donc passer au point mondial. Mettez-le à jour le score ? Parce que nous ne l'avons pas encore enregistré. Yo. 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 constamment ajoutés. Allons-y. Dix, 30, 40, 50, 60 , 70, 80, 90, 100 , un, dix, etc. Cela fonctionne donc Nous avons tous nos boutons, c'est fantastique. Nous pouvons simplement augmenter nos points comme ça. Les points abordés ici sont donc géniaux. Je suis juste allée de l'avant et je me suis débarrassée de l'autre impression , juste pour clarifier les choses, pour vous faciliter la tâche. Donc, au fur et à mesure que nous courons dedans et que nous nous baladons, vous pouvez voir dans nos résultats que notre nombre augmente à chaque fois que nous nous déplaçons. Alors, on y va. Cela fonctionne. Fantastique Maintenant, nous devons également garder une trace du nombre total de grenouilles que nous obtenons . Si nous sommes au total de grenouilles, cela ne semble pas être la quantité que nous voulons Bla, bla, bla C'est ce que nous appelons un combo. Des grenouilles à Um, je ne sais pas. Appelons-le le Multi Frog. Grenouille multiple Commence à zéro. À chaque fois que vous ajoutez du multifrog, n'est-ce pas ? Nous faisons plusieurs grenouilles plus égales à un. Je me souviens qu'avec chaque combinaison de cinq, nous obtenons 1 000 points. Donc, voici où nous allons. Je multiplie les grenouilles, moins de cinq, puis je vais juste appuyer sur cette ligne ici. Ensuite, nous allons simplement faire le score plus égal au nouveau montant. Sinon, nous obtenons un score plus égal à 1 000. Nous en obtiendrons 100 s'il y a cinq points de brouillard dedans, ce ne sera que si nous arrivons dans une zone de pointage, donc nous ne pouvons pas vraiment y augmenter notre grenouille pi. Donc, pour cela, nous devons réellement aller notre WindSpace et entrer dans notre propre corps, et c'est là que nous allons augmenter ce nombre Nous allons donc faire en sorte que Global MultifrogPlus soit égal à un. Je vais juste le mettre directement dans notre WindSpace. Ensuite, nous allons aussi appeler notre mise à jour, score global de mise à jour par points, et nous allons passer 50 parce que nous avons fait entrer une grenouille Et comme nous avons déjà augmenté notre Multi Frog, mis à jour notre score, n'est-ce pas ? Nous mettons donc à jour notre multi-frog un par un, puis nous vérifierons. En gros, 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, puis nous devrons remettre Multi Frog à zéro car il doit être réinitialisé. Voyons donc si cela fonctionne. C'est bon. Nous sommes tout là-haut. Allons-y et entrons dans la zone. Amusant Hey, on est au courant. Maintenant, nous attendons l'arrivée de ces tortues. Bien joué, petite tortue. La tortue. La grenouille et la tortue. Nous allons donc en avoir 290. Nous devrions donc sauter sur ce point. Maintenant, lorsque nous entrons dans la zone, nous devrions passer à 340. Et oh, je suis passé à 350 sur ce coup-là parce que nous avons également déménagé en même temps. Je dois m'en souvenir. Hum, nous avons obtenu nos dix points. Est-ce que cette grenouille fonctionne de cette façon ? Cela fait longtemps que je n'ai pas joué, donc je n'en suis pas sûr à 100 %. Si tel est le cas, alors pour résoudre ce problème, bien sûr, nous pouvons simplement en ajouter 40, puis cela comptera plus dix à partir de notre saut là-dedans. Donc, si nous devions aller de l'avant et nous lancer maintenant, cela ressemblerait à un couple de plus de 50. Comme je l'ai dit, je ne sais pas si ce saut compte ou non dans le jeu lui-même. C'est peut-être quelque chose que nous pouvons examiner. Peut-être que vous pouvez simplement laisser cela à votre choix personnel quant à savoir si vous voulez ou non que cela compte réellement. Oh, ma grenouille est morte. Triste. Oh, il me semble que oui, Rod Froggy Allons-y. On dirait que j'ai attrapé un petit insecte en sautant à un endroit bizarre. Allons-y. Et maintenant, ma petite Fracki va bien Cela nous place à 5 h 50, donc le prochain saut nous placera à 600 Alors voilà. C'est à vous de décider si vous voulez en faire 40 ou 50 ici, ce qui revient essentiellement à savoir si vous voulez ou non compter cela comme votre activité principale ou compter ces dix comme votre activité principale. Et je me souviens juste que nous devrions probablement y faire entrer cinq grenouilles pour vraiment tester cela Je pourrais donc continuer et avancer rapidement. C'est une vidéo pour cette partie, juste pour que nous puissions en inscrire cinq. Je vais bien. Je suis passé par là. J'ai fait ma boucle plusieurs fois cinq grenouilles et je suis allée de l'avant, nous avons obtenu 4 800 points Génial Ça a l'air de fonctionner parfaitement. Un système de score fonctionne. Nous avons obtenu notre plus 40 ou plus 50 selon la façon dont vous avez configuré le vôtre , 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, et nous avons plus de 1 000 chaque fois que nous obtenons cinq multigrenouilles Chaque fois que nous sauvons cinq de ces gaz anti-grenouilles. C'est bon. Nous avons donc établi notre score. Et je suppose qu'ensuite, nous pouvons simplement voir comment afficher et commencer à configurer notre écran tête haute ou Hud ou Gooey 38. Score HUD de jeu: D'accord. Allons-y et commençons à créer le jeu Hud pour notre jeu Well, Aujourd'hui, nous allons aller de l'avant et afficher le score ici sur notre écran. Et pour cela, je suis juste allé sur MNTD et j'ai ajouté une couche Canvas Si je pouvais venir ici, c'est la couche Canvas que nous recherchons, pas Canvas Grow. Et la couche Canvas représentera essentiellement tout ce qui se trouve au top de notre jeu, peu importe où il 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. Donc, si vous jouez à Dark Souls, c'est là que se trouvent vos quatre quadrants en bas à gauche, par exemple, si vous jouez à Sky Rim, vos trois points de vie, votre endurance et matabar Wallaby en bas, et ainsi de Et pour nous, juste pour faire la partition ici, sur ma couche Canvas, que j'ai renommée en Gooey GY Représente une interface utilisateur graphique. 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, qui ne contient que le mot score, et Score text, qui ne contient que cinq zéros Maintenant, les textes des deux étaient trop volumineux pour ce projet. Donc, sur les deux, je suis allée voir l'inspecteur à la taille Themovides Mont, et mon score est à la taille dix, et l'étiquette de la partition est à la 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. Je suis allé de l'avant et 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, afin de pouvoir ajouter le noir en bas, car c'est là que se trouvera notre barre de santé ou notre barre de vie. Dans la vidéo suivante. C'est bon. Donc, une fois que nous avons nos deux étiquettes sur notre couche Canvas pour la partition, et que vous ne savez pas où modifier le texte pour cela, il vous suffit de sélectionner votre étiquette et de vous connecter à l' inspecteur en haut de la page. Vous y verrez la section contenant du texte. Tapez simplement le score d'un et inscrivez 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. Et en dehors de notre moi et de notre quartier. Donc, en dehors de ces deux éléments, quel que soit le nombre de points que nous ajoutons, nous devons obtenir l'étiquette de texte de notre partition et y apposer le texte pour afficher réellement notre école. Donc, puisque nous venons de notre script global, si je l'exécute pendant un moment, puis que je le mets en pause, que passe en mode distant, vous pouvez voir que Global est là. Il n'a accès à rien. Nous devons donc monter une fois dans l'arbre pour atteindre racines, puis descendre sur notre numéro deux D, puis sur notre Dewey Ensuite, à partir de là, nous pouvons récupérer le texte de notre partition. Donc, comme nous devons monter puis descendre, nous pouvons continuer et simplement utiliser get node. 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, shrootGlobal, slash root, slash node two D 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. Et de là, nous accédons à notre GY. À partir de là, nous obtenons le texte de notre partition. Et si vous vous le demandez, nous ne faisons que suivre cette ligne blanche vers le bas. Donc, à partir de notre point global, où nous écrivons ce code, nous avons nos deux points, ce qui revient à écrire, get parent, donc nous remontons d'un point à la racine. Et puis nous ne faisons que suivre chaque arrêt, comme cette ligne blanche Nous voyons cette ligne blanche descendre, puis elle entre, sans indiquer deux D. C'est ce que nous y avons écrit. Ensuite, nous suivons à nouveau la ligne vers le bas, arrêtons et nous pointons vers le GY. Nous l'écrivons pour le prochain arrêt, puis nous redescendons et nous pointons enfin dans notre texte carré et nous nous arrêtons là. Donc, chaque fois que vous avez des doutes, cliquez sur le nœud que vous recherchez, et suivez simplement cette ligne blanche pour trouver votre chemin. C'est bon. Donc, sur ce texte de partition , à droite, sur cet objet de type étiquette, nous allons accéder à la propriété de texte de celui-ci, et laissez-moi simplement sortir le jeu de votre écran. J'ai juste regardé et j' ai vu qu'il était couvert. Encore une fois, nous utilisons deux points, comme get parent qui nous amène jusqu' au nœud racine, et nous suivons simplement cette ligne blanche qui descend, pointe vers le nœud deux D, descend , pointe Guy, puis descend et pointe vers le bas et pointe vers le texte carré, et nous suivons simplement ce chemin jusqu'en bas. Et 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. Et comme vous le voyez, nous ne pouvons pas vraiment améliorer le score à cet égard. Donc, ce que nous allons faire, c'est transformer en une chaîne avec STR, puis deux parenthèses, et nous pouvons écrire notre partition à l'intérieur de cette Et ce score va maintenant être traité comme une chaîne au lieu d'un entier. Maintenant, nous pouvons faire un point, pad, et nous pouvons le compléter avec des zéros Et si nous introduisons le chiffre cinq, nous allons avoir cinq chiffres, comme nous le voyons ici, un, deux, trois, quatre, cinq. Nous allons donc avoir ces 50 machines à sous. Et notre score va changer, mais même s' il indique juste dix, nous aurons toujours ces cinq machines à sous à notre disposition. Donc, visuellement, cela ressemblera exactement à ce que vous feriez sur une arcade et dans un système de notation classique. Donc, si nous jouons maintenant, nous pouvons voir notre score en haut. Et si nous nous baladons, nous devrions voir notre score augmenter comme il se doit. Il y a beaucoup de voitures là-haut. Oh. 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. Mais euh, d'accord, donc notre système de score semble parfaitement fonctionner. Il s'affiche avec précision. C'est fantastique. C'est bon. Donc , la dernière chose à faire en ce moment est de ne rien faire, mais dans la vidéo suivante, nous allons organiser notre vie de telle sorte que lorsque nous mourons, nous perdons une vie, et cela se reflétera visuellement à l'écran en montrant le nombre de vies qu'il nous reste réellement. 39. HUD Lives de jeu: Très bien, allons-y et ajoutons notre vie. Maintenant, nous allons avoir six vies au maximum ici. Et nous allons passer à notre couche de toile Goey. Nous allons ajouter un nouveau nœud. Et je sais que ce n'est pas visible, il suffit de 2 secondes. Et nous allons rechercher le mot texture. Nous recherchons la barre de progression de la texture. D'accord, je vais renommer le mien en Lives bar. Je vais passer à la section des textures de l'inspecteur. Et pour progresser, je vais placer le point PNG Healthbr dans cet emplacement Réglez à nouveau la valeur maximale sur six dans l'inspecteur. Je vais définir ma valeur actuelle à six, et maintenant vous devriez 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, et je vais le faire descendre directement vers le bas dans cet espace noir vide. Yo. Et cela va fonctionner comme notre vie. Vous verrez qu'en ajustant les valeurs de 6 à 5, elles 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 Donc, dans mon classement général, encore une fois, peut-être que le nom de Game Manager aurait plus de sens, mais pour le moment, nous allons simplement repartir avec ça. Nous allons passer à Livest par défaut six. Je vais créer une autre fonction, mettre à jour Lives pour rien. Et nous allons suivre la triste voie. Ce n'est qu'au lieu d'un Scortex que nous allons obtenir la barre de Live, et nous allons accéder à la propriété de valeur que nous pouvons voir dans l'inspecteur Et nous allons dire plus est égal au montant. Un montant sera un paramètre que nous transmettrons, ce qui sera une fin, n'est-ce pas ? Ainsi, lorsque nous perdons une vie, nous lui ajoutons un point négatif, ce qui la ramène à cinq. Et 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 cela à jour, nous devons également mettre à jour notre vie, la même chose plus un montant égal. Maintenant, nous pouvons passer à notre joueur. Nous pouvons rechercher notre mort. Ça y est. Sur le décès. Nous devons également accéder à notre script global, mettre à jour Lives et en transmettre un négatif, et cela devrait suffire. C'est très simple, c'est une petite chose à faire. Et maintenant, lorsque nous mourons à l'écran, nous devrions perdre une vie, et nous devrions voir notre guerre de vie tomber à cinq. Et je dois le trouver parce que vous ne pouvez pas voir le fond. Voilà. Et voyons si nous descendons à cinq. Allons-y. Nous nous éclaboussons J'ai percuté l'arrière de cette voiture. De plus, j'étais en train de le regarder et vous ne gagnez des points que lorsque vous avancez sur Frogger, et nous perdons des vies lorsque nous allons dans l'eau également Nous pouvons donc procéder à cette mise à jour si vous le souhaitez également. Si tu veux que ce soit un peu plus précis. Nous ne mettrons à jour le score que lorsque nous appuierons. En bas à gauche et à droite, nous n'obtiendrons aucune épingle. La seule pression vers l'avant, ce qui est logique car cela beaucoup de points que vous pouvez accumuler très rapidement. Dom, d d, d m. Où sont mes journaux ? Où sont-ils ? Ils sont là. Allant. Maintenant, nous les chevauchons avec les tortues. Doi, Doomy, Doom. Saute sur la tortue. J' allais prendre le journal, mais j'ai eu l'impression qu'il allait me manquer, alors je suis restée, j'ai sauté sur le journal ici. Alors je ne sauterai pas sur ces tortues et nous rentrerons chez nous libres sur ce rondin. Nous sommes bons. Allez-y, d'accord. Génial Allons-y. Et encore une fois, nous pouvons perdre de la chaleur vive. Cool. Notre système live fonctionne donc. Il se met à jour visuellement à l'écran, et nous avons la possibilité d'ajouter éléments à notre vie à l'avenir. C'est bon. Je suppose donc que cela suffira pour cette section, moins que vous ne vouliez ajouter live quand nous aurons l'école. C'est ce que tu veux faire ? C'est bon. Donc, 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. Et dans le cadre de notre score de mise à jour, nous allons effectuer un nouveau I check ici. Nous allons donc dire que je marque un score divisé par un score divisé par, nous pouvons dire 10 000, voulez-vous ? Multiples par lesquels notre multiplicateur est supérieur ou égal à un. Alors c'est là que nous allons ajouter quelque chose à notre vie. Il faudrait donc vivre des vies. Normalement, nous disons que plus est égal à un, mais comme nous voulons appuyer sur six, nous allons en fait dire des vies égales, et nous allons utiliser une fonction appelée Clamp. Maintenant, clamp vous permet d' avoir trois arguments ici. Le premier argument est ce que vous voudriez ajouter. Donc, au lieu de plus égal à un, notre premier argument ici sera un. Et puis l'argument suivant, ce sera le minimum et le maximum que cette valeur peut être. Donc, le minimum pourrait être un zéro, afin que nos vies ne descendent jamais en dessous de zéro ici. Et le nombre maximum que nous pouvons avoir est de six, donc ce ne sera jamais supérieur à six. Et c'est ainsi que fonctionne le serrage. Ici, nous pouvons appeler Update Lives avec un, non ? Nous allons donc en avoir un plus à ajouter à cela. Euh, tu sais quoi ? En fait, nous pouvons simplement déplacer notre pince ici, pendant la durée de vie de nos mises à jour, et en remplacer une par une quantité. Et puis nous pouvons probablement nous en sortir sans rien avoir là-dedans, sans l'installer là-dedans, mais simplement en le serrant là-dedans Donc, Update Lives One. 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 allons constamment gagner des points de vie, car nous allons constamment gagner des points de vie, car notre score sera toujours divisible. Une fois que nous gagnons une vie, chaque fois que nous bougeons, nous allons continuer à en gagner Nous voulons donc changer cela afin que si nous obtenons un point de vie tous les 10 000 points, nous obtiendrons 10 000 fois 10 000 points, ce sera toujours 10 000. Et puis la prochaine fois, ce sera 10 000 fois deux. Nous aurons donc besoin de 20 000 points pour avoir une nouvelle vie, puis il y en aura 30 000, 40, etc. Donc, si nous devions gérer les choses maintenant avec cela, nous pourrions voir si nous nous heurtons, si nous y allons et perdons une vie, peut-être même deux. Et maintenant, il ne nous reste plus qu'à monter, à traverser tout ce trafic. Allez, allez nous diriger vers ce journal. Ensuite, nous pouvons monter sur les tortues, le journal des tortues, encore une fois, passer aux tortues. Attendez que ce journal apparaisse ici, puis si notre score est suffisamment élevé, nous devrions en obtenir 10 000, W Je ne l'ai pas changé. Maintenant, y ai-je pensé ? C'est donc un peu décevant. Mais nous pouvons vérifier cela très rapidement en allant dans notre espace éolien, et nous dirons : « Hé, nous en gagnons 20 000. Maintenant, si nous devions le vérifier pour gagner des points sur 10 000, ces 20 points ne devraient rien faire. Je devrais juste nous donner une seule vie. Qu'est-ce qui va bien ? Parce que tu ne devrais jamais en avoir 20 001 de toute façon. Le maximum que vous devriez obtenir en une seule fois sera de 10 000. Que voyez-vous au fur et à mesure ? Boum, boum. Nous y sommes presque. Nous devrions voir notre vie au bas de l'échelle augmenter de plus d'un. Et nous y voilà. Nos vies se sont donc améliorées. Très bien, nos vies fonctionnent maintenant. Je vais donc procéder et le ramener à 40 points. Et nous voulons nous assurer de pouvoir terminer la partie. Mais je suppose que ce sera intégré à notre espace mondial, Update Lives. Et nous allons aller de l'avant et voir cela nous permettra de passer à une situation négative, une chance ? Non, ce ne sera pas le cas. C'est parfait Nous n' avons pas à nous inquiéter à ce sujet. Et nous pouvons dire que je vis moins qu'en réalité, nous n'en aurions pas déjà besoin, nous sommes en train de l'installer ici. Nous vérifions donc au préalable. Nous disons donc que je vis c'est moins que zéro, en fait c'est déjà zéro. Disons qu'il ne nous reste plus aucune vie et que nous mourons. Nous en adoptons un autre négatif. Nous disons que si nos vies sont déjà nulles, alors nous dirons jeu, mais nous allons juste 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. Et pour cela, nous utilisons simplement Get three reload current scene, et ce sera comme si nous venions de commencer la scène comme ça Donc, si nous écrivons dans Nos vies ne seront pas remises à zéro. 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 , je vais dire imprimer Des vies. Et nous verrons si cela se réinitialise. Nous sommes en train de nous faire écraser. Nous ne serons jamais vraiment prêts à revenir. Il se réinitialise constamment, non ? Donc, au lieu d'être prêt, imprimons-le ici. Essayez de comprendre pourquoi nous en avons toujours fini ? R. Il se réinitialise au bout de 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, qui est intéressant car ce qui est intéressant car je n'ai aucune vraie raison d'en déduire que cela aurait dû être un saut de six vies pour tomber à zéro. Mais c'est bon. Je viens de le reconvertir en Lives plus equals amount. Et maintenant, si nous lançons le jeu, voyons si nous pouvons réussir ou recommencer à perdre des vies une par une. Et une fois descendus, il ne nous reste plus que trois vies, deux, une. Oop, O. Allons-y. Et dans l'eau. Eh bien, nous n'avons plus de live. Donc, lorsque nous cliquerons sur le bouton suivant , la partie sera terminée et notre jeu sera réinitialisé. Et c'est parti. Nous avons réinitialisé notre jeu rapidement, et nous pouvons recommencer à perdre des vies. Mais voilà. Nous avons cette réinitialisation. Nous perdons maintenant des vies et nous affichons à l'écran manière appropriée lorsque nos vies sont trop faibles, nous réinitialisons complètement le jeu et nous recommençons à zéro, gagnons des vies chaque fois que nous obtenons 10 000 pièces. 40. Minuteur et bonus: Très bien, lançons notre chronomètre maintenant. Donc, sur notre interface graphique, je viens d'ajouter une autre étiquette ici avec le mot heure avec une taille de police de remplacement fixée à 12 J'ai ensuite une barre de textures, comme nous l'avons fait pendant notre vie ici J'ai changé le mode film pour qu'il passe de droite à gauche au lieu de gauche à droite. Je vais également le renommer ici Timer Bar. Ma valeur maximale est 30, ma valeur actuelle est 30. Tout le reste reste le même. J'ai activé l' étirement à neuf patchs pouvoir étirer cette barre à la forme la longueur que je veux. J'utilise juste le Timer Dot PNG que j'ai ici. Je le fais simplement glisser sous forme de barre de progression ou de texture de progression. Et 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 Guy et le signal de temporisation qui y est connecté. C'est donc ce que nous examinons ici. Et ce que nous devons faire à chaque fois que ce chronomètre expire par défaut, il est réglé sur 1 seconde, ce qui est très bien. C'est ce que nous voulons. Ce que nous voulons faire si nous voulons obtenir notre barre de minuterie et que nous devons en soustraire une à la valeur Nous pouvons donc simplement aller de l'avant et attraper avec notre signe du dollar ici. Tu comprends ? Comme cela vient de Mark Bouie, valeur moins est égale à un Et maintenant, si nous devions aller de l'avant, y jeter un coup d'œil et démarrer, nous devrions voir notre chronomètre tourner , ce qui est magnifique C'est exactement ce que nous voulons. Maintenant, il faut vérifier. Nous devons vérifier si notre chronomètre correspond à la valeur de la barre du chronomètre, elle a atteint zéro, et 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 achetons notre petit nœud Froggy Get. Et n'oubliez pas que nous sommes sur notre piste d'attente, donc nous allons devoir en monter un pour notre numéro deux D , puis redescendre. Donc point point slash layer, et nous allons juste activer notre fonction de mort Oups, et ça devrait être égal à deux parce que c'est une comparaison Ouais. Donc, si nous devions le faire fonctionner maintenant, quand le temps imparti sera écoulé, notre petite grenouille s'éclabousse et nous perdrons la vie Vous savez, attendez une minute pour que le chronomètre tourne. Maintenant, avec ce temps, tu es là dans 30 secondes. Je constate que mes plateformes en haut doivent être un peu plus rapides ou au moins un peu moins retardées. Mais je pense que la vitesse est peut-être la meilleure option plutôt que de modifier le délai. Mais nous y voilà. Ma petite grenouille est morte, et elle continue de mourir. Ce n'est pas génial. Nous devons le réinitialiser maintenant. Donc, une fois qu'il aura atteint zéro et que notre grenouille sera morte, réinitialisons notre barre de chronomètre Récupérons donc la barre du chronomètre et remettons sa valeur à 30 afin de pouvoir remplir une toute nouvelle barre. Maintenant, ce n'est pas le seul moment où il faut le réinitialiser. Il doit également être réinitialisé lorsque nous atteignons l'objectif. Nous allons donc aller de l' avant et obtenir un nœud, en monter un, chercher notre Guy, puis récupérer notre barre de chronomètre et remettre la valeur à 30. C'est bon. Maintenant, avant de tester cela, je vais accéder à ma plateforme ici et je vais passer à 32 et doubler cette vitesse. Cela signifie que je dois aller sur mon lecteur et l'ajuster. Eh bien, là-haut. C'est à ce moment-là que nous sommes ici, 32 ans. Va. Maintenant, ils devraient au moins évoluer plus rapidement, et j'espère pouvoir continuer sans les rater. OK, voilà les tortues. Nous avons besoin de journaux. Merci. Journal. Je ne sais pas si je vais y arriver. Je ne vais pas y arriver. Je vais perdre ma grenouille. Au revoir, grenouille. Je te connaissais à peine. Je vois que ça va être un peu difficile. Oh, notre heure se réinitialise-t-elle ou non lorsque nous éclaboussons ? Ce n'est pas le cas. Nous devons donc également définir cela. Alors, qu'en est-il de notre joueur ? Où est-ce que nous mourons ? Notre mort est là, et nous réapparaissons. Ouais. OK. Et oui, approfondissons-le ici. Donc, encore une fois, nous allons monter puis revenir à notre barre de minuterie et remettre la valeur à 30. Ainsi, quand on meurt, ça se réinitialise. Et je suppose que je vais changer ou réduire la réapparition, la valeur du sponsor, la clé de plateforme et je vais supprimer le plus six, voir à quoi ça ressemble maintenant puisque nous avons OK. Ça va très bien. Nous pourrions être en mesure de le faire maintenant. Nous y voilà. Nous l'avons fait lors de la réinitialisation de notre minuterie, et quand nous mourons, notre minuterie est également réinitialisée Fantastique. Et je peux voir que j'ai encore besoin d'un petit coup de pouce, mon minimum. Je vais donc faire 3 secondes simplement parce que j'ai vu un certain chevauchement lorsque je suis passé par là. Mais nous avons vu que le chronomètre fonctionne parfaitement maintenant. Je sais que 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 donc aller de l'avant et le mettre en œuvre. De plus, je dois juste me réactiver avec le multiplicateur Je sais que c'est quelque fois le temps qu'il reste. Alors, donne-moi juste une seconde. C'est bon. C'est dix fois le temps qu'il reste. Alors voyons voir. Lorsque nous arriverons à notre espace éolien avant de le réinitialiser nous devons à nouveau mettre à jour le score ici parce que nous allons en ajouter 40, mais ensuite nous allons également ajouter ce qui reste ici. Nous allons dire, en fait, tu sais quoi ? Mettons-le dans sa propre variable ici. Nous l'appelons bonus, et non dix bonus, en bonus. Bien sûr, un int. Je veux le régler à cette valeur multipliée par dix avant de le réinitialiser. Maintenant, pour ce qui est de notre deuxième score de mise à jour, nous avons le temps, oui. C'est bon. Alors maintenant, nous devrions avoir notre bonus de temps là-dedans. Donc, plus vite nous pourrons y aller, plus nous obtiendrons le bonus maximum, jusqu'à un maximum de 300 points. En théorie, je veux dire, vous n' y arriverez pas à 300 ou 30 secondes restantes parce que ça commence à Oh, je n'y arriverai peut-être pas du tout. Je suis peut-être proche. Ah, j'ai compris. Mais vous pouvez voir que j'ai obtenu 190 points sur ce point. C'est bon. Nous y voilà donc. Nous avons le chronomètre dedans, ainsi que les décès quand le temps imparti est écoulé et le bonus de score lorsqu' il nous reste encore du temps, et nous arrivons à la fin. C'est bon, alors c'est tout. Je pense que c'est peut-être ça ou Frogger. Je ne pense pas que j' oublie quoi que ce soit ici. Et si c'est la fin de Frogger, félicitations . Tu es 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, les variables globales, fonctionnant avec de nombreux scripts différents Mais nous avons complètement recréé ce vieux jeu des années 80 Et ce qui est génial avec ces vieux jeux est qu'ils sont assez simples dans leur concept. Mais surtout si vous débutez dans le domaine de la programmation, vous pouvez apprendre beaucoup de ces jeux. D'accord. Prends soin de toi. Prenez-en une bonne, je vous verrai la semaine prochaine. Dans quoi allons-nous nous lancer ? C'est la quatrième semaine maintenant ? Oh, mince, la quatrième semaine va être amusante. Nous avons beaucoup de choses à aborder. 41. Audio Frogger: Très bien, nous allons continuer et ajouter l'audio pour nous Cela va donc compter nos sauts lorsque nous bougeons, la musique de fond et les sons de la mort des arcs D'accord. Donc, pour notre musique de fond, nous pouvons simplement passer à notre scène principale ici, sélectionner notre nœud racine, qui est notre numéro deux D. Allez-y, appuyez sur le signe plus ou ajoutez un nouveau nœud. Et ce que nous allons ajouter, c'est ce lecteur d'écran audio ici. Ensuite, nous allons aller dans notre dossier de sons, récupérer le fichier music.p3 et le faire glisser dedans Assurez-vous d'activer la lecture automatique. De cette façon, nous n'avons pas à gaspiller un script et à écrire du code pour jouer et tout démarrera tout seul. Attention, cela peut être un peu bruyant au démarrage. Donc, si vous souhaitez régler le son uniquement pour la musique ici, vous pouvez modifier le volume DB ici. Plus vous le mettez bas, plus il sera silencieux. La valeur par défaut est zéro pour chacun d'entre eux. Cependant, si vous souhaitez réduire le volume de la musique pour tous vos fichiers audio en même temps, vous pouvez cliquer sur le petit onglet audio en bas, et voici l'ensemble de votre bus audio. Nous avons maintenant le master ici Si vous avez déjà modifié les paramètres audio et les jeux, vous remarquerez que vous avez le curseur principal C'est ce que c'est ici, et nous pouvons en modifier le volume comme bon nous semble. Si vous souhaitez ajouter un bus audio différent, afin de pouvoir personnaliser vos effets sonores à partir de la musique séparément, nous pouvons simplement appuyer sur le bus d'ajout ici et nous le renommerons simplement en musique Maintenant que notre lecteur de flux audio est sélectionné, vous remarquerez que dans la section bus de votre inspecteur, nous avons maintenant un morceau de musique dans le menu déroulant, et maintenant cette musique passera d'abord par ce morceau audio, puis elle sera transmise au master, comme vous vous en doutiez D'accord, alors c'est à 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 êtes vraiment capables d'entendre ça. J'espère que cela ne fera mal aux oreilles de personne. Je vais appuyer sur Play pour le découvrir. D'accord, donc il semble que c'est plus calme que moi. Je vais donc supposer 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. Et maintenant, le reste de notre son va être transmis à notre joueur, c'est lui qui est mort. Notre joueur a le pouvoir de sauter. Notre joueur a l'autre effet sonore : la mort, non ? Le plunk, le squish et le hot. Nous allons donc passer à notre scène de joueurs. Nous allons également leur ajouter un lecteur de flux audio . Et nous n'allons rien toucher à autre chose dans l'inspecteur, sauf si vous souhaitez ajouter un bus audio pour les effets sonores , puis changer de bus spécifiquement à cet endroit. C'est à vous de décider. Et encore une fois, une préférence personnelle. Mais une fois qu' un lecteur de flux audio a été ajouté à votre scène de joueur, nous pouvons accéder au script de votre joueur. Et ce que nous allons devoir faire, c'est définir le flux audio en chargeant le fichier audio, puis en le lisant. Donc, ce que je vais faire, c'est d'abord accéder à notre fonction Deth, et un identifiant lui sera transmis L'ID sera évidemment un entier car nous allons obtenir deux ou trois. Je vais donc appeler un service informatique, puis je vais le définir comme égal à deux par défaut. Et 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. Donc, par défaut, ce devrait être notre route, donc ce devrait être un squish. Donc, ce que je vais faire ici, c'est si nous voulons obtenir notre lecteur de flux audio. Donc, le lecteur AudioStream point stream nous voulons cette propriété de flux Tu es sur notre joueur, non ? Ce stream ici. Et nous allons le définir comme égal à, et nous allons appeler load, open et closed parenthèses et à l'intérieur de celui-ci et nous allons appeler load, open et closed parenthèses et à l'intérieur de se trouvera le chemin d'accès à notre fichier Donc, deux seront notre valeur par défaut, donc ce sera notre squish Je vais donc extraire squash point Wav, squash point wave de notre dossier de sons et les faire glisser dedans Comme ça, je n' ai pas besoin de l'écrire. Et maintenant, à la ligne suivante, nous allons dire que I ID est égal à trois. Alors troisièmement, souvenez-vous d'être notre eau. Donc, si nous sommes en train de mourir et que c'est sur l'eau, nous allons faire la même chose que sur la ligne précédente, définir notre stream et charger un nouveau fichier. Cette fois, nous avons joué au squash, nous allons charger Plunk et puis en dehors de cette instruction if, ne nous reste plus qu'à diffuser notre stream Nous allons donc dire lecteur de flux audio point play. Juste comme ça. Maintenant, si nous nous retrouvons écrasés sur la route, nous devrions avoir un effet sonore, et si nous sautons dans l' eau, nous devrions 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 D'accord ? Si on saute dans l'eau. OK. Et si on se fait renverser en voiture ? OK, nous avons le même son sur les deux. Eh bien, c'est un peu intéressant. Pourquoi est-ce le cas ? Eh bien, apparemment, nous ne communiquons aucune pièce d'identité pour trois, donc il n'y en aura jamais trois. Et la raison de cela, souvenez-vous que nous devons descendre et vérifier l'identité de notre portable, nous sommes en train de vérifier si notre grenouille est en train de se noyer C'est donc ce que nous devons ajouter à notre mort. Maintenant, il ne s'est pas aéré parce que nous lui avons dit que si nous n'y transmettons rien, il faut en utiliser deux 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 sur notre fonction Check Cell ID. Donc maintenant, si nous devions le faire, nous devrions avoir notre cran dans l'eau, d' accord, d'accord Et écrasée sur la route. Allons-y. Nous savons donc que cela fonctionne parfaitement. Et il ne nous reste plus qu'à faire nos sauts. Et pour cela, il ne nous reste plus qu'à suivre notre flux audio et à le configurer. Donc, le flux de points du lecteur de flux audio est égal à la charge, et nous allons simplement récupérer notre effet sonore pop et le faire glisser dedans. Va. Et sur la ligne suivante, nous pouvons simplement écouter notre audio. C'est un lecteur de flux audio. Va jouer. Et nous pouvons le copier à chaque fois que vous appuyez sur un bouton ici. Donc, s'il ne fonctionne pas, nous pouvons le faire. Boum, c'est à gauche et si c'est à droite. Maintenant, si nous y jouons, nous devrions être capables de sauter partout. Oups Passons à notre scène principale. Et essaie ça. Vers le bas. Nous pouvons sauter vers le bas. Ensuite, écrasez-vous. Vers le bas. Ainsi que du sol dans l'eau. En bas, en bas, en bas, en bas, en bas, en bas, en bas, en bas. Déprimé, génial. Maintenant, il ne nous reste plus qu'à réactiver la musique. Donc, dans notre scène principale, lecteur de flux audio, lecture automatique, réactivation Et juste comme ça, nous avons le jeu Frogger complet avec notre son et notre gameplay Merci , je me suis fait percuter par l'arrière de la voiture, mais voilà. Nous y avons ajouté du son, et maintenant notre jeu semble beaucoup plus complet. R, 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 micros. 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. Alors prenez soin de vous et amusez-vous bien, donnez-vous une tape dans le dos avec grenouille terminée et 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 à nous y intéresser. 42. Passer de la 2D à la 3D: C'est bon. Bienvenue à tous cette semaine où nous allons parler de notre transition de deux D à trois D. En tant que développeurs de jeux, il est donc important de comprendre les défis et les opportunités uniques qui se présentent lorsque l'on travaille dans un espace tridimensionnel, par opposition à un espace bidimensionnel. Pour illustrer cela, je suis désolée, revenons en arrière dans un instant. Lors de la transition d'un développement en deux D à un développement en trois D, plusieurs aspects clés doivent être pris en compte Parlons de la différence fondamentale de perspective. En deux D, nous travaillons avec des objets plats et des couches. Comme vous pouvez le voir dans notre exemple, sur le côté gauche, tout est vraiment plat. C'est juste une question de ce qui se trouve devant ou de ce qui est rendu devant quoi, n'est-ce pas ? Nous pouvons donc obtenir différentes couches, peu comme lorsque vous travaillez dans Photoshop, sorte de manipulateur d'image ou d'éditeur d'image I Eh bien, en trois D, ceux de droite, nous introduisons la profondeur et les relations spatiales entre les objets. Vous pouvez donc parfaitement voir que nous avons cette troisième dimension sur les deux côtés D. On ne voit pas le sol ici. Nous avons juste le côté de ce barrage ou de ce pont ou de tout autre endroit sur lequel il se trouve. Eh bien, en trois D, nous pouvons voir cette profondeur passer par le haut. Nous voyons la profondeur de ce bras se diriger droit vers nous avec cette extrémité pointue, alors que dans les deux D, il se déplace clairement vers le bas de l'écran Et encore une fois, en ce qui concerne la profondeur, vous pouvez voir dans la partie supérieure où vous pouvez essayer de simuler ce genre de sensation en deux dimensions. Cependant, en trois D, vous pouvez évidemment voir qu'il n'y a tout simplement aucune comparaison. Il est évident lequel a réellement profondeur et lequel n'en a pas si l'on considère le meilleur exemple. Pour illustrer cette transition, encore une fois, vous pouvez consulter nos exemples ici, deux captures d'écran, l'une de la version à deux D, l'autre de la version à trois D. Dans ce cas, nous utilisons Mega Man, un jeu de plateforme à défilement latéral Et ici, cela vous aidera à imaginer transformer ce jeu en deux D en trois D. Vous pouvez voir à quel point cela fait une différence Juste après avoir pris la décision d'opter pour deux ou trois D, les styles artistiques sont complètement différents et se démarquent de manière unique. Maintenant, avec cet environnement The D, nous devrions créer trois modèles en D pour les personnages, les plateformes et tous les autres objets de la scène, ce qui pourrait prendre beaucoup plus de temps que, bien sûr, si nous options pour l'option à deux D. Avec deux D, on fait un peu ressortir et on est bons. Nous avons terminé. Alors qu'en trois D, nous devons en quelque sorte obtenir ces modèles, puis nous devons déballer le modèle, puis créer les textures pour le modèle, puis créer le matériau pour le modèle Nous avons donc toutes ces étapes avant même de pouvoir l'intégrer très tôt dans le jeu à des fins de test ou de mise en œuvre, etc. Ensuite, nous devons également introduire une caméra qui est généralement en trois D, lorsqu'il ne s'agit pas simplement d'un objet immobile, comme dans ce qui semble être un combat de boss en bas, elle est équipée d'une caméra qui se déplace avec le joueur, qu'il se déplace dans un espace complet à 360 degrés, ce qui peut se produire dans ces versions en trois D. Ou s'ils restent simplement plus fixes sur le côté pour nous donner une plus grande partie de ce défilement latéral, comme nous le voyons clairement ici Maintenant, comme vous pouvez le constater, le passage de deux D à trois D nécessite un changement dans notre façon de concevoir le développement de jeux Nous devons tenir compte des dimensions spatiales, la perception de la profondeur, du mouvement des caméras et de la modélisation des objets. Cela ouvre un tout nouveau monde de possibilités pour créer jeux immersifs et visuellement époustouflants, même si certaines personnes préfèreront deux D à trois D la plupart du temps. Gardez donc cela à l'esprit que le type de jeu que vous créez peut être meilleur ou fonctionner mieux, soit pour la vision ou mécaniquement, peu importe, en deux D qu'en trois D ou qu' il peut fonctionner mieux en trois D qu'en deux D. Voilà mieux en trois D qu'en deux D. Voilà, avec la transition du deux D au trois D, nous devons comprendre ces différences et ces défis surgissez au cours de ce processus de transition, et vous serez bien préparé à lancer dans trois projets de jeux 3D passionnants. N'oubliez pas de vous entraîner et de toujours expérimenter différentes techniques pour vous aider à acquérir la confiance nécessaire pour travailler dans cette nouvelle dimension du développement de jeux. D'accord. Ensuite, voici la leçon nous allons aborder et vous aider à comprendre certaines des différences entre deux D et trois D. Ensuite, nous parlerons des similitudes entre deux D et trois D. 43. Comprendre les différences entre la 2D et la 3D: C'est bon. Dans cet exemple, nous avons aujourd'hui un Mortal Combat présenté ici, la fois avec le défilement latéral de la mythologie et deux D, presque un pseudo trois D, ainsi que les trois versions en D qui sont apparues plus tard, toutes deux avec un menu en trois D et un mode boutique en trois D qui vous permettaient courir et d' Maintenant, dans la vidéo d' aujourd'hui, dans la leçon d'aujourd'hui, nous allons parler de certaines des différences entre deux D et trois D. Et il est important que vous compreniez ces différences, car elles peuvent être cruciales lorsqu'il s'agit de créer des jeux de manière efficace pour vous aider à utiliser les forces de chaque dimension. La principale différence entre le développement de jeux en deux D et en trois D réside donc développement de jeux en deux D et en trois D réside dans la représentation visuelle. Comme vous pouvez le voir ici, les mécanismes de jeu sont assez évidents. En deux D, nous travaillons en deux dimensions, uniquement la largeur et la hauteur. Où les objets sont représentés sur une surface plane. En revanche, les trois D introduisent la troisième dimension de profondeur, comme nous pouvons le voir ici, permettant une plus permettant grande immersion et une expérience plus réaliste. Examinons donc quelques différences clés entre un jeu en deux D et un jeu en deux D. Le gameplay se déroule généralement sur un seul plan. En trois D, les objets peuvent se déplacer en trois dimensions vers le haut, le bas, gauche, la droite, l'avant et l'arrière. permet des interactions et des explorations complexes C'est pourquoi nous avons créé un mode conquête en haut à gauche, dans lequel vous êtes encouragé à sortir, non seulement à suivre l'histoire, mais aussi à explorer et à faire des choses secondaires pour vous aider ou pour découvrir des secrets, des personnages cachés, etc. , ce que vous n' gauche, dans lequel vous êtes encouragé à sortir, non seulement à suivre l'histoire, mais aussi à explorer et à faire des choses secondaires aider ou pour découvrir des secrets , ce que obtiendriez pas vraiment dans un jeu TD. Et si vous pouviez en quelque sorte intégrer cela, ce ne serait pas la même expérience globale. De plus, en deux D, détection des collisions est généralement plus simple, car elle consiste principalement vérifier si deux objets se chevauchent En trois D, la détection des collisions devient plus complexe en tenant compte des limites de l'objet et de la surface. Et comme vous pouvez le constater, comprendre les différences entre le développement de jeux en deux et trois D nous aidera à faire des choix de conception éclairés et à utiliser les techniques appropriées, qu'il s'agisse du style visuel, mécanismes de jeu ou de l'expérience utilisateur Tirer parti des qualités uniques de chaque dimension améliore les qualités de chaque dimension, améliore expérience de jeu globale. N'oubliez donc pas, que vous alliez opter pour deux ou trois D, exploitez les points forts de cette dimension. Voici donc brièvement les différences entre le développement de jeux en deux D et en trois D. En reconnaissant ces différences, vous serez mieux outillé pour créer des jeux qui exploitent les atouts de ces dimensions. Et n'oubliez pas, bien sûr, expérimenter différentes techniques et rester créatif dans la conception de votre jeu. C'est bon. Dans la leçon suivante, nous parlerons de certaines des similitudes entre deux D et trois D. 44. Similitudes entre la 2D et la 3D: Très bien, allons-y et parlons de certaines des similitudes entre le développement en deux D et en trois D. Aujourd'hui, malgré leurs caractéristiques uniques, les deux dimensions partagent certains principes et techniques fondamentaux. Allons-y, intervenons et jetons un coup d'œil. Bien que le développement de jeux en deux et en trois D ait ses propres caractéristiques et points forts, il présente également plusieurs similitudes. Tout d'abord, bien entendu, les deux dimensions reposent sur concepts de programmation clés tels que les variables, les fonctions et la logique. Qu'il s'agisse de deux ou de trois D, ces principes fondamentaux de programmation resteront inchangés. Ainsi, si vous avez, par exemple, un personnage ramasse un objet. Eh bien, ce personnage, vous allez vous rendre sur l'objet, le toucher ou interagir avec lui. Et la logique restera la même, parce que vous allez le prendre, vous allez le faire disparaître, puis dans le code, vous allez l' ajouter à l'inventaire du joueur ou à son nombre d'objets de collection ou quoi que ce soit d'autre que vous allez en faire Cette logique reste complètement la même, qu'il s'agisse de deux ou de trois D, sera simplement écrite légèrement différemment. Deuxièmement, l'importance des principes de conception de jeux est vraie pour les deux dimensions. Des concepts tels que l'interaction avec les joueurs, la conception des niveaux et l'équilibre des mécanismes de jeu sont éléments cruciaux qui ont un impact sur des éléments cruciaux qui ont un impact sur l' expérience du joueur , qu'il s'agisse de deux ou de trois D. Donc, si vous êtes mauvais en design de jeu en deux D, vous le serez probablement toujours en trois D. La dimension dans laquelle vous travaillez ne fera aucune différence. Si vous êtes mauvais, vous êtes mauvais, et tout ce que vous pouvez vraiment faire est de mettre en pratique vos compétences, peut-être de lire des livres et améliorer votre capacité à concevoir des jeux grâce à l'entraînement. De plus, le développement de jeux en deux D et en trois D implique l'utilisation d'actifs, qu'il s'agisse d'un sprite en deux D ou de modèles en trois D pour donner vie au monde du jeu Qu'il s'agisse d'un Sprite à deux personnages en D ou d'un modèle en trois D, le processus de création et d' intégration des ressources dans le jeu suit les mêmes principes de conception et de mise en œuvre Encore une fois, remarquez que j'ai dit la même chose, pas la même chose. De plus, l' importance de l'optimisation s' appliquera à la fois aux jeux à deux et à trois D. Quelle que soit la dimension, les développeurs doivent tenir compte des performances, de la gestion de la mémoire, efficacité des algorithmes pour garantir gameplay fluide et une utilisation optimale des ressources. Par exemple, j'ai mentionné que lorsque nous examinons Boger et nous résolvons notre problème de fuite de mémoire, j'ai mentionné le regroupement d'objets C'est une chose très importante. Cela peut nous aider à gérer nos ressources et notre mémoire. Et selon le jeu que vous créez, cela peut être une façon très optimale d'aborder une situation. Ainsi, comme vous pouvez le constater, bien que le développement de jeux en deux et trois D ait ses aspects uniques, il partage toujours les mêmes principes et techniques de base. Et en comprenant ces similitudes, les développeurs peuvent tirer parti de leurs connaissances dans toutes les dimensions et créer des jeux captivants Et ce qui est encore plus dingue, c'est que vous pouvez mélanger les deux dans le même jeu Vous pourriez peut-être créer le même jeu deux fois dans un sens et donner au joueur la possibilité choisir s'il veut jouer en deux D ou en trois D. Cela peut être spécifique à votre jeu ou avoir une sorte de mécanisme dans lequel vous sautez entre deux D et trois D. Vous pouvez utiliser les dimensions multiples comme mécanisme de jeu ou simplement une partie du expérience. Et voilà, les similitudes entre le développement de jeux en deux et en trois D. Et en reconnaissant ces points communs, vous pouvez appliquer vos compétences et votre expertise dans différentes dimensions, faisant de vous un développeur de jeux polyvalent N'oubliez pas d' apprendre et d'expérimenter continuellement pour améliorer vos capacités de développement de jeux. Et bien qu'ils soient similaires, je tiens à souligner ici que, personnellement, je préfère travailler en deux D, même si les similitudes existent, même si les similitudes existent, et qu'une grande partie de cette logique et tout transfère et fonctionne toujours. Dans toutes les dimensions ou dimensionnellement. C'est une façon assez étrange de le dire. Mais par préférence, j'ai pensé que j'apprécierais trois D. Mais il s'avère que j'aime vraiment créer deux D. Donc, vous constaterez peut-être que vous finirez par vous retrouver après avoir essayé les trois D. Vous découvrirez peut-être que vous avez également une préférence pour deux D, ou peut-être préférez-vous trois styles en D. Ou travailler en trois D, plutôt que de créer quoi que ce soit en deux D. Il est donc normal d' avoir cette préférence, mais il est également bon de savoir que vous avez à la fois les connaissances et capacités techniques nécessaires pour passer deux D au trois D à un moment donné et reconnaître tous les points communs, les compétences, la logique et tout ce qui est transféré entre les dimensions Huit. Bien, allons-y , passons à la leçon suivante et voyons certaines choses un peu plus spécifiques aux trois D que vous ne pouvez pas vraiment contourner 45. Fournitures: C'est bon, tout le monde. Bon retour. Aujourd'hui, nous allons parler de quelque chose qui est exclusif ou je ne devrais pas dire techniquement exclusif au trois D , à savoir les matériaux. Allons-y et expliquons ce que sont les matériaux. Dans Inge, les matériaux jouent un rôle crucial dans la définition de l'apparence visuelle d'un objet dans votre jeu Nous aborderons les matériaux en profondeur et discuterons au moins des différents types de cartes de texture disponibles lors de la création et application de matériaux sur des objets Les matériaux sont utilisés pour contrôler la façon dont la lumière interagit avec les objets et la manière dont ils sont rendus Ils définissent des propriétés telles que la couleur, la transparence, la réflectivité, etc. L'un des principaux aspects des matériaux est la cartographie des textures, qui nous permet d'appliquer des images ou des motifs aux objets pour leur donner un aspect réaliste ou stylisé Je vais donc aller de l' avant et ouvrir ce que vous avez hérité de Mega Man ici et que je viens de trouver en ligne. Et avant que quelqu'un ne le demande, non, je ne peux pas partager cela. Mais si vous regardez en ligne, vous le trouverez probablement. Je vais juste sélectionner l'objet 4 ici. Et si je l'ouvre, je trouverai celui-ci spécifiquement sous la forme de surface zéro, donc il n'a qu'une seule surface. Donc, un seul matériau. Si je l'ouvre, un moment, je dois le rendre unique, afin de pouvoir au moins le modifier pour vous montrer quelques exemples et le rendre unique C'est bon. Très bien, alors que nous parcourons la carte d'Albedo, qui se trouve ici Elle est également connue sous le nom de carte diffuse. Pourquoi y a-t-il plusieurs noms pour la même chose ? Je ne sais pas, mais il y en a, donc gardez cela à l'esprit si quelqu'un parle albédo et qu'on vous donne une carte diffuse C'est pareil. Et cette carte de texture définit la couleur de base d'un objet. Il fournit l' aspect visuel principal de la surface. Et comme vous pouvez le voir ici, c'est ici que la texture principale est appliquée. Maintenant, cela affecte la couleur. Je peux donc toujours venir ici et changer la couleur réelle appliquée sur cette texture. Donc, si je veux, je peux venir ici et j'aurai un méga-homme vert. Peut-être que je veux plutôt un méga-homme violet. Ou le rose n'est pas vraiment trop rose là-bas. Nous pouvons nous procurer un méga-homme rouge. Vous avez compris l'idée à ce stade, n'est-ce pas ? L'albédo est donc la texture et la couleur de base , qui peuvent être modifiées Cartes normales. Voyons voir, où sont-ils ici ? Carte normale. Nous y voilà. Maintenant, dans Gatto, vous devez l' activer avant de pouvoir y vous devez l' activer avant appliquer une texture Et une carte normale donne l'illusion de détails de surface en modifiant les calculs d'éclairage ou donnant l'impression de bosses, de bosses rides sur une surface lisse sans augmenter le nombre de polygones Il s'agit donc d'une sorte de géométrie de l'appât en manipulant la lumière et la façon dont elle affecte nos objets Maintenant, je ne sais pas si Mega Man a peut-être pas grand-chose ici, mais si nous jouons avec son ampleur, vous pouvez en quelque sorte voir cela se produire ici, surtout ici, dans le bas du corps. Nous revenons à l' échelle par défaut, puis nous l'ajustons, vous pouvez en quelque sorte voir comment cela affecte réellement la façon dont la lumière se reflète en haut ici La carte de rugosité. Maintenant, vous pouvez également l' obtenir sous la forme d'une carte de lissage, et le lissage et la rugosité Donc, si vous avez une carte de lissage et que vous avez besoin d'une carte de rugosité, vous pouvez simplement l'inverser et tout devrait bien se passer et Maintenant, dans ce cas, ce méga-homme a une texture de couleur ici, et il utilise spécifiquement le canal vert pour cela plutôt que le gris standard, c'est très bien. Désormais, la carte de rugosité, cette carte de texture contrôle la rugosité ou le lissage de la surface d'un objet, et elle affecte la façon dont la lumière se diffuse et se reflète sur la surface, créant ainsi des variations dans l' apparence de l' objet Maintenant, je sais que cela va affecter un peu le casque, alors je vais venir ici pour vous le montrer. Donc, si je devais réduire la rugosité et rendre lisse, regardez ça C'est comme si c'était super doux, fraîchement sorti de l'usine. C'est une beauté juste là. C'est un casque flambant neuf, voilà ce que c'est. Et comme vous le voyez, lorsque nous commençons à retrouver la rugosité, toutes ces lumières se dissipent une fois qu'elles l'atteignent au lieu de se refléter Et cela a fonctionné main dans la main avec notre carte métallique ici. Cette carte de texture, et encore une fois, ils utilisent la même texture pour cela, mais ils utilisent le canal bleu. Et la carte métallique ici ou les propriétés non métalliques d' un objet font varier la lumière ou le niveau de réflectivité et de brillance d'une surface Donc, si nous devions avoir une surface super lisse, comme vous pouvez le voir, avec notre métal sur toute la surface, cela ressemblerait à une belle pièce de métal brillant. Cependant, si nous commençons à réduire ce métal, nous pouvons constater que nous commençons à utiliser d'autres matériaux , comme un plastique brillant ou brillant, par exemple. Jusqu'à ce que nous arrivions là où il n' y a plus de métal, ce qui n'est pas réaliste. Chaque objet contient au moins un peu de métal. Et il y a une sorte de spéculation là-dessus. Vous pouvez le voir là-bas. spéculaire peut donc être quelque chose que nous utilisons dans les yeux lorsque nous voulons les faire briller un peu plus, par exemple Ou si vous avez un objet mouillé, cela pourrait aussi être bon dedans. Il suffit donc de rétablir le métal et de rétablir la rugosité par défaut Et occlusion ambiante, ce modèle comporte-t-il une isolation ambiante  ? Ce n'est pas le cas. L'occlusion ambiante ressemble donc une texture d'ombre que vous pouvez appliquer pour ajouter un peu plus de détails, par exemple, juste sur les bords, pour lui donner l'apparence d'un casque posé exemple, juste sur les bords, pour lui donner l'apparence d' sur le dessus d'une tête Et ça fonctionne comme ça à l'intérieur de tous ces petits plis et crevasses dans lesquels il nous serait un peu difficile de pénétrer Mais en général, c'est ce qu'il fait. Il s'agit essentiellement de simuler l'effet d'ombrage causé par la présence d' objets à proximité ou par l'occlusion due à un éclairage indirect, et dans l'ensemble, cela ne fait qu' ajouter de la profondeur et du réalisme à l'apparence de l'objet Maintenant, une autre carte que je voudrais examiner se trouve ici, celle des émissions. Maintenant, sur la carte des émissions, il y a une texture ici, et vous pouvez voir qu'elle est presque complètement vide, mais qu'il y a quelques objets dessus. Et ce que fait la carte des émissions, c'est que la carte des émissions brille. En gros, de votre objet. Donc, si vous aviez, disons, un personnage doté d'un œil robotique et que vous vouliez que cet œil brille, surtout dans le noir, c'est ce que vous feriez en tant que carte des émissions. Vous ne pouvez peut-être pas en dire trop, mais il y a ce petit endroit à l'intérieur du canon et la lumière ici. Ce sont les deux principaux points que nous allons remarquer. Et si j'augmente simplement ce multiplicateur d'énergie, regardez ça, vous pouvez vraiment le voir maintenant , surtout à l'intérieur du canon. Vous pouvez voir cette lueur rouge apparaître alors que nous nous rapprochons du point de vue direct, et nous pouvons voir cette modification ici lorsque je la baisse. Et comme vous le voyez tout au long, c'est à cela que la texture ressemble normalement. Et puis lorsque vous y ajoutez cette texture d'émission, tout s'allume. Donc, si vous avez des lumières sur un objet ou si vous avez besoin de lumière ou quoi que ce soit d'autre, la carte des émissions est ce vous voudrez utiliser pour cela Maintenant, nous avons un tas d' autres petites choses qui peuvent simplement ajouter à de petits détails comme la réfraction de votre éclairage, un peu de rétroéclairage, une certaine diffusion souterraine, ce qui est comme si je ne me trompe pas, la lumière, la façon dont elle interagit avec, par exemple, la Nous avons de la hauteur ici. Si tu voulais t'amuser avec des choses comme ça, ce que je ne sais pas, je n'ai pas joué avec la hauteur Je sais que nous avions une carte de profondeur par le passé. Nous avons un panneau d'affichage, nous grandissons, nous transformons. Nous avons toutes ces nouvelles choses ici , qui en ont été livrées avec quatre. Et je vais mentionner ici quelque chose qui va de pair avec le déclin de proximité. Des cerceaux. Donc, si nous devions l'augmenter un peu, nous pourrions voir toutes ces distances ici et tout sera affecté en fonction de la sera affecté en fonction de distance que vous vous trouvez par rapport à un objet. Comme vous pouvez le voir ici, c'est quelque chose qui pourrait améliorer les performances, par exemple. De cette façon, lorsque vous pouvez le configurer telle sorte que lorsque vous êtes suffisamment éloigné, il disparaisse complètement. Peut-être quelque chose comme ça, zéro, deux, je ne comprends pas, mais tu vois l'idée, non ? Vous pouvez donc faire le meilleur choix avec tout ce genre de choses, et si vous deviez continuer, ont-ils la deuxième passe ici ? Ce côté mûrit un peu fort avec tout ce qui est ouvert ici. Et je ne vois pas le second passage, ce qui est intéressant. Mais on y va. Nous avons des ombres que vous pouvez désactiver, qu'il en reçoive ou non. Nous avons les UV un et deux, qui peuvent être utilisés car différents ont des effets différents. Passe suivante. Vous pouvez donc ajouter un autre matériau directement au-dessus de celui-ci. Par exemple, c'est une façon d'obtenir une ligne noire autour d'un personnage pour lui donner un look plus animé Il y a certaines choses que vous pourriez faire à ce sujet, et vous pourriez y présenter les grandes lignes dans un deuxième passage. Allons-y. La plage de visibilité, c'est plutôt ce que je recherchais, je crois. Nous allons donc dire au moins un, puis nous dirons que cela se termine à dix. Alors voilà. Vous voyez donc qu'au fur et à mesure que nous nous rapprochons, l'objet entre et vous reculez, et l'objet n'est plus rendu, ou du moins cette partie de l' objet n'est plus rendue. Vous pouvez donc garder cela à l'esprit lorsqu'il s'agit d'une certaine optimisation, en particulier si vous avez un objet qui risque réellement ralentir vos performances C'est la plage de visibilité là-dessus. Mais cela devrait englober les matériaux et les différents types de cartes de texture. Oh, je dois mentionner une autre chose dans les documents c'est qu'ils l'ont changé. C'est bon. Nous n'avons donc plus que toutes ces options supplémentaires comme la coloration des sommets, ombrage, la transparence et tout ça Donc, si vous voulez avoir de la transparence sur un objet, disons que vous utilisez une image PNG pour votre texture, vous devrez en fait la modifier et la définir sur Alpha, je crois, mais cela ne fonctionne pas avec cette texture Mais au lieu d'utiliser les désactivations, vous devez activer la transparence si vous voulez avoir des parties transparentes de votre texture ou de votre maillage, peu importe Très bien, cela couvre donc le matériel ici. J'espère que cela vous permettra de mieux comprendre ce que sont les matériaux et les principales cartes de texture que vous allez rencontrer et que vous allez utiliser pour créer des jeux en trois dimensions. Et n'oubliez pas, bien sûr, d'expérimenter, combiner différentes cartes et de voir quels types d' effets visuels et d'apparences vous pouvez obtenir. Peut-être trouverez-vous quelque chose que vous aimez et qui est simplement créé en jouant Très bien, cela suffira pour cette section ou du moins pour cette vidéo, et j'espère que vous en apprendrez un peu sur les matériaux et ce qu'ils sont 46. Éclairage: C'est bon. Bonjour à tous Et aujourd'hui, nous allons examiner le monde, le monde de l'éclairage, et nous allons parler de la configuration de base en trois points utilisée en matière d'éclairage. Maintenant, évidemment, lorsqu'il s'agit d'éclairer une scène, il y a beaucoup plus à y consacrer. Vous devez examiner éléments tels que l' intensité de la lumière pour chaque objet qui va émettre de la lumière. Combien de lumières souhaitez-vous intégrer dans cette scène ? Cela va affecter vos performances, etc. Mais pour l'instant, allons-y et voyons en quoi l' éclairage est un élément essentiel qui peut améliorer considérablement la qualité visuelle ou affecter l'atmosphère de votre jeu. Bien, l'éclairage I Goto joue un rôle essentiel dans la création environnements réalistes et immersifs, ce que l'on peut dire de presque tous Et l'important, c'est que vous pouvez avoir quelque chose avec des textures photoréalistes et toutes vos cartes photoréalistes toutes définies là. Mais s'il ne peut pas être rendu assez bien ou si votre éclairage n'est pas assez bon, même s' il est photoréaliste, il se peut qu'il ne paraisse même pas réaliste L'éclairage est donc tout aussi crucial pour vos matériaux et votre scène globale que, exemple, l'ombrage dans un dessin Je peux complètement transformer ce que tu regardes. L'éclairage permet également de créer l'ambiance, de mettre en valeur les éléments importants et de donner vie à votre univers de jeu. Désormais, lorsque vous travaillez avec l'éclairage, plusieurs aspects essentiels doivent être pris en compte, tels que vos sources de lumière, les ombres et les propriétés de votre lumière. L'une des techniques les plus populaires est la configuration d'éclairage à trois points, qui consiste à utiliser trois lumières placées stratégiquement autour du sujet pour obtenir éclairage équilibré et visuellement attrayant. Maintenant, dans cette scène que nous sommes en train de regarder, j'ai juste Mega Man, de la section des matériaux. Encore une fois, je viens de me connecter et je viens de trouver ce modèle. Juste en ligne, il était téléchargeable gratuitement. Et vous pouvez voir que même s'il n'est pas éclairé, les parties rouges sont allumées. Nous avons illuminé ce bar et l' intérieur de ce petit canon, tout illuminé. Et elles proviennent des cartes d'émissions qui, je suppose, on pourrait dire «   éclairer la partie qui n'a rien à voir avec notre éclairage ». Ce n'est que de la texture. Bien, nous allons donc décomposer cette lumière en trois lumières que vous utilisez dans une configuration en trois points La première lumière sera votre lampe principale. Et pendant que nous faisons cela, je vais simplement cliquer sur mon appareil photo et sur ce bouton de perspective ici. Cela me permettra de voir ce que la caméra voit ici. Ainsi, la première lumière sera votre lumière principale, et la lumière principale sera la principale source de lumière et fournira l' éclairage principal du sujet. D'accord. Il crée les principaux reflets et ombres qui définissent la forme et la forme générales de l'objet. Maintenant, notez que si vous voulez des ombres sur votre lumière, vous devez en fait accéder aux propriétés de votre lumière et activer vos ombres. Et puis, bien sûr, vous pouvez y modifier certains de vos paramètres, ce sera à vous de décider Ensuite, nous avons notre lampe d'appoint, est généralement positionnée sur la position opposée à la lumière principale pour équilibrer l'éclairage, et son but est d'adoucir les ombres créées par la lumière principale. Cela permet de réduire le contraste entre les zones claires et sombres, ce qui se traduit par un éclairage plus uniforme et plus agréable. Donc, si nous jetons un coup d'œil, disons, juste autour du casque, je sais que nous ne pouvons pas vraiment zoomer sur cette section, mais je veux juste m'assurer que je ne déplaçais pas le modèle. Allons-y et jetons un coup d'œil ici. Je regarde juste de face. Nous pouvons voir à quel point c'est dur, comme cette obscurité qui règne ici dans le casque. Et cela sur le côté, selon la luminosité de votre moniteur, peut également être assez sombre, surtout si l'on considère que nos sources de lumière viennent du coin supérieur gauche et descendent. Et si nous devions encore une fois , en redescendant et en regardant davantage les pieds, nous verrons ce contraste saisissant que nous avons également entre les pieds et les jambes. C'est bon. Et si nous activons notre éclairage d'appoint, nous pouvons voir toutes ces parties s'illuminer, mais le contraste s' adoucit beaucoup, ce n'est pas un contraste aussi marqué ici. Et évidemment, cela viendra du fait de modifier votre énergie Et en général, vous voulez que l'énergie soit inférieure à celle de votre lampe d'appoint, car souvenez-vous la lampe principale est votre principale source d'énergie ici. Et selon votre situation, vous pouvez utiliser la lampe d'appoint pour faire plus froid ou plus chaud et avoir une lampe qui complète votre lampe principale Et le dernier éclairage d'une installation à trois points est le rétroéclairage, et le rétroéclairage, également connu sous le nom de lampe à rebord ou lampe cheveux, est placé derrière le sujet, à cheveux, est placé derrière le sujet, généralement en position plus haute, et il ajoute une sensation de profondeur et de séparation, met en évidence les bords de l'objet et crée cette sensation de profondeur et de dimension, si je vais de l'avant et Si vous activez cela, nous pouvons voir que nous avons un peu de lumière sur les bords ici haut. Et encore une fois, nous pourrions entrer et modifier, jouer avec ces chiffres, trouver quelque chose qui fonctionne pour nous Mais vous voyez à quel point cette lampe de jante met réellement en valeur ces bords ici. Sur ce rétroéclairage ou en utilisant ce rétroéclairage. Je vais donc juste le retoucher à ses numéros par défaut ici. Mais vous pouvez voir qu'il y a un avant et un après, lorsqu'il n'y a pas de lumière ici au lieu d'une configuration très basique en trois points. Cela semble déjà beaucoup mieux, et nous ne prenons même pas en compte d'autres facteurs, comme l'éclairage du monde ou l'éclairage de l'environnement qui nous entoure ou quoi que ce soit d'autre. Et nous avons déjà une belle version améliorée de ce avec quoi nous avons commencé. J'espère donc que cela aidera à illustrer la configuration de l'éclairage à trois points Je vais continuer et quitter l'aperçu de la caméra ici. Donc, si nous devions y jeter un coup d'œil, nous pouvons voir que nous avons notre clé ici, encore une fois, sur cet angle qui nous regarde. Si nous venons d'en haut, nous avons notre configuration en trois points et cela ressemble à un triangle. Notre objectif principal est donc de nous opposer au contraire. Ce sera notre lampe d'appoint, puis notre rétroéclairage sera toujours juste derrière notre personnage. Maintenant, pour cela, j' utilise juste des projecteurs. Mais bien sûr, si nous sommes à l'extérieur, nous pouvons utiliser des éléments tels qu'une lumière directionnelle, par exemple, ou vous pouvez utiliser des projecteurs en fonction de votre scène Ce sont donc des éléments que vous pouvez prendre en considération. Le troisième type de lumière que nous avons s'appelle la lumière omni, et il émet essentiellement de la lumière dans une zone complète de 360 degrés. Donc, ce serait plutôt pour des choses comme les ampoules, les bougies, des choses comme ça. Maintenant, je ne peux pas finir de parler du retour à l'aperçu de la caméra. Éclairage sans au moins mentionner un environnement. Désormais, une caméra peut avoir un environnement, ou vous pouvez avoir un environnement lié à la scène elle-même. Donc, pour moi, je vais simplement ajouter un environnement mondial à ma scène ici. Et il est important que vous sachiez au moins comment créer une cause céleste de base avec Goto Four Vous n' aurez aucun type de ciel. Il est juste en train d'être capturé. Ça ne l'est pas. Allez. Comme nous pouvons le voir, nous avons juste ce fond gris, et ce n'est pas très agréable quand vous parlez d'Ampeily. Si vous êtes à l'extérieur dans le monde, vous voulez au moins un ciel, Vous allez donc voir comment créer au moins un ciel de base ici, afin de passer à l'environnement et à notre environnement mondial. Nous avons créé un nouvel environnement. Et cliquez dessus pour l'ouvrir . Ensuite, nous avons nos antécédents. Nous avons une couleur claire, mais ce que nous pouvons faire, c'est créer une couleur personnalisée, un canevas, un flux de caméra si vous le souhaitez. Mais surtout, nous allons simplement opter pour un ciel ici. Ensuite, dans notre section du ciel, nous pouvons continuer et cliquer sur Nouveau ciel, ouvrir cette section pour le matériel du ciel. Nous pouvons dire que nous avons un ciel panoramique, ciel procédural et un ciel physique. Et avec notre ciel physique ici, vous pouvez voir que vous avez une couleur de fond ici, et notre couleur semble un peu foncée. Il semblerait que cela ait posé un problème là-bas. Laisse-moi juste y retourner. Et allons-y avec un ciel procédural. Allons-y. C'est quelque chose de plus normal que ce que vous pourriez voir. Maintenant, l'important ici est cet éclairage de toit peut également affecter votre modèle C'est donc ce que je disais. Nous étions juste en train de regarder la configuration en trois points, mais votre ciel peut entrer en vigueur. Disons donc que nous sommes assis ici dans un Allons-y avec, je ne sais pas, un coucher de soleil, non ? Donc, notre terrain, peut-être que nous allons être plus sur le côté vert, n'a pas vraiment d' importance à cet égard. Pour notre ciel, notre couleur de tête sera plutôt violette, n'est-ce pas ? Et puis c'est à l'horizon que nous trouverons notre orange. C'est vrai. Maintenant, il se peut que nous n'ayons pas beaucoup d'impact ici, mais nous en avons un peu, comme vous pouvez le voir dans l'éclairage, juste en face du nez, par exemple. Donc, si je prends ceci, je vais juste copier cette couleur. Si nous intervenons, voilà, vous pourrez voir comment cela affecte notre modèle ici. Je vais juste le remettre dedans. Et c'est dans cet environnement que nous pouvons également obtenir d'autres fonctionnalités qui peuvent avoir un effet sur notre monde, comme la lueur. Et bien sûr, vos options quant à l'endroit où vous allez poursuivre cette floraison. Cela va aller de pair avec votre excuse, une seconde, pour le post-traitement. C'est ce que nous allons choisir ? Donc, votre floraison, la force de tout cela, l'intensité. Vous avez donc toutes ces choses avec lesquelles vous pouvez jouer, mais en les désactivant, vous avez du brouillard qui peut affecter votre éclairage. Et puis nous avons aussi le brouillard volumétrique, qui peut affecter votre éclairage Nous avons donc toutes sortes de choses à prendre en compte. Et surtout, SDFGI ici. Cela aura un impact sur les performances de votre jeu, mais nous allons également proposer une simulation de lumière plus réaliste avec notre personnage. Allons-y. Et, bien sûr, vous pouvez toujours modifier les petits effets que nous pouvons avoir ici et trouver quelque chose qui vous plaise. De toute évidence, la densité est un peu insensée. Oh, c'est un chien, c'est mon erreur. J'ai cliqué sur le mauvais, SDFGI. Allons-y. C'est donc calculer tous nos rebonds de lumière Et nous y voilà. Nous pouvons maintenant avoir quelque chose qui sera un peu plus réaliste et qui pourrait être plus dynamique. Par exemple, nos pieds rebondissants ici. Vous pouvez modifier avec ça. Cascades Cela va de un à huit. le chiffre est bas, plus les performances seront élevées. Ensuite, vous pouvez le voir calculer ces rebonds fur et à mesure que nous obtenons une légère variation, puis passer à huit Ensuite, vous allez voir que nous avons calculé dans un peu plus de ces ombres, comme ici avec le cou et puis dans le petit, ce n'est pas un claquement dans le dos Ce seraient, je suppose, les pièges de nos garçons. Trap Zoids rappe toujours sur un trapèze. C'est comme si, attendez une minute, ça ne sonnait pas bien. Mais tu vois l'idée. Avec cela, nous pouvons créer un ciel de base qui peut avoir un effet sur notre personnage, et je vous ai montré comment faire une configuration de base en trois points. Vous allez donc avoir un triangle. Feux arrière toujours juste derrière. Où que se trouve votre lampe principale ou votre lampe principale. La lumière d'appoint se trouvera de l' autre côté avec un niveau d' énergie plus faible juste pour que les ombres soient moins fortes. Bien sûr, environnement de mots, créez un nouvel environnement, ciel pour le mode, créez un nouveau ciel, et vous opterez pour le matériau procédural du ciel. C'est bon. J'espère donc vous avoir donné une assez bonne idée à ce sujet de la façon dont la lumière peut réellement affecter votre objet à la fin de la journée et de l'importance de l'éclairage. Je vais aller de l'avant et vous montrer quelques comparaisons entre les choses sans éclairage et une fois que tout va bien, donc ici à l'écran, vous dites la mauvaise fenêtre. Mais ici, vous voyez un avant et après en matière d'éclairage et, en aidant vraiment à créer cette atmosphère, en particulier avec une image comme celle-ci, vous pouvez voir à quel point il peut être important de bien éclairer et à quel point vous pouvez réellement affecter ou voir. Je passe de quelque chose qui semble vieux ou plutôt correct à quelque chose de plus récent, peut-être un peu plus réaliste. Et si vous optez pour une ambiance plus effrayante, cela vous donne une assez bonne idée Donc, avant et après en matière d'éclairage. Ne vous relâchez donc pas en matière d'éclairage. C'est très important, surtout si vous devez travailler seul et que vous voulez faire quelque chose comme ça en 380. Nous avons certainement consacré du temps et de l'attention à vraiment apprendre l'éclairage. Et il y a des gens qui se concentrent uniquement sur l'éclairage des environnements et des scènes, etc. dans le cadre de leur travail, je dirais, n'est-ce pas ? Maintenant, ils peuvent également faire d'autres choses, mais ils se concentrent sur toutes les petites choses que vous ne remarquerez peut-être pas en tant que joueur dans un jeu, par exemple, ou si vous tenez compte de l'éclairage lorsque vous éclairez une scène, peut-être pour créer des effets visuels. Mais voilà. Je ne vais pas m'attarder plus longtemps. Je voulais juste vous faire savoir à quel point l'éclairage sera important lorsqu'il agit de trois D par opposition à deux D, ainsi que de vous montrer comment vous pouvez au moins créer un ciel de base et vous montrer visuellement l'énorme différence, ce que même une configuration d'éclairage de base à trois points peut faire. 47. Actifs 3D: Très bien, bienvenue le 1er avril. Et dans cette section, nous allons continuer et créer à nouveau Frogger cette fois, nous allons le créer en trois D. De cette façon, vous aurez une juste comparaison, je suppose, pourrait-on dire, entre le travail en deux D et en trois D, et cela devrait vous donner une idée des similitudes et des différences, et peut-être vous donner une idée de vos préférences personnelles que vous voudriez modifier D'accord, donc je vais juste utiliser des cubes de base, juste des maillages de base pour le créer, mais si vous voulez utiliser trois modèles en D dans votre programme, vous pouvez le faire si vous voulez les créer, devenez fou Si vous en avez déjà, c'est génial. Mais si vous souhaitez utiliser trois modèles D et que vous n'en avez pas à votre disposition, vous pouvez aller en ligne et vous pouvez trouver trois modèles D partout. Par exemple, cet endroit est Sketchfab, et ils proposent des modèles gratuits et payants Tout ce que vous avez à faire est de continuer et faire votre recherche ici en haut. Cliquez sur « Téléchargeable » pour que tous vos résultats puissent être téléchargés. De cette façon, cela élimine toute situation où quelqu'un ne fait que montrer quelque chose. Et maintenant, si vous ne voulez pas investir d'argent, il existe de nombreuses options gratuites. Et ceux-là avec l' inscription en dollars dans le coin supérieur droit. Oh, je ne peux pas voir celui-ci. Nous allons donc venir ici avec le signe du dollar, coin supérieur droit ici. Ici. Ce sont ceux qui vont coûter de l'argent, mais ceux qui n' ont pas ce signe du dollar. Et cela ne prendra qu'une seconde à charger. Et tu peux continuer. Tu peux y jeter un œil. Vous pouvez le voir, ce qui est génial pour Fab. Vous pouvez continuer et appuyer simplement le bouton de téléchargement ici sur votre Moth gratuit Évidemment, si vous êtes prêt à dépenser de l'argent, vous devez tout mettre dans votre panier , abord tout mettre dans votre panier , payer et tout le reste. Mais ce n'est que si tu le souhaites. J'ai trouvé ici des grenouilles gratuites que tu pourrais utiliser. Je ne sais pas si l'un d'entre eux est accompagné d'animations ou non. Vous devrez vérifier individuellement. Et pour cela, vous pouvez accéder à plus d'informations sur les modèles ici, puis vous pouvez obtenir toutes les informations, tous les différents types de modèles et GLB, GLTF et FBX, ainsi que OBJ, Cependant, OBJ, je peux vous garantir qu'il n'y a pas d'animations en tant qu' OBJ uniquement pour un objet statique. Et tu peux vraiment descendre. Vous pouvez voir PBR. Ce sont tous vos matériaux. Il a quatre textures spécifiques pour le sproc. Donc, si cela ne s'applique pas automatiquement, vous devrez examiner les matériaux et charger ces textures, comme nous l'avons vu dans la section sur les transitions. Et au fur et à mesure que nous descendons, nous pouvons voir, dans ce cas, celui-ci n'a aucune animation, et qu'il n'est pas truqué Vous devrez donc le configurer avant de pouvoir l'animer si vous vouliez créer votre propre animation Et il n'y a aucune animation qui l'accompagne, évidemment, ce n'est pas truqué Alternativement, nous avons également des journaux ici que vous pouvez vous procurer. Voici un camion ici, parfaitement gratuit. Donc, si vous voulez obtenir des modèles, vous pouvez vous rendre sur un site comme Sketchfab ici et vous pouvez jeter un œil à des modèles gratuits et les et Si vous souhaitez simplement utiliser les formes de base comme les cubes, comme je vais les utiliser pour cela, c'est parfaitement bien, car nous ne travaillons pas avec trois modèles en D. Nous ne faisons rien d' extraordinaire ou de spécifique. Nous ne faisons que déplacer des objets sur l'écran. Nous n'avons pas besoin d' animations sophistiquées pour que tout cela fonctionne. D'accord, c'est à vous choisir l'itinéraire que vous souhaitez emprunter, si vous voulez en créer, trouver des gratuits et les télécharger, ou si vous voulez simplement utiliser les formes de base fournies avec le moteur C'est à vous de décider. Maintenant, il faut le faire pour celui-ci. C'est à vous d'y réfléchir. Et si vous voulez utiliser les trois D, allez-y et passez votre temps à les collectionner et à les assembler. Si vous souhaitez les importer, comme vos autres ressources, faites-les glisser dans le dossier de votre projet. Très bien, commençons. 48. Cartes quadrillées: Très bien, tout le monde. Tout comme dans la version en deux D, nous allons commencer par créer l'arrière-plan pour cela. Et pour ce faire, nous allons avoir besoin de certaines choses. Tout d'abord, nous allons avoir besoin d'une caméra pointée vers le bas pour que nous puissions réellement voir ce qui se passe ici. Alors allez-y et prêchez une scène en trois D, ce qui ne serait qu'un numéro trois D pour votre racine J'ai renommé le mien en « Main ». Ajoutez une caméra en trois D ici, et vous pouvez continuer et ajouter une carte quadrillée. La carte quadrillée est la version en trois D d'une carte à tuiles. Et avec votre caméra en trois D, vous pouvez régler votre position Y sous la section de transformation à 25 et votre rotation du X à moins 90. De cette façon, vous pouvez regarder droit vers le bas. Maintenant, si vous deviez exécuter cette scène, vous verrez une boîte grise. Fantastique, mais au moins nous savons que les caméras fonctionnent ou du moins s'éteignent par défaut. Si vous êtes paranoïaque à ce sujet, vous pouvez continuer et activer le courant à l'intérieur de l'inspecteur Mais comme nous n' avons qu'une seule caméra, celle-ci devrait être la seule qui active actuellement une carte quadrillée. La NRT est une carte quadrillée. Nous devons avoir notre ensemble de carreaux, non ? L'art est une carte à carreaux. Nous avons besoin d'un ensemble de carreaux. Eh bien, pour une carte quadrillée, nous avons besoin d'une bibliothèque de maillages. Et nous pouvons en créer un nouveau, mais il ne contient aucune ressource. Donc, ce que nous devons faire, c'est créer cette bibliothèque. Pour ce faire, nous allons créer une nouvelle scène, et vous pouvez simplement redéfinir un nœud trois D comme nœud racine pour notre scène. Et encore une fois, ce n'est qu'une nouvelle scène en trois D, et vous en aurez une. Et tout ce que je fais pour la route, l'eau et le terre-plein, c'est simplement intégrer les textures des deux D Frogger, sprites et les utiliser comme Et je laisse juste leur position par défaut au milieu. Je vais donc vous montrer comment je m'y prends. Je suis donc entré et j'ai créé une instance de maillage trois D. Je la renomme Ce sera mon bloc en laiton pour mon treillis, je l'ouvre et je sélectionne un maillage en forme de boîte. Maintenant, si vous aviez un maillage personnalisé, un modèle personnalisé ici, si vous vouliez l'intégrer spécifiquement pour ce bloc, vous pourriez faire glisser le maillage cet endroit précis. Ce maillage, cet objet. C' est ici que tu le ferais. Maintenant, rien que pour ces blocs et la carte quadrillée, vous ne devriez pas en avoir besoin sauf si vous apportez votre propre maillage personnalisé, encore une fois, pour chacun de vos blocs Maintenant, ce bloc est complètement blanc ici, et vous remarquerez qu'il est beaucoup plus petit. Je vais juste cacher les autres ici pour que nous puissions nous concentrer sur celui-ci. C'est bon. La première chose à faire est donc de passer à l'échelle et de régler XY et Z jusqu'à deux fois sur son échelle. Et si nous le faisons, c'est pour qu'il s'adapte à un bloc entier de notre carte quadrillée au lieu de le placer sur le bord ou sur le côté dans une position étrange. C'est simplement plus facile pour nous d'aller de l'avant et de le faire, il suffit de doubler. Très bien, nous avons donc notre petit cube ici. Maintenant, ce dont nous avons besoin, c'est d'une texture dessus. Donc, ce que nous allons faire, c'est ouvrir la dérogation au matériau de surface Et la raison pour laquelle nous allons le faire. Oh, non, ce gâchis vient avec. Nous pouvons donc simplement ouvrir la section du maillage, et voilà le matériau. Et nous ajoutons simplement un matériau standard, nous l'ouvrons. Et voici notre texture d'albédo. Et c'est ici que nous aborderions nos sprites Frogger. Et pour ma pelouse ici, nous pourrions aller de l'avant et le ramener à la maison si nous le voulions. Nous pourrions le faire, mais ça n'a pas l'air très beau. C'est un peu bizarre. Et personnellement, je n'en suis pas un grand fan. Donc, personnellement, ce que je fais avec ça c'est que je vais prendre la texture médiane, et je vais la placer dessus. Et puis, par préférence personnelle, je vais passer à l'U V, en particulier, et je vais juste régler mon échelle ici, de mes UV à deux Je pense que ça semble au moins un peu mieux. Le problème, c'est que cela ressemble exactement à notre médiane, et nous ne serions pas en mesure de faire la différence. C'est donc ici que je vais utiliser le passage suivant dans notre matériel, et je vais ajouter un autre matériau standard ici. Maintenant, quand je l'ouvrirai, je vais régler l'albédo pour qu'il soit un beau vert semi-transparent Je vais accéder à la section de transparence et définir la transparence sur Alpha. Et nous y voilà. Nous avons, genre, une version verte de la médiane, donc elle se démarque et elle est suffisamment différente. Maintenant, tu n'aurais à le faire que pour le gazon si tu m'imites avec ça. Et pour la médiane, il suffit d'utiliser, bien sûr, la texture médiane, double de la taille, de l'eau. Vous pouvez faire la même chose avec la route. Une fois que vous l'avez, je vous recommande de l'enregistrer, Control S. Ou, bien sûr, vous pouvez accéder à votre CN, l'enregistrer et l'enregistrer tant que bibliothèque de maillage , bibliothèque de maillage. Et ce sera juste au cas où vous voudriez revenir et le modifier à l'avenir, ce que nous ferons probablement à un moment donné, juste à l'avance. Une fois que vous avez fait cela, nous pouvons passer à SN et à Exporter sous, et vous verrez la bibliothèque de maillages en option. Je sais que vous ne pouvez pas le voir sur mon écran maintenant, mais juste une exportation SN sous forme de bibliothèque Mesh. Et lorsque vous le ferez, cet écran vous sera présenté. Pas c'est gros. Voilà. Et juste pour des raisons de sécurité, je vais m' assurer que l' instance fly meshed nous active, même si tout devrait bien se passer assurer que l' instance fly meshed nous active, même si tout devrait bien Et sauvegardez-le quelque part. Je viens d'appeler Min MAP, et j'utilise l'extension mesh lib juste pour organiser les choses, car je ne veux pas que tout s'appelle Res ou Trez, par exemple. J'aime que les choses soient nommées correctement donc mesh lib or material, shader, des choses comme ça J'aime qu'ils gardent les extensions pertinentes pour ce qu'elles sont. Donc, une fois que vous l'avez, allez-y, dites-le et appuyez sur le bouton Enregistrer. Si vous en avez déjà créé un dans le futur et que vous revenez le modifier, vous pouvez continuer, il suffit de le remplacer. Tout ira bien pour toi. Et de retour dans notre scène principale, nous pouvons accéder à notre carte quadrillée. Et vous trouvez où vous avez enregistré votre bibliothèque de maillage, vous pouvez la faire glisser dans la section bibliothèque de maillages de votre carte quadrillée, et le tour est joué. Vous y avez toutes vos pièces. Maintenant, je suis allée de l'avant et j'ai obtenu Grass block et Grass End juste à cause de mon nom, et j' ai juste eu mon set à ajouter au lieu de remplacer. Ce que je vais faire, c'est revenir, exporter la bibliothèque de maillages Et je vais dire que je vais décocher, fusionner avec l'existant De cette façon, je le remplace complètement et je le remplace. Et maintenant, quand je viens ici, j'ai juste mes blocages habituels. Génial D'accord. Maintenant, pour le projet, j'utilise la même résolution que celle que j'utilise sur Frogger sur r2d3 Et si je vais de l'avant et que je le lance, j'aurai plus de facilité à placer mes blocs. C'est bon. Maintenant, vous verrez que nous avons le bloc gris là, ou qu'il ne semble pas y avoir quoi que ce soit sur notre fenêtre. Vous verrez si nous plaçons quelque chose, il apparaîtra. C'est ainsi que nous allons déterminer où se situent nos limites . C'est ce que nous allons faire. Nous allons définir nos limites si je viens ici. C'est le haut, ce qui signifie que je devrais regarder dans cette direction sur mon appareil photo. Voyons voir. C'est toujours à l'écran. C'est un peu trop loin. D'accord. Ce sera donc ce bloc. Tu peux en passer un en revue. Et je vais l'appeler là-bas, dans ce pâté de maisons. Maintenant, il ne reste plus qu'à trouver les autres coins Si vous comptez les espaces de la grille, vous devriez pouvoir les trouver facilement. Cela devrait être mon coin. Et alors notre coin devrait être ici, encore un ? Très bien, il y a donc le coin de toutes nos positions. Maintenant, si vous voulez le placer avec le bouton gauche de la souris, si vous ne savez pas comment le supprimer, c'est que vous ne l'avez pas compris. Il suffit d'un clic droit. Maintenant, nous pouvons commencer à placer nos objets. Notre médiane est donc notre deuxième ligne ici. Nous avions la route au premier rang. Nous avions la route en troisième, quatrième, cinquième, sixième et septième places. Puis nous avons de nouveau eu la médiane. Nous traversons, nous avions encore cinq rangées pour l'eau. Un, crochets deux, trois, quatre et cinq. Voyons ce qu'il nous reste à faire ensuite ? Nous avions notre zone de vent. Donc, pour cela, je vais redoubler d'efforts sur les extrémités. C'est parce que c'est un nombre impair. Et nous aurons des doubles, comme ça. Trois os, un, deux, trois, vers le bas, un, deux, trois, vers le bas, un, deux et trois vers le bas. Je vais remplir ces espaces vides avec de l'eau. Et puis nous avons eu la dernière rangée, où se trouvaient juste de l'eau, là où se trouvait une partie de notre interface utilisateur. Maintenant, allons-y et remplissons-le à nouveau. Et voilà. Nous avons utilisé la caméra pour nous assurer que nous remplissions toute notre zone visible ici Maintenant, il fait un peu sombre, comme vous pouvez le voir, et c'est parce que nous n'avons aucun éclairage. Je vais donc cliquer sur ma note principale ici et je vais ajouter une lumière. Et plus précisément, nous allons ajouter une lumière directionnelle afin d' imiter un soleil qui se couche. Je vais le soulever au-dessus, zoomer pour voir vers quel angle il pointe et le pointer vers le bas. Allons-y. Maintenant, nous avons de la lumière qui brille sur notre jeu de tuiles ou notre carte quadrillée que nous pouvons voir et voir réellement ce qui se passe ici. C'est bon. C'est donc tout ce que nous devons faire ici. Dans cette vidéo. Maintenant, je dois noter que nous sommes au niveau zéro ici. Cependant, si vous voulez descendre à moins un, vous verrez que nous allons descendre dans l'espace ici. Si vous vouliez en descendre un, vous pouvez certainement le faire juste pour qu'il se stabilise de sorte que 00, zéro soit assis au-dessus de nos objets, ou pour que nous puissions avoir, disons, une grenouille assise à zéro, et soit au-dessus du sol au lieu d'avoir à la soulever, ce que je pense que je vais passer et faire très rapidement ici. Très bien, alors je suis allée de l'avant et j'ai baissé l'esprit un par un, et comme vous pouvez le voir sur la caméra, je suis maintenant un peu décalée par rapport à mes chiffres. Nous pouvons donc venir et nous pouvons simplement remplir ces espaces supplémentaires. Il suffit d'en distinguer un plus large. Et ça va régler le problème. Boum. Boum. Solution simple. Facile à faire, rs. Vous savez, je pense que je vais juste apporter plus d'eau sur les bords. C'est bon. Alors, on y va. Voilà, nous l'avons. J'ai besoin d'une autre route en bas pour couvrir cette grille inférieure. Allons-y. D'accord ? Si l'écran tombe à nouveau, changez mon plancher en négatif un. Alors maintenant, quand nous serons assis à 00 heures, nous serons directement au-dessus . Et nous y voilà. Nous avons mis en place notre carte quadrillée. Notre caméra est pointée vers le bas sur notre carte quadrillée afin de pouvoir la regarder à vol d'oiseau. Et ça suffira pour celui-ci. Maintenant, vous pouvez voir que c'est très simple, en plus de devoir créer notre propre bibliothèque de maillages, ce qui, pour être honnête, si vous êtes en deux D et que vous travaillez avec des jeux de tuiles ou des cartes de tuiles, vous devez en quelque sorte créer votre propre jeu de tuiles, n'est-ce pas ? si vous êtes en deux D et que vous travaillez avec jeux de tuiles ou des cartes de tuiles, vous devez en quelque sorte créer votre propre jeu de tuiles, n' Il n'y a donc pas trop de différence entre deux D et trois D jusqu'à présent. Nous avons dû ajouter une caméra et une lampe. À part cela, notre processus est resté, dans l'ensemble, à peu près le même. Je veux dire, avec une bibliothèque de maillage, nous avons dû l'exporter pour obtenir cette configuration. C'était un ensemble de carreaux, nous avons dû modifier une section spéciale en bas. Il y a donc de petites différences, mais c'était en grande partie pareil. Ce n'est pas trop différent là-bas. accord ? Une fois que vous aurez préparé votre carte, que vous serez installé à l'étage que vous voulez, installé votre appareil photo, nous pourrons passer à la section suivante. J'ai oublié ce que nous avons fait ensuite, donc je vais devoir y retourner et y jeter un œil. 49. Créer le joueur: Très bien, nous allons donc créer notre joueur, et je vais vous montrer si je vais arrêter ça très rapidement Je vais aller de l'avant et vous montrer si vous choisissez d'utiliser des ressources en trois D ici et si vous en avez peut-être téléchargé ou créé. Vous voyez, j'ai un GLB pour Ug ici. Avec trois textures ici. Maintenant, cela devrait être appliqué automatiquement, et je vais juste cliquer dessus avec le bouton droit de la souris, et je vais sélectionner une nouvelle scène héritée. Je sais que vous ne pouvez pas le voir, mais je vais sélectionner une nouvelle scène héritée. Et vous verrez que j'ai maintenant mon nouveau froggi comme scène à part entière, et toutes ses textures devraient être complètement appliquées pour moi Maintenant, si vous vouliez utiliser le modèle, allez-y par tous les moyens. Si votre modèle comporte des animations, vous verrez un lecteur d'animation à l'intérieur de son décor. Et si c'est ce que vous voulez utiliser en tant que joueur, vous pouvez l' enregistrer en tant que joueur. Maintenant, il s'agit, dans ce cas, d'un nœud trois D. Il faudrait donc changer cela. Ce que vous faites, cliquez avec le bouton droit de la souris et modifiez, vous avez l'option de modification ? Maintenant, si je clique deux fois sur ma grenouille ici avant d'ouvrir la scène, passe en C, je n' ai pas le choix. C'est intéressant. si j'ai le choix si je vais ici. OK, donc tu double-cliques sur la scène. Nous allons chercher l'importateur pour trois grenouilles D. Et nous pouvons simplement entrer dans le type de racine ici. Cliquez dessus et sélectionnez le corps du personnage 3 D. n'ai aucune raison de le capturer. C'est la même chose que de créer un nouveau nœud, le même écran. Je peux simplement cliquer sur le corps du personnage en trois D, puis appuyer sur Créer. Maintenant que je vais avoir un corps de personnage sinon il faut appuyer le bouton de réimportation en bas de la page Fermez cette ancienne scène, cliquez avec le bouton droit de la souris et créez une scène héritée. Je vois bien que ma nouvelle grenouille a un corps tendre. Donc, si vous voulez utiliser un trois D, vous pouvez le faire. Faites-vous une petite grenouille heureuse, déplacez-vous. Comme je l'ai dit, celui-ci n'a aucune animation. Donc il serait juste en train de sauter. Eh bien, je dirais sauter, mais pas vraiment, non ? Il se déplacerait juste un espace à la fois. Et si vous voulez simplement opter pour la version de base, vous n'êtes peut-être pas super instantané en trois D, mais vous savez, vous devez au moins en apprendre un peu , vous y tremper les orteils un peu. Ce que nous allons faire, c'est créer une nouvelle scène, passer à l'autre nœud, créer un corps de personnage en trois D. Et nous allons également ajouter une instance de maillage L'instance de maillage dans laquelle vous pouvez simplement utiliser une boîte et pour qu'elle corresponde à tout le reste, nous allons définir l'échelle sur deux. J'ajouterai un matériau standard. Et comme c'est ma petite grenouille, je vais juste opter pour ça, du vert jaunâtre Et c'est tout ce dont nous avons vraiment besoin. Maintenant, si vous le vouliez, vous pouvez entrer et modifier certains de vos autres curseurs Tu vois, il y a une sorte de grenouille brillante ici en ce moment. Du spéculaire monte, et les grenouilles ne sont pas super métalliques, alors il y a juste un peu de métal dedans Et tu pourrais le faire avec une petite grenouille. Maintenant, si vous prévoyez que le haut vers le bas ressemble à ceci, et ce n'est pas le cas à aucun moment, prévoyez de déplacer la caméra peut-être ici. Mais si vous le déplacez ici, je suggère d'ajouter une deuxième couche au vent, la zone du vent sur la carte quadrillée je suggère d'ajouter une deuxième couche au , juste pour qu' elle sorte du sol. Mais si vous prévoyez simplement de partir du haut vers le bas, euh, que recherchons-nous Matériau Ce que tu pourrais faire, c'est attraper ta grenouille ou tes sprites. Hé, tu peux y apporter la petite grenouille pour la texture, et oh, il n'est pas très beau, alors peut-être que nous ne voulons pas le faire Hmm. Eh bien, je m'attends à ce que cela se passe un peu différemment. Mais je suppose que non. Mais je suppose que nous pourrions utiliser cette texture pour la couleur grenouille si nous le voulons, ou vous pouvez simplement la rendre verte, ou encore une fois, vous pouvez utiliser votre propre modèle en trois D, assurer que votre nœud racine est un corps de personnage en deux D. Quelle que soit la voie que vous voulez suivre, cela dépend entièrement J'ai dit au début que j' allais simplement utiliser les formes de base qui existent déjà au lieu de chercher et de trouver un tas de trois modèles en D. Mais si vous voulez le faire, faites en sorte que votre look soit encore plus beau. Fantastique Je t'encourage. OK, donc je vais juste m' y prendre et renommer corps de mon personnage en Frog, ou voulons-nous jouer Je vais choisir de renommer mon joueur, et je n'ai pas vraiment besoin d'autre chose pour le moment Je vais continuer et enregistrer ma scène en tant que scène de joueur. Je peux aller dans le Maine et nous pouvons faire venir notre joueur. Tout le chemin jusqu'au point de départ. Comme tout cela s'est passé avec la grille, elle s'aligne parfaitement. Il est juste au milieu. D'accord. Alors voyons voir. Serait-il vraiment d'accord avec cela ? Parfait. C'est bon. Donc, quel que soit l' itinéraire que vous choisissez pour ou je vais faire venir notre petit pote ici. Vous. Très bien, avec ça Choisissez n'importe quelle grenouille ou cube, quelle que soit la texture, ce que vous voulez pour votre grenouille. Une fois que vous l'avez, allez-y et enregistrez-le. Fais-le dès maintenant. Et je vous verrai dans le prochain, où nous commencerons à faire les petits mouvements. 50. Mouvement du joueur: Très bien, allons-y et créons le mouvement de base du joueur pour notre petite grenouille Je suis donc allé sur notre scène de joueurs et j'ai intégré son script Notre petite grenouille et dans notre script, nous sommes prêts à Nous pouvons passer directement à notre fonction de processus. Maintenant que nous travaillons avec les trois D, je dois dire que pour tout ce qui aura trait à la détection des collisions et aux corps physiques à l'avenir, il serait préférable de limiter les éléments qui les concernent spécifiquement, comme le mouvement dans le cadre d'un processus physique. Au lieu du processus normal, il s'agit de deux moments différents dans un cadre. Encore une fois, pour ce jeu, ne devrait pas être si important, mais je me suis dit que je vous ferais savoir pour le futur, si vous décidez de continuer à développer des jeux tridimensionnels, que tout ce qui touche à la physique, comme le mouvement, devrait être soumis à un processus physique plutôt qu'à un processus normal. Très bien, je vais donc continuer et nous allons créer notre fonction de mouvement. Donc, ce mouvement ne rapportera rien. Maintenant, j'ai déjà mes fonctions ou non, désolé. Mon mouvement est toujours en place puisque je participe au même projet. N'oubliez pas d'accéder aux paramètres de votre projet. Accédez à votre carte d'entrée. Et à partir de là, vous pouvez procéder à la configuration de vos entrées. Si vous n'avez pas cette configuration pour une raison quelconque, vous le faites peut-être dans le cadre d'un projet distinct, ce qui, encore une fois, serait bien. Mais oui, je voulais juste avoir une configuration toujours la mienne comme c'était le cas avec le froger à deux D. C'est bon. Donc, à l'intérieur d'un mouvement. Tout ce que nous avons à faire, bien sûr, nous devons vérifier, disons, que le point de saisie est actionné. Dites simplement que vous appuyez dessus parce que nous ne voulons pas le spammer. L'action que nous voulons vérifier va être terminée. C'est ce que j'ai nommé par action. Et pour déplacer notre petite grenouille, je me souviens qu'auparavant, nous avons déplacé la position du point automatique Donc, dans ce cas, nous sommes en trois dimensions. Nous devons utiliser un axe z ou z ici. Et voyons ce qui se passera si nous le faisons. Oups, un œuf sur mon visage. Je n'ai jamais appelé mouvement. C'est pourquoi ça ne marche pas. Donc, vous avez la bonne façon d'appeler les choses. Nous avons transformé la façon de base d'appeler les choses, ce qui va nous indiquer que nous ne pouvons pas utiliser un seul numéro. Nous devons utiliser un vecteur trois, et c'est pour un sujet beaucoup plus avancé lorsque nous commençons à aborder et c'est pour un sujet beaucoup plus avancé des choses comme la matrice, les matrices, etc. Transform Dot Origin Dot Z serait donc l'autre solution simple que vous pourriez utiliser. Vous pouvez voir, pour nous, qu'ils fonctionnent de la même manière. Cependant, selon votre situation et votre jeu, vous devrez peut-être utiliser ou préférer utiliser l'un plutôt que l'autre. C'est l'une de ces choses qui peuvent être situationnelles. Maintenant, si vous voulez que les choses restent aussi proches que possible de la version Tut, vous pouvez opter pour la position D, la position DZ Je vais aller sur transform.org simplement parce que c'est quelque chose que nous voulons généralement utiliser lorsqu'il s'agit de trois D, je dirais plupart du temps, c'est ce que vous allez voir sur le backend. Vous examinez le code des autres, du moins à travers mes expériences lorsque je vois d'autres personnes. Donc, dans ce cas, vous pouvez continuer et je suppose que vous pouvez utiliser celui que vous voulez, et nous pouvons laisser cela à vos préférences personnelles. Je vais tout écrire . Cela dépend de vous. Et nous pouvons continuer et remplir les autres, ces trois derniers pour notre mise à jour de gauche. D'accord, maintenant leur axe a été changé en bas à gauche, à droite, et ce sont toutes les autres déclarations Maintenant, si la hausse doit être négative, alors la baisse va être positive. Maintenant, la gauche sera négative, mais elle ne sera pas sur l'axe z. Ce sera sur le X. Et si c'est négatif sur le X, alors la droite sera positive sur le X. Nous pouvons donc continuer et essayer . Et nous y voilà. Nous devrions nous déplacer dans toutes les directions, car nous avons besoin de toutes nos zones de vent et nous y adaptons . Nous y voilà. Génial. Très bien, jusqu'ici tout va bien. Et si vous vouliez faire pivoter un peu Froggi ? Surtout si vous utilisez un modèle en trois D que vous avez apporté vous-même, vous voudrez peut-être le faire pivoter à nouveau au fur et à mesure qu'il se déplace, comme nous l'avons fait avec nos deux grenouilles en D. Eh bien, nous allons aller de l'avant et obtenir degrés d' autorotation Y, je crois que ce sera là. Et je vais le mettre à zéro , sinon il sera de 180. La gauche c'est, je crois, c'est 90, puis la droite c'est moins 90. Allons-y et vérifions-le. Et chaque fois que nous bougeons, notre petite grenouille tourne dans la position qu'elle doit occuper Maintenant, encore une fois, c'est à vous de décider si vous voulez le configurer de cette façon. Et encore une fois, si vous le voulez vraiment, vous pouvez entrer et vous pouvez avoir un s pour le ramener par défaut vers bas afin d'attendre sa rotation vers l'avant , de sorte que lorsque vous vous déplacez, vous pouvez voir que ce n'est pas le cas, nous n'aurons pas ce retournement instantané, comme nous nous y attendrions en deux D. Nous devrions donc entrer et faire une légère pause. Ça ne me dérange pas non plus. C'est peut-être parce que je fais le cube, mais je ne vais tout simplement pas avoir ce bloc dedans. Mais avec cela, nous avons nos mouvements de base, et nous pouvons commencer à avoir des choses comme des voitures, faire écraser par nos voitures, puis à faire en sorte que nos plateformes sautent sur la mort par l'eau, zone du vent, ou nous remettre en place Et sauf si j' oublie quoi que ce soit, notre version 3D sera entièrement configurée. Oh, eh bien, le fait de ne pas répondre fera partie de la mort, oui, alors allons-y. D'accord, il y a donc les commandes ici. Ce que nous achetons pour notre broger en trois D, n'oubliez pas de vous appeler fonction du mouvement à l'intérieur du processus Et n'oubliez pas qu'à l'avenir, si vous voulez continuer à jouer aux jeux en trois D, à tout ce qui a trait à la physique, comme le mouvement, car je suis sûr que vous y créerez des collisions . Vous préférerez vous en tenir au processus physique plutôt qu'au processus. Mais c'est vrai. Voilà. Voici le mouvement de nos joueurs. Et allons-y et passons à la suivante. 51. Créer un véhicule: Très bien, alors allons-y et construisons nos petits véhicules que nous pourrons utiliser pour apparaître dans le jeu Maintenant, bien sûr, encore une fois, si vous vous procurez trois modèles D pour véhicules, et ensuite, comme la grenouille, nous pouvons aller de l'avant, les apporter. Assurez-vous qu'ils sont orientés dans la bonne direction, ce qui devrait être évident lorsque vous les verrez bouger à la fin. Quoi ? Allez-y, faites-les apparaître ou créez un objet à partir de cette scène. Enregistrez-le en tant que véhicule. Et si vous faites les blocs de base avec moi, alors suivez-moi, nous irons de l'avant et nous nous créerons nous-mêmes. Nous allons nous fabriquer un petit camion. Je vais m'en tenir à la version en deux D aussi près que possible, et nous créerons le corps de notre personnage. Il s'appelle ce camion. Et bien sûr, cela nécessite un maillage plutôt que l'ajout ici. Et je vais aller de l'avant et ajouter une boîte. Va. Maintenant, pour rester dans notre situation de deux par deux, je vais augmenter l'échelle ici deux et je vais l'augmenter. Je suis d'accord, donc ça devrait être à la hauteur de notre personnage de joueur. Je vais m'assurer que tout cela est équilibré à plat. Bien sûr, vous n'avez pas besoin de nommer tout cela, mais ce sera l'onglet, je vais créer un autre désordre ici, et ce sera ma bande annonce. L'échelle de transformation va jusqu'à deux. Ce sera aussi une case, une position, une sur le Y. Je vais la ramener à deux sur le X. Et voyons voir. Je vais aller de l'avant et lui donner une couleur différente. Et nous n'avons aucune visibilité. Nous modulons. Je vais donc aller de l' avant et ajouter un matériau sur ce maillage. Ce sera ma bande annonce. Disons un matériau standard. Ouvrez-le et passez à mon albédo, et je vais juste y donner une couleur Je vais opter pour quelque chose dans la teinte orange. Et maintenant, si je le veux, je peux continuer et modifier certaines de ces vannes, afin de régler mon X à deux, et maintenant il est plus long, maintenant il ressemblera un peu plus à une remorque Replacez ma position sur ma troisième transformation pour qu'elle s' aligne un peu mieux. Et en résumé, vu du haut vers le bas, ce sera notre camion. Maintenant, si vous voulez faire un effort supplémentaire, vous pouvez aller de l' avant et apporter un autre messin. Si vous le souhaitez, vous pouvez prendre l'exemple ici, nous passons aux cylindres. Super Nous pouvons donc apporter cela et vous pourrez voir comment nous avons nos points de vue. Ensuite, nous pourrons y aller et vous pourrez modifier la taille de tout cela Supposons que vous réduisiez notre taille à un, 0,5. Nous y arrivons peut-être 0,25. Et là, nous aurions une roue sur le côté. Donc, si vous vouliez faire un effort supplémentaire et utiliser un autre maillage pour créer vos roues, donnez-leur un shader, une couleur C'est comme ça. Vous pouvez certainement le faire. Et puis, dans ce cas, je dirais de simplement déplacer l'ensemble du maillage un peu plus haut pour que les roues soient ce qui va se trouver au sol ici. Donc, si vous vouliez le faire, par tous les moyens, allez-y. Deviens fou. Si vous le souhaitez encore une fois, apportez votre propre camion, vous le pouvez. Et lorsque vous utiliserez ces formes pour créer votre propre camion, alors allez-y, revenez, et nous terminerons la prochaine pièce que nous allons ajouter au camion, puis nous créerons nos spinners et écrirons nos scripts Très bien, alors je suis parti. J'y ai ajouté quelques roues, et j'ai simplement soulevé le tout en sélectionnant tous nos maillages et en les soulevant Je vais appuyer sur Escape pour pouvoir tout désélectionner. Et voici mon simple camion. Maintenant, si vous le souhaitez, vous pouvez aller de l'avant et vous pouvez poursuivre, bien sûr, et créer vous-même d'autres véhicules. Je vais juste prendre ce camion facile pour y aller. Et pour se tenir au courant des deux aspects D pour une comparaison juste côte à côte. De cette façon, vous pouvez avoir une idée simple ou meilleure de la transition entre le travail en deux D et le travail en trois D. Nous allons continuer et poursuivre dans cette voie avec la détection de zone. Nous allons donc ajouter une zone trois D, comme nous l'avons fait pour deux D. Et sur cette zone, nous allons ajouter une forme de collision ici. Vous pouvez voir ici que j'ai eu une zone trois D et une forme de collision. Cette forme de collision, bien sûr, sera une boîte. Il n'y a aucune raison de ne pas le faire. Ensuite, assurez-vous que votre boîte couvre l'ensemble de votre véhicule. Mais il n'y a pas d'erreur quand votre pauvre petite grenouille est écrasée. Saisissez ces poignées oranges et retirez-les. À peu près au milieu de mon camion, tout près. Allons-y. Maintenant, il n'y a aucune erreur. Si ma grenouille est touchée, c'est lui qui l'attrape. Je vais les réduire un peu. Oui, parce que nous avons beaucoup de bases sur le côté. D'accord, pour le moment, je pense que c'est bon. Si vous le souhaitez, vous pouvez toujours revenir et modifier cela plus tard. D'accord ? Je vais donc continuer et garder ça. Mon butineur à trois D dit juste le point C du camion. Et maintenant, nous avons besoin d'un script pour notre camion, n'est-ce pas ? Parce qu'ils ont besoin d' être constamment en mouvement. Et voyons voir. Nous allons nous déplacer sur la ligne rouge, donc ce sera sur l'axe X transversal. C'est fantastique. Allons-y et ajoutons un script. Téléchargez notre script de camion. Et encore une fois, nous allons garder les choses aussi semblables que possible pour nos trois D comme pour nos deux D. Et nous n'avons pas à nous inquiéter à ce sujet. Si vous avez tout cela, allez-y et supprimez ces parties. Ils sont destinés à un jeu complètement différent . Oui, qu'y avait-il si vous n'y prêtiez pas attention et que vous cliquiez dessus comme je l'ai fait, et que vous n'aviez pas de script vide ou aucun script par défaut C'était une manette de personnage. Et la manette de personnage est généralement une manette qui possède ces aspects, vous pouvez penser, je suppose, plutôt à un jeu de tir à la première personne ou à une plateforme ou à des choses qui se situent plus dans ce sens en termes de RD, para peut courir, courir et sauter partout. Dans notre cas, notre camion n'a pas besoin de tout cela. Allons-y donc. L la même chose que nous faisions auparavant, comme exporter notre variable de direction. C'était un entier, et nous avons utilisé la valeur par défaut une dernière fois. Nous avons ensuite eu une variable pour la vitesse, qui était également un entier que nous avions à 32. C'est peut-être super rapide, maintenant, mais je pense que nous allons le découvrir. Donc je suppose que pour le moment, je vais le régler sur un. Je pourrai le modifier plus tard. Dans le cadre de notre processus. Nous allons aller de l'avant. Nous avons obtenu notre vélocité. Nous en avons obtenu la propriété X, et nous l' avons définie comme égale à notre vitesse multipliée par notre direction. Et, bien sûr, nous devons déplacer le toboggan, sinon notre vélocité ne servira à rien. Passons à notre scène principale, amenons notre camion et voyons s' il fonctionne comme prévu. Je vais le placer là et le faire fonctionner. OK, nous sommes fixés sur une vitesse de un, et ça va dans la direction opposée pour nous. Mais c'est bon. Sur ce camion, cela signifie que notre direction est moins un parce que nous voulons aller vers la gauche. Et nous y voilà. Nous pouvons voir notre camion traverser. Génial Et, bien sûr, nous pouvons nous y retrouver dès maintenant parce que nous n'avons aucune scène de mort où Little Froggy pourrait se faire presser Mais notre camion se déplace Maintenant, allons-y et maintenant que nous savons qu'il fonctionne correctement, faisons-le fonctionner, voyons si 32 est trop rapide ou s' il est toujours bon. Pour moi, c'est peut-être un peu trop rapide. Pour vous, cette vitesse pourrait vous plaire. Je l'ai donc réduit de moitié à 16. C'est peut-être un peu rapide pour moi aussi, mais je devrais peut-être utiliser huit points de ma vitesse et essayer encore une fois. OK, je pense que je vais en choisir huit, moins pour le moment, encore une fois, tu pourras toujours revenir et le modifier plus tard. Et maintenant, allons-y et créons nos spanors ici. D'accord ? Je n'ai donc pas de véhicules qui vont dans la direction opposée, et ce serait ennuyeux de nous voir tous aller dans la même direction. Donc je vais juste avoir ce camion, et je vais le faire prendre , vous savez, une direction différente. Certains vont aller à gauche, d'autres à droite pour ça. Bien entendu, si vous avez plusieurs véhicules, vous avez un véhicule différent pour chaque sponner. Nous allons donc passer à notre scène principale, et nous allons ajouter la même chose que dans Tot, nous allons ajouter un marqueur D et ce sera notre spaner Je crois que nous avons utilisé un marqueur ou avons-nous utilisé un nœud ? Je pense que nous avons utilisé un nœud. Permettez-moi de cliquer avec le bouton droit de la souris sur Changer de type et de passer à Ne pas le changer en clé de tracé maintenant Et quelle est la position de ce camion ? Retirez-le un peu ici. On peut donc dire 32 et 12. Oui, ça a l'air bien. Donc clé, position de transformation, 32 sur le X, 12 sur le z. Et c'est là que nous allons repérer ces véhicules, n'est-ce pas ? Allons-y et ajoutons un script pour notre générateur. Et encore une fois, en nous rapprochant le plus possible de la version TD. Nous allons avoir notre camion variable, que nous avons appelé plus tard un véhicule. Tu sais quoi ? Nous allons simplement appeler un véhicule maintenant. Pourquoi ne pas juste au cas où vous auriez des véhicules supplémentaires. Ça équivaut à un rechargement, non ? De notre camion. Mais bien sûr, vous souhaiterez peut-être le définir séparément. De cette façon, nous pouvons utiliser le même script pour tout. Allons-y. Nous avons simplement pris de l'avance et l'avons exporté pour une scène pleine à craquer. Et dans ce cas, bien sûr, je vais juste aller à l'intérieur de mon véhicule. Et inspecteur, je vais juste ajouter mon camion à ma scène de camion. Allons-y. Et voilà, il ne nous reste plus qu'à appeler notre fonction que nous allons créer ici, spawn vehicle OK. Évaluez ce funk span. Véhicule Et nous pouvons refaire ce que nous avons fait auparavant, où nous pouvions obtenir un temps d'attente aléatoire ici. Et il s'agit d'un entier aléatoire. Et nous utilisons le pourcentage trois ou du moins j'utilise le pourcentage trois plus un. N'oubliez donc pas que ce pourcentage trois nous donnera zéro, un, deux, et en ajoutant un, nous obtiendrons un entier aléatoire de un, deux, trois. Donc, l'un d'entre eux. Et comme nous l'utilisons comme secondes, cela nous laissera une à trois secondes entre chaque voiture. On dirait un arbre comme nous le faisions avant Créez notre chronomètre, nous allons réduire notre temps d'attente et gagner notre temps. Après avoir attendu aussi longtemps, nous créerons une instance de notre camion ou de notre véhicule. VI est égal au point du véhicule, instancié. Et nous devons ajouter à la scène so self point ad Child, notre véhicule. Et comme ce sponsor est sur le côté droit, il faut qu'il aille vers la gauche. Maintenant que je ne travaille qu' avec ce seul véhicule, j'ai besoin d'un moyen pour que ce véhicule soit réglé par défaut ou plutôt par défaut, lorsqu'il s'étend, afin de pouvoir les faire circuler des deux côtés Parce que si je ne le fais pas, ça va revenir à la case départ pendant une seconde. Et quand ce sera fait, nous appellerons Self Curt Span. Donc, si nous allons de l'avant et examinons cela maintenant, quels sont les trois D. Fabriquez ce camion, supprimez-le. Si nous le créons maintenant, c'est parti. Il y a un camion. C'est un autre camion. Allons-y. Tu vois, je pense que c'est une bonne vitesse pour ça. Mais vous pouvez voir ici que tous mes camions vont évidemment aller vers la gauche. Donc, si vous voulez utiliser un véhicule comme moi, juste pour vous aider à apprendre, vous pouvez continuer et définir un paramètre supplémentaire, spécifiquement pour votre spinner Et ce paramètre, je vais juste procéder à l' exportation. Je l' appellerai VD pour la direction du véhicule. Ce sera un entier et par défaut, nous le définirons sur un. Et plus précisément cet observateur, nous allons le régler sur un niveau d'eau négatif, évidemment, parce qu' il doit tourner à gauche Donc, tout ce que je ferais ici, c'est de faire direction du point V, non ? C'est ainsi que nous l'avons appelé. Ouais Direction. Égal à BD. C'est bon. Alors maintenant, si je viens ici jusqu'au camion, si nous venons ici et si je devais remettre ma direction par défaut à une direction positive, sauvegardez-la. Alors maintenant, continuez dans la direction négative, car c' mon sponsor qui devrait nous donner cette direction. Allons-y. Alors le camion arrive. Maintenant, je peux utiliser le même script si je dois utiliser le même véhicule. Maintenant, je peux simplement le régler entre un négatif , un positif ou une direction. C'est bon. Donc, si nous devions faire la même chose avec un plus grand nombre de véhicules, eh bien, si nous avions la même chose, chaque véhicule allant dans des directions différentes, nous utiliserions évidemment cette variable. Mais allons-y et faisons en sorte que nos autres sponsors s' installent ici très rapidement. Très bien, tous mes sponsors sont là. Donc, puisque j'utilise un seul véhicule, le sponsor 4 puisque j'utilise un seul véhicule, va avoir configuré un VD réglé sur un. Le sponsor 2 en sera également un. Et bien sûr, trois ans et mon fils d'origine seront tous négatifs parce qu' ils sont de l'autre côté Et maintenant, si nous devions y jeter un coup d'œil, nous devrions avoir quelque chose à suivre, et il y aura beaucoup de circulation à parcourir pour notre pauvre petite grenouille Encore une fois, vous pouvez venir ici, vous pouvez modifier des choses comme le temps d'attente. Oh, mon dieu, celui-ci est un peu désordonné. Mais oui, voilà. Tu peux entrer, modifier ça Il semblerait que nous puissions peut-être placer un autre camion au sommet . Voilà. C'est très dangereux pour notre pauvre petite grenouille qui est très proche Nous devons voir lors des tests si c'est peut-être un peu trop proche, et si c'est le cas, supprimez simplement cette ligne. C'est-à-dire qu'il semble être en train de toucher notre grenouille. D'accord ? Voilà. C'est aussi proche que possible pour notre version 3D. Par rapport à nos deux D, nos pauvres fileurs sont donc tous prêts. Notre rocher a surface de trois D et une forme de collision Nous pouvons donc le détecter lorsqu' il s'agit d'écraser notre grenouille et voilà Nous avons installé nos véhicules. Encore une fois, si vous avez d'autres véhicules, allez-y par tous les moyens, amenez-les, regardez-les, utilisez-les, faites-en installer différents dans amenez-les, regardez-les, utilisez-les, différentes directions. Et je te verrai dans le prochain. Et que ferons-nous ensuite ? Après ces véhicules, nous examinons la mort de réaction de notre joueur. Donc, la prochaine étape sera d' écraser notre grenouille. 52. Mort et respawn du joueur: Très bien, trouvons la mort et la réapparition de notre joueur et la réapparition Passons à notre script, et nous pouvons maintenant connecter notre signal à notre camion. Notre signal sera connecté par script, encore une fois, gardez-le comme TD. Mais comme d'habitude, vous pouvez toujours entrer, sélectionner votre zone, accéder à l'onglet « Non » en haut et continuer, descendre, regarder le signal que vous souhaitez connecter. Mais il est bon que vous sachiez comment les connecter par le biais du code, simplement parce qu' à l'avenir, vous devrez probablement créer vos propres signaux à un moment donné, puis vous devrez les connecter, et c'est encore mieux si tout se trouve au même endroit, comme dans le code à regarder, surtout si quelqu'un comme dans le code à regarder, d'autre doit regarder votre code ou peut-être que vous devez revenez et regardez votre code dans le futur. Mais allons-y. Faisons en sorte que nos nœuds obtiennent notre zone trois D. Et nous allons connecter le signal saisi par le corps le point saisi par le corps. Connectez-vous, et nous allons nous connecter à un appelable. Et tout comme dans Tutti, nous allons l'appeler player hit Cela a un corps. Nous allons créer un nœud serré. J'ai oublié le E à la fin du mot appelable. Nous y voilà. Nous avons donc juste eu une petite faute d'orthographe. Pas de problème. Très bien, nous devrions donc être dans une situation très familière en ce moment, comme lorsque nous l'avons créée en deux D. Nous allons donc vérifier si c' est un joueur. Encore une fois, gardez le niveau des majuscules en minuscules. Si je regarde mon écran principal, je vois un joueur. Je l'ai orthographié ici avec un P majuscule, donc s'il s'agit du nom du joueur et du corps Je dirais que si body point a une méthode et un nom sous forme de chaîne, nous l'appellerons mort comme précédemment. Et nous dirons Body Dot Death, c'est ce que nous appellerons. Et nous y voilà. Jusqu'à présent, ce côté est exactement le même qu'en deux D, sauf que nous utilisons trois D au lieu de deux D pour la zone. Tout le reste est identique. Très bien, maintenant, notre joueur, nous n'avons pas cette fonction de profondeur. Il n'existe pas, donc il ne sera jamais appelé. Alors allons-y et appelons-le pour nous. Et tout ce qui va arriver, c'est que nous devons désactiver la forme qui a été utilisée pour entrer en collision avec le camion Ensuite, assurez-vous qu'il est orienté la bonne direction ou qu'il y a un peu de grenouille au cas où vous utiliseriez un modèle en trois D et que vous le réapparaissiez dans une position différente, n' et que vous le réapparaissiez dans une position différente Allons-y donc et nous pouvons le faire. Notre joueur doit donc ouvrir cette scène et lui donner une forme de collision. Que nous nous débarrassions de ce triangle d'avertissement que notre joueur a eu pendant tout ce temps. Notre forme de collision sera une boîte pour vous. Vous voudrez peut-être opter pour une forme différente. Tu devrais peut-être opter pour une boîte. C'est à vous de décider. Je peux juste venir ici et ça pour qu'il me corresponde à une taille parfaite. Maintenant que notre joueur possède une feuille de collision, il peut être détecté lorsqu' il est heurté par le camion. Et lorsque le camion nous renverse, nous voulons appeler notre fonction « mort ». Et en cas de décès, nous voulons régler notre rotation, comme nous le faisons lorsque nous montons Je vais donc régler ma rotation à zéro. Maintenant, si votre modèle est orienté dans la direction opposée, il est évident que votre position vers le haut sera de 180 et que votre position vers le bas sera réglée sur zéro dans votre mouvement, ce qui se reflétera en profondeur. Donc, quel que soit votre état de santé, c'est le même degré que celui auquel vous vous exposez au moment de votre mort. Nous voulons désactiver notre forme de collision afin de ne pouvoir être touchés qu'une seule fois. C'est bon. Allons-y et faisons des appels différés. Déterminons donc notre forme de collision et différons l'appel. Et c'est beaucoup de choses à aborder. Je vais juste commencer à le taper désactivé. Le deuxième argument sera vrai car c'est ce que nous voulons définir, nous voulons définir disabled sur true. C'est bon. La prochaine chose que nous allons faire, si je me souviens bien, nous sommes montés en puissance et nous avons créé nos états vivants et morts. J'ai ajouté ça à ça. Allons-y, montons en haut et créons nos états jusqu'à ce que nous ayons notre état Enum, nous ayons des vivants et des morts, et plus tard, nous en avons ajouté un autre Nous allons créer ici une autre variable appelée état actuel. Et le type dans lequel nous allons le déclarer est un État. D'accord. Maintenant, nous pouvons aller de l'avant et définir l'état actuel de notre mort. Disons que l'état actuel est égal, non ? State Dot est mort. Et allons-y et configurons notre réapparition. Donc, funk respawn. Et juste comme ça, nous allons définir la forme de notre collision et notre état actuel. C'est bon. Nous voulons donc le faire, nous allons d'abord le déplacer. Nous dirons que set disabled est défini sur false. Notre état va évidemment passer de mort à vivant, et nous devons réellement changer de position à cet égard. Donc, pour cela, nous devons obtenir une position de joueur ici. Je vais ajouter un nouveau nœud. Tu as déjà vu tout ça. Nous pouvons aller de l'avant et utiliser le marqueur pour le nœud, comme vous le souhaitez. Je vais juste utiliser le marqueur trois D. Et voyons quelle est ma position ici ? Un, un, 15, donc je vais mettre la même chose sur mon marqueur, pour que je réapparaisse au même endroit que celui par lequel je suis parti Un, 115. Allons-y. Donc, là où je commence au début de mon jeu, c'est là que je devrais commencer lorsque je réapparais. Et nous allons continuer en l'appelant player, spawn, location. Et nous allons définir notre position. Point automatique. position est égale et nous devons faire apparaître le nœud d'un joueur Maintenant, n'oubliez pas que notre script est sur notre lecteur, nous devons donc en créer un. Nous pouvons donc écrire Get parent ou simplement dire get node. Et pour le chemin ici, nous pouvons utiliser une barre oblique en forme abrégée de G parent, puis taper nœud ici, du joueur Bond Jason position du joueur Bond Jason Got Bien, maintenant, lorsque nous sommes renversés par un camion, nous devrions être en mesure de réagir Et j'espère que ce camion n'est pas trop près. Et oups. Nous avons une chose ici. Nous n' allons pas vraiment avoir de réponse dans notre processus. Nous devons changer cela, alors nous disons que nous devons vérifier si notre rockie est vivant. J'ai presque oublié ça. Et en deux D, nous avions également un chronomètre lors de notre réapparition, mais c'est bon Alors allons-y et finissons. Nous sommes donc prêts là-haut. Je dis si l'état actuel est égal à l'état point vivant. Nous pouvons faire notre mouvement. Un LFO dont l' état actuel est W, LF est égal à l' état mort par point. Sport R. C'est bon. Maintenant allons-y et essayons-le. D'accord, nous pouvons avancer, à gauche et à droite. Et oui, ce camion est trop près. OK, il semble donc que je vais devoir supprimer l'un de mes sponsors ou le modifier un peu. Mais je pense que pour ma part, je vais m' en débarrasser complètement. Je vais juste le retirer. Ce n'est pas un problème. Et maintenant, nous devrions être bons. Nous devrions avoir un peu d'espace en haut et en bas. Ma grenouille ne va pas s'écraser, et vous pouvez le voir à , nous nous déplaçons Dès que nous sommes renversés par un camion, nous intervenons. Espoir. OK, nous n'avons donc pas beaucoup de marge de manœuvre, alors je devrais peut-être y aller et modifier les boîtes de collision de mes camions Hyloiss va être assez dur, épicé avec cette bouche Mais cela vient juste de quelques ajustements. Je vais aller de l'avant et le faire. Je ne vais pas vous garder ici. Mais nous y voilà. Nous avons un Death and Resan qui travaille ici sur la partie routière Ensuite nous pouvons envisager de mourir sur l'eau, créant nos plateformes aquatiques. 53. Mort de l'eau: D'accord, donc comme dans la version à deux D. Nous allons déterminer si nous sommes sur l'eau en obtenant l'identifiant de notre carte quadrillée dans ce cas, parce que nous sommes sur trois D. C'était le jeu de tuiles, la carte sur deux D. Donc, tout d'abord, comme dans Tut, nous allons commencer par une variable prête, qui, encore une fois, définit simplement la variable à l'intérieur de la fonction prête En d'autres termes, cette variable n' est crachée qu'une fois le jeu lancé Et comme nous sommes le joueur, nous devons en monter une jusqu' à notre parent, puis redescendre pour obtenir notre carte quadrillée. Nous l'avons donc défini sur le nœud G, et nous avons notre équivalent de Get parent et de grid Map Ensuite, nous descendons et nous avons notre identifiant Bell ici. Fonctionnement, prêt à fonctionner, prêt à coder ici. Et cela va être très similaire à notre version TD. Maintenant, pour notre version TD, nous avions une variable pour MAP pause, qui était notre grille. La traduction des cartes serait gridmp point Local TMAP et cette carte prenait position Désolée, il a fallu une dispute. Et c'est la position de notre joueur que nous avons transmise. Et nous avions également une variable pour ID, qui était l'équivalent de notre carte quadrillée Yet sell source ID. Mais au lieu de l'identifiant de la source, nous devons vendre des objets lorsqu'il s'agit de cartes quadrillées. Et cela ne nécessite pas deux paramètres. Je n'en ai qu'une, et celle-ci sera notre position sur la carte. Nous n'avons donc pas à lui transmettre de couches ou quoi que ce soit d'autre. Au final, ça y est, et c' est tout ce dont nous avions besoin, et nous dirions si notre identifiant, dans notre cas, était égal à trois parce que trois était l'identifiant de la carte en tuiles, du jeu de tuiles. Dans ce cas, si je regarde ma carte quadrillée et que j' ouvre la bibliothèque de maillages, je peux voir que l'eau est associée à l'identifiant ici. Je vais donc dire si ID est égal à un, et c'est ici que nous appellerions. Ensuite, nous vérifions l'identification du portable peu près à chaque fois que nous déménageons. Boum, mais un boom. Mais un boom. Et je vais juste le retirer du processus pour le moment, afin que nous ne le spammions pas Maintenant, nous allons procéder à son exécution, et nous allons voir un problème. Tu vois, rien ne se passe vraiment ici, d'accord ? Mais nous n'imprimons rien. Mets-y juste un mensonge. Et quand je mettrai le pied sur l'eau, on peut s'attendre à ce que je meure ici, et c'est le cas. Maintenant, est-ce parce que j'ai oublié de le faire ? J'ai donc oublié de réinitialiser mon lecteur ici, et c'est pourquoi cela a fonctionné. Maintenant, normalement, votre joueur devrait, encore une fois, se trouver au-dessus de la carte, et vous verrez ici, je vais juste me précipiter pour que cela ne fonctionne pas. Et la raison en est que, eh bien, vous avez vu que mon joueur était enfoncé là-dedans, c'est parce était enfoncé là-dedans, que nous avons coché trop haut Donc, dans la position que nous vérifions, c'est zéro. Nous devons donc passer dans une position plus basse que celle que nous utilisons ici. Je crée donc une nouvelle variable appelée cur pause pour notre position actuelle. Et il s'agira d'un vecteur trois en particulier, il veut un trois I. Nous allons donc simplement passer cela. Et pour cela, nous allons simplement utiliser notre autodéposition X ou notre Y, nous pouvons utiliser un négatif. Ce sera suffisamment bas, et autodéposition Z pour le troisième argument. Ensuite, au lieu de transmettre notre propre position à la carte locale, nous appliquons la pause actuelle, à droite, dans la courbe. De cette façon, nous pouvons obtenir notre position, mais un bloc plus bas, ce qui devrait nous indiquer où se trouve notre identifiant de portable, n'est-ce pas ? Où se trouve la carte quadrillée. Alors maintenant, quand on touche à l'eau, voilà. Nous allons de l'avant et nous mourons, et notre réapparition ne gâche rien parce que nous cochons un bloc en dessous du joueur. C'est bon. Nous avons donc réglé la profondeur de notre eau maintenant. Tout ce que nous avons à faire, c'est nos plateformes aquatiques dans notre zone de vent, configurer notre système de score et le I. Et ensuite, si vous le souhaitez, nous pouvons peut-être installer une autre caméra qui passe derrière la grenouille afin de vivre une expérience plus gourmande. C'est bon. Mais c'est tout. La profondeur de notre eau fonctionne. Vous pouvez donc voir que c'est à peu près pareil, sauf pour cette ligne où il suffit de cocher un bloc en dessous de notre joueur. Mais pour l'essentiel, encore une fois, c'est pareil. Donc, si vous aimez travailler en deux D et qu'on vous demande de faire quelque chose en trois D, vous pouvez constater que nous avons déjà beaucoup fait de roger ici. Et en gardant les choses à peu près comme nous le ferions lorsque nous l'avons fait en deux D, vous pouvez voir la majorité de tout se transférer. Nous avons dû écrire notre position. Nous avons écrit notre position dans Little different et notre rotation. J'ai été écrit un peu différemment, mais je veux dire, ça a toujours du sens. Ce n'est pas très différent. Et nous avons dû ajouter une ligne ici pour en cocher une en dessous notre joueur plutôt que celle de notre joueur complet. Donc, si vous préférez deux D et que vous devez faire quelque chose en trois D, ne vous laissez pas intimider. À peu près tout ce que vous avez appris en deux D sera transféré en trois D. Nous devons juste nous rappeler que lorsque nous définissons la position actuelle ici, nous avons cette troisième dimension pour travailler sur X, Y et Z ou X Y et Z. D' accord. Donc ça va se faire à partir d'ici. Ensuite, nous allons passer aux plateformes. 54. Plateformes d'eau: Très bien, allons-y et configurons toutes nos plateformes. Maintenant, je suis parti et j'ai créé mon journal ici. C'est juste un cylindre avec un matériau dessus sur l'instance en maille, et j'ai coloré l' albédo, le brun Il possède également une zone en trois D contenant une forme de collision, et cette forme de collision est juste une forme de boîte, et je couvre juste la partie centrale pour qu'il n'y ait aucun problème quand il s'agit de sauter dessus, et le jeu pense d'une manière ou d'une autre que nous sommes peut-être toujours dessus simplement parce que nous le touchons à peine ou quoi que ce soit J'ai donc opté pour le milieu et plus. Quand on saute dessus, on devrait être au milieu de toute façon. Donc, je vais de l'avant et je l'ai fait. Et j'ai également connecté deux signaux, le signal du corps entré et le signal du corps sortant, sur mon script de journal Et tout comme dans la version à deux D, nous avons une direction exportée. Et dans notre processus, nous avons juste le point de position X plus égal à une fois Delta. Et si nous regardions cela en trois D, vous pouvez le voir avec l'échelle, souvenez-vous des journaux, car ils doivent correspondre à tous nos blocs. Je l'ai redimensionné à une échelle de deux au lieu d'une. Et vous verrez à quelle position se trouve le point X. Il y a une distance avec celui-ci. Je crois que c'est ce que nous utilisons, n'est-ce pas ? Oui. 10 fois Delta. C'est la rapidité avec laquelle nos journaux se déplacent. Vous pouvez changer cela si vous voulez faire deux fois Delta, trois fois Delta, selon ce que vous jugez nécessaire pour vous. Pour ma part, je vais le laisser allumé une fois sur Delta pour le moment, juste pour les tests. Et puis, tout comme mes camions, je peux revenir en arrière et peaufiner les choses plus tard C'est bon. Donc, si vous voulez continuer et prendre un moment, assurez-vous que vos journaux sont créés. Vous avez configuré vos zones. Et si vous voulez aller de l'avant et simplement en disposer parfaitement cinq comme ceci. Allez-y. Tu peux Allez-y mettez la vidéo en pause, allez-y et faites-le. Et quand tu seras prêt, allons-y et continuons, et nous nous occuperons de la partie plateforme, car comme vous le voyez, si nous sautons dessus, rien ne se passe, nous mourons en quelque sorte debout sur l'eau Mais comme je l'ai dit, le premier de la section Tut est un peu étrange, étant donné que nous sommes une grenouille, nous ne devrions pas mourir dans l'eau, nous ne devrions pas nous noyer Mais nous y voilà. Nous avons nos journaux. Maintenant que nous avons notre grenouille, la question est savoir comment allons-nous nous en sortir Eh bien, nous allons le prendre comme nos deux D, non ? Notre corps est entré et notre corps est sorti sur notre joueur, nous avons notre plateforme de trois nouvelles variables, qui est une valeur booléenne, définie sur false par défaut plateforme actuelle, qui est un corps de caractère trois D cette fois au lieu de deux D, défini sur null par défaut, et une direction de plate-forme , qui est un int, un entier, et qui est juste définie sur un par défaut, et celle-ci nous fera aller vers la droite. D'accord. Donc, ici, nous n'avons rien à faire nécessairement pour le moment. Bien que nous puissions continuer et Y, allons-y. Je vais définir notre identifiant ici ou non, mais notre deuxième paramètre, notre deuxième condition, plutôt si l'identifiant est égal à un. Donc, si nous sommes dans un bloc d'eau et que notre plateforme actuelle est égale à zéro, n'est-ce pas ? Donc, en gros, nous ne sommes pas sur la plateforme. En fait, nous inversons cela. Nous utilisons des plateformes de désutilisation. Nous avons donc dit que la plateforme était fausse. Ce n'est donc qu'une façon plus courte de tout faire ici. Donc, si nous sommes sur un bloc d'eau et non sur une plate-forme, nous mourons. Eh bien, comment savons-nous que nous sommes sur la plateforme ? Eh bien, lorsque nous accédons à notre journal, que je devrais renommer, c'est simplement « plateforme » Faites GD au lieu de log. Alors, donne-moi juste un moment. accord ? Tout semble fonctionner, et je l'ai renommée plateforme. Ainsi, si je veux créer de petits disques pour représenter ce que je ne suis pas des grenouilles ou des tortues, je peux continuer et le faire en utilisant toujours le même script Donc, alors que nous allions ici, nous avons obtenu une fausse plateforme, puis nous allons mourir si nous sommes sur l'eau. Nous devons donc changer de plateforme en True. Donc, une fois que notre Brogi aura pénétré dans cette zone, allons-y et transformons la plateforme en réalité Oups, j'ai massacré ce morceau. C'est une plateforme corporelle. Vous voulez donc accéder à la variable de plateforme qui se trouve sur le corps qui la touche, qui sera bien sûr notre joueur. Et encore une fois, si vous voulez être très prudent, vous pouvez prononcer le nom du joueur dans le corps du point et taper le tout. Ça irait bien ici. Car la plate-forme incarnée est synonyme de vérité. D'accord ? Et qu' avons-nous d'autre ? Eh bien, voyons voir. Plateforme actuelle. Eh bien, si nous regardons notre version à deux D si notre grenouille est vivante pendant notre section de processus, nous avons également une vérification pour vérifier si les plateformes en forme de courbe en I ne sont pas égales à zéro. Ensuite, nous avons déplacé notre grenouille, non ? Nous avons donc changé notre position où le point X est égal, puis nous avons fait quelques calculs. Nous avions pris l'orientation de notre plateforme. multiplié par notre vitesse, je vais juste en choisir une pour que nous puissions correspondre à nos journaux, et nous pourrons revenir et la modifier plus tard. Ensuite, nous multiplions ce chiffre par Delta. OK ? Donc, si notre plateforme actuelle n'est pas nulle, je veux dire, nous devrions être debout sur une plate-forme, n'est-ce pas ? Ensuite, nous partirons. Nous devrions nous déplacer avec la plateforme. OK ? Nous allons donc entrer dans notre journal de bord, et quand le corps entrera, nous allons dire « point de corps » sur sa plateforme. Assurez-vous que je l'ai bien orthographié. Par plateforme, oui. Et qu'est-ce qui l'a mis au même niveau que moi ? Maintenant, souvenez-vous de votre journal. Votre journal ici devrait être composé d'un troisième corps de personnage D. Je vais simplement rouvrir le mien ici Je n'ai rien changé. Intéressant Il faut redémarrer le projet. Mon journal de bord est un corps de personnage en trois D. Et, bien sûr, les ions voient le rondin et la zone trois D, ce qui nous fait couler les larmes OK, alors voyons ce qui se passe. C'est juste notre journal. Allons-y et lançons le jeu des pneus ici. Il faut courir chercher ces journaux, on voit qu'ils bougent, on bord et on est morts. Eh bien, c'est intéressant. Pourquoi est-ce arrivé ? Eh bien, c' est arrivé parce que nous agissons trop vite. Oh, c'est le deux D, c'est fini pour une raison ou une autre. Oui, descendez, et c'est parce que notre mort arrive trop vite. Nous devons faire une petite pause afin de suffisamment de temps pour que des choses comme notre plateforme puissent changer entre les deux. Il suffit donc d'attendre, d' obtenir un arbre, un excellent chronomètre et 0,2 devraient être tout ce dont nous avons besoin. Je sais que nous utilisons 0,1 en deux D, mais j'ai essayé, mais c'était 0,1, mais cela ne suffisait pas. Nous allons donc opter pour 0,2. Et si nous allons de l'avant et essayons cela maintenant, nous devrions être en mesure de le faire. Que s'est-il passé là-bas ? Oh, c'est parce que j'ai envoyé un point de position X égal à Intention, un plus est égal à Allons-y. Nous allons maintenant monter sur ce journal. Je peux aller de l'avant et les traverser à vélo. Fantastique Et dès que je descends, eh bien, si je descends à cet endroit, oh. Eh bien, nous ne sommes pas en sécurité car nous n'avons jamais calculé le fait de quitter la plateforme. Cela signifie également que nous nous déplaçons toujours de façon permanente vers la droite, alors allons-y et corrigeons ce problème. Lorsque nous quittons la plateforme, nous devons évidemment les inverser. Donc, les plateformes sont fausses et notre plate-forme actuelle va redevenir nulle. Et juste ce seul changement pour résoudre ce problème. Oh. Et nous venons de mourir là-bas. R, eh bien, ce n'est pas le cas. Ce n'est pas génial. Découvrons pourquoi. Eh bien, si vous vous souvenez, pour en revenir à la version en deux D , il nous manquait encore deux choses. Dans le premier cas, lorsque notre corps entre, nous avions en fait un autre chronomètre, réglé sur 0,1, ce qui est très bien. Maintenant, quand nous entrons, nous montons à bord. Allons-y. Et nous pouvons traverser sans nous faire tuer. Et dès que nous descendons dans l'eau, qui serait notre zone de vent, nous nous faisons tuer. Sautez de l'autre côté, et dans l'eau, nous mourrons. Et c'est toujours le cas lorsque nous sommes percutés par nos camions. Fantastique Donc tout fonctionne toujours bien. Ce tiber est suffisant pour corriger ce petit bogue que nous avons Génial. Et la seule chose qui nous restait, c'est que je crois que nous avons créé une fonction pour définir la direction à suivre. Cela dépendrait donc à peu près du fait que nous allions à gauche ou à droite, ce que nous définissons comme excellent. Et c'est dans cette direction que nous pouvons passer. Pour ce journal, c'est zéro pour le moment, mais ce serait un. Et dans ce cas, notre script de joueur, nous pouvons créer cette fonction, la direction du funet, et vous prenez un identifiant, qui est un int et vous avez juste la direction de notre plateforme égale ID, nous l'appelons IDA, je crois que nous l'appelons DR, donc gardons-le là DR. Et puis sur notre plateforme, nous pouvons aller de l'avant, définir la direction du point du corps et passer dans notre direction. Bon, alors maintenant, cela n' aurait pas d'importance notre jeu si nous venions ici et que nous l'orientation de la plateforme pour, changions l'orientation de la plateforme pour, voilà, 8 967 Cela ne ferait aucune différence, car cela sera défini une fois que nous accédé à un véritable journal ici. Allons-y. Donc, si nos journaux allaient dans l'autre sens, alors nous allons vers la droite, nous continuons à nous retrouver. Comment est-ce que cela continue de se produire ? Alors on y va. Donc, si nous le fixons à moins un, ce serait également négatif un pour notre vitesse ici. Nous pourrions donc complètement changer cela et dire que la direction est multipliée par Delta pour le moment, mais nous pouvons voir que le log se déplace dans la direction opposée. Et la seule raison est que nous avons modifié un journal en particulier. Par exemple, nous pouvons également venir ici et mettre celui-ci à moins un. Maintenant, nous avons deux troncs qui vont dans l'autre sens. Eh bien, nous devrions. Pourquoi celui-ci n'a-t-il pas changé ? J'ai trouvé le bon journal. C'est négatif. Mm. Hmm. Allons de l'avant et lisons-voir. C'est très bien Nous avons vu que les bûches se déplaçaient complètement dans l'autre sens ? Et allons-y et définissons-le pour notre journal principal ici. Et nous pouvons voir qu'ils vont dans cette direction, nous montons à bord et nous nous déplaçons dans cette direction. Bien, il ne nous reste plus qu'à créer, si vous le souhaitez, de petits disques à l'échelle de deux pour représenter vos petits obstacles, vos nénuphars ou tout ce que vous voulez en faire Et en gros, il suffit d'utiliser ce script et de définir la direction. Voilà. Ce sont nos petites plateformes qui s'y trouvent. Pour nos journaux. Et ces sponsors, nous pouvons aller de l'avant. Il suffit d'appeler et de définir ces positions ici. N'oubliez donc pas que nous allons alterner de chaque côté. Gauche. Puis vers la droite. D'accord ? Maintenant, tout ce dont nous avons besoin, c'est d'un générateur. Configurez. Et pour cela, voyons voir. Pouvons-nous utiliser nos scripts Spinner ? Eh bien, ce sont des véhicules, donc cela n'aurait pas vraiment sens en termes de code. Mais le reste semble logique. C'est ce que nous appelons ici, la bonne direction. Ouais. Nous pourrions donc utiliser le même code de spinner et simplement créer plus de ces spinners Et c'est parfait. Je pense que c'est ce que nous faisons. Allez-y et créez ce générateur. Est-ce SponnorFive, videz votre véhicule, trouvez mon journal, apportez-le Et il se peut que nous devions régler, je vais juste m' y prendre très rapidement. Je pense que nous devons également définir la rotation de notre journal. Où est mon journal ? Je suis un peu perplexe ici. Oui, d'accord, donc voici le journal. Il devient complètement vertical. Il faudrait donc le configurer. Très bien, alors allons-y et créons un nouveau script, puis un générateur de plateforme, car nous devons modifier certaines choses Nous sommes donc allés de l'avant et nous avons essentiellement les mêmes éléments ici, bien que nous ayons une plateforme et une plateforme de spawn, une instance de plate-forme PI Oh, ça a l'air bien. Permettez-moi d'aller voir mon sponsor et de raconter la scène du journal. Encore une fois, plateforme. Yo. Et maintenant, nous devons jeter un œil à nos journaux ici. Quelle est la rotation que j'ai définie ? Y est défini à moins neuf. OK ? Nous devons donc nous assurer de le configurer. Alors disons rotation du point pi. Nous pouvons le faire, d'accord. C'est une rotation R Y égale à moins 90. Et voyons juste si ce sponsor fonctionne. Souvenez-vous de ce qui s'est passé plus tôt ici. Matt sur un int proche. Alors j'ai juste eu l'idée. Maintenant, tout d'abord, j'ai complètement foiré. J'essayais de charger la mauvaise scène de journal. J'essayais de le charger à partir des deux D au lieu de trois D, ce qui explique en partie pourquoi je recevais des erreurs. Mais ensuite, sur notre plateforme, nous pouvons aller de l'avant et, une fois que nous sommes prêts, simplement définir nos degrés de rotation ici. Si tu voulais le faire , tu le pourrais. J'espère que cela n'affectera aucune des autres plateformes que vous créerez ultérieurement. Mais tant mieux, empêchez cela. En fait, je suppose que je n' empêcherais pas vraiment ça parce que ça va aboutir à la même situation. Il va apparaître et faire l'objet d'une rotation. Je vais juste aller de l' avant et en descendre un. Je vais juste le mettre ici à ma place pour que nous prenions la plateforme de BI instantanée et que nous définissions les degrés de rotation, et je la définisse sur un vecteur trois, qui ne représente que trois éléments de données, n'est-ce pas ? X, Y et Z, ou en couleur, ce serait comme le RGB, non ? Donc zéro, moins 90 et zéro, et cela le positionne maintenant correctement sur l' orientation, je dirais. Il ne nous reste plus qu'à faire avancer nos journaux dans la bonne direction. Tout comme le puits , la bonne direction ainsi que la position du sponsor Donc, pour cela, je vais juste regarder où sont placés mes journaux. Par exemple, celui-ci, la transformation ici, négatif 29 et négatif un. C'est suffisant. Position, moins 29 et moins un. Maintenant ce journal, je peux le supprimer complètement et nous pouvons avoir un autre sponsor avec cette transformation, qui serait également de moins cinq et de moins 29 Il s'agit de moins 29 et de moins 5. Allons-y. Maintenant, ce journal devrait pouvoir être supprimé, et nous devrions toujours avoir nos deux sponsors du journal en partant de la droite et en allant vers la gauche. Sauf que ma direction est fausse, donc nous nous déplaçons continuellement hors de l'écran vers la gauche. OK, alors allons-y et vous n'avez pas à faire cette partie, bien sûr, car si vous créez différentes plateformes, vos tortues tourneront vers la gauche, vos journaux vers la droite. Donc ça va parfaitement se passer. Mais comme je vais simplement utiliser les journaux ici au lieu de créer plusieurs choses pour le moment, je vais simplement créer une variable pour la direction. Par défaut, nous allons simplement le définir sur un. Et quand je les ferai apparaître, je vais dire «   diconolrecon J'ai réglé ces deux générateurs sur un verrouillage négatif, ils devraient passer à la case départ dès Donc, au moment de l'apparition , j'espère qu'ils apparaîtront ici Ils sont là. Non D'accord, alors où sont mes journaux ? Non, le journal est là. La direction est négative, elle devrait donc aller dans l'autre sens. Oh, j'ai configuré les journaux de cette façon. Oups, c'était une erreur de moi alors. Et il vaut mieux les mettre tous en négatif par défaut, alors. Et nous avons eu ce temps de plateforme ici, ce qui est un peu ennuyeux, mais voilà. Mes journaux de bord vont dans cette direction. Et je peux juste en mettre trois l'autre côté et avoir une direction négative comme direction. Alors je vais le faire, frère. Très bien, donc j'ai juste désigné mes sponsors de l'autre côté, pour que nous puissions lancer le jeu, apparaître. Nous allons tous bien. Nous attendons simplement que ces journaux apparaissent, et nous verrons si nous pouvons sauter jusqu'au bout, même si nous allons mourir en arrivant le côté parce que nous n' avons pas encore atteint notre niveau de vent. Donc, à ce rythme, oui, je pense que je voudrais accélérer mes journaux maintenant, c'est sûr. Et je dois réinitialiser ces directions pour trois, quatre, cinq. Je crois que trois, quatre, cinq, c'est positif. Ça devrait être négatif maintenant. Génial Et j'ai dit que je voulais changer le script, par exemple les temps de direction. Faisons-en trois. Nous verrons à quel point c'est trop rapide, nous allons passer à deux. Le haut de l'autre côté. Voyons ce que trois vont nous donner. Journaux. Où en es-tu ? Ok, trois c'est pas trop mal. Nous pouvons y aller et monter à bord. Et maintenant, mon froggi ne bouge pas non plus, il ne se déplace pas assez vite Je suis en quelque sorte en train de sauter ici. Restez à l'affût. Il faut régler ça. Allons-y. Nous pourrions réussir, et ce serait une victoire théorique. Donc sur mon lecteur. Je vais juste y aller et en changer un, deux ou trois, parce que je pense que je vais m'en tenir à trois. Essayez-le encore une fois. Juste pour être sûr que tout va bien. Apporte-moi mon journal. Allons-y. Et maintenant, notre vitesse est à la hauteur. Je peux passer au journal suivant. Caca, caca. Allons-y. Très bien, pour que nous puissions aller jusqu'au bout. Excellente. Et tout va bien. Nos plateformes fonctionnent, et il ne vous reste plus qu'à faire de même pour créer vos tortues. Vous pouvez simplement créer votre petite lance au fil des années, non ? Écrasez vos petits cylindres pour en faire de petits disques, puis créez une zone comme celle-ci, juste l'endroit qui recouvre le milieu pour cette détection Et juste comme ça, vous aurez une nouvelle plateforme entièrement configurée. D'accord, c'est donc le cas pour nos plateformes aquatiques. Et ensuite, je crois que nous avons notre espace de victoire. 55. Correction des fuites de mémoire: C'est bon. Avant de passer à l'état de vent, maintenant que nous avons tous nos véhicules et que nos plateformes sont prêtes , revenons encore une fois à cette fuite de mémoire, où nous avons une infinité de plateformes et de véhicules qui se déplacent constamment dans le vide et occupent constamment de la mémoire. Allons-y et débarrassons-nous d'eux lorsque nous n'en aurons plus besoin. Très bien, alors allons-y et ouvrons notre script de plateforme et notre script de camion ou de véhicule. Et nous allons résoudre ce problème exactement de la même manière, très simplement. Dans le cadre de notre processus pour notre camion, nous allons aller de l'avant et nous allons simplement le faire si notre point de position globale X est supérieur 436 ou quelle que soit sa largeur, n'est-ce pas Quelle que soit la largeur de votre fenêtre, je dirais que plus 100 correspond à l'espace que nous donnons ou au point de position globale X inférieur à moins 100, sans point automatique, et nous allons faire de même pour nos plateformes. Et allons-y et voyons si nous avons des problèmes ici. OK. Nous n'en rencontrons aucune. Et voyons juste à quel moment réapparaissent-ils sur nous ? OK. Maintenant, souvenez-vous que 100 % de réduction sera très différent d'une réduction de 100 % deux D. Nous devrions donc probablement refuser ce montant au lieu de travailler avec vous à 100 Alors essayons-en dix. Disons 346. Nous avons une plateforme d'essai et de moche là-bas. Mais copions-le dans notre camion. C'est exact. Regardez nos camions apparaître. D'un autre côté, ce n'est pas assez d'espace. Nous pouvons en quelque sorte voir nos camions et nos plateformes s' embrouiller Ils ont donc clairement besoin de plus d'espace que cela pour le moins dix ici. Passons donc à moins 20 et voyons si c'est assez d'espace pour eux. Pas assez pour nos camions. Cela ne semble pas suffisant pour les plateformes, mais non. Alors maintenant, nous sommes juste en train de composer un numéro. Mais ce 100 négatif semblait un peu ridicule ? Essayons le négatif 50. Nous allons juste en quelque sorte composer le numéro. Vérifiez si nos plateformes sont capables de se reproduire. Mais nos camions vont plus vite. Voyons donc s'ils peuvent disparaître à l'écran ici. Si nous l'ouvrons simplement pour en voir l'extérieur. OK, donc les camions parcourent une distance plus équitable. Vous voyez, ils disparaissent juste ici. C'est là que nos plateformes devraient également disparaître Et d'un autre côté, ils continuent simplement à aller et à venir. OK, donc nous allons en ajouter 50, nous sommes de ce côté, 346. Comment va 336 ? 336 doit aller bien. Les camions vont-ils disparaître ? Ils disparaîtront à un moment donné, c'est l'important. Mais si vous voulez entrer et composer ce côté vers le bas maintenant, allez-y et faites-le. Mais l'important est que nous supprimions nos objets, afin de libérer de la mémoire avec les objets dont nous n'avons plus besoin Nous avons donc résolu le problème de mémoire que nous avions dans la version à deux D, que nous avions maintenant dans la version à trois D. Je ne l'ai pas oublié. J'étais juste en train de le remettre plus tard et nous allons d'abord intégrer nos principaux composants. Bien, passons à cette seule condition. 56. Gagner de l'espace: Très bien, allons-y et créons l'espace éolien pour notre joueur. Je nettoie en quelque sorte toutes ces zones au fur et à mesure. Nous allons donc avoir besoin de notre script de joueur, et j'ai créé un winspace ici C'est juste une zone en trois D, et je vais la renommer pour gagner de la place Il possède également une forme de collision en trois D que j'ai ajoutée. Sa forme est une boîte, et pour correspondre à tout le reste, nous lui avons donné une échelle de deux sur nos trois axes. Alors maintenant, nous devrions nous adapter à n'importe quel endroit où nous le plaçons. Allons-y et ajoutons-y un script, notre script pour l'espace éolien. Et cela va également avoir quelques signaux connectés. C'est notre corps qui va entrer. Et je crois que c'est en fait tout ce dont nous aurons besoin ici. Et en ce qui concerne notre joueur, c'est là que nous avons ajouté notre nouvel état, notre état de victoire, ce qui signifie que nous avons une autre condition LSF ici, actuel est égal à l'état, victoire. Nous ferions notre rempotage puis définirions une zone de victoire, je crois que c'est ainsi que nous l'avons appelé Allez-y et ajoutez notre nouvelle variable, notre zone gagnant-gagnant. C'est un taureau voué à tomber par défaut. Et voyons voir, à notre mort, nous disons que si l'identification est une , que la plateforme est fausse et que la zone de vent est fausse, donc nous ne gagnons pas. Nous ne sommes donc pas dans l'espace éolien. Nous ne sommes pas sur l'estrade, nous sommes dans l'eau, puis nous finissons par parler de mort. Excellente. Et voyons voir. Dans notre espace éolien, nous appelons deux choses. Nous devons trouver notre zone de détection du vent. C'est vrai. Ensuite, notre deuxième place consiste à définir le point du corps de notre état actuel, l'état actuel est égal à la victoire des statistiques et à m'assurer que je le tape correctement. État actuel, je crois que oui, mais je vais simplement copier et coller enregistrer l'état de l'identifiant non déclaré dans la portée actuelle, n'est-ce pas ? Body Stay Dot Win. Allons-y. Et pour l'instant, cela devrait suffire, cela ne devrait vraiment rien faire. Donc, dans notre mort , disons «   imprimer mort ». Nous allons donc simplement nous assurer que tout se déclenche comme il se doit. Répondre imprime le mot répondre. Et dans notre espace de victoire Eh bien, nous devons également redéfinir la zone du vent sur Walls Mais imprimez également Win. Et nous pouvons aller de l'avant et le tester. Nous pouvons maintenant passer à notre scène principale. Principal, par exemple avec cette petite icône en forme de chaîne, tu te souviens ? Et lancez simplement une recherche pour trouver votre espace de victoire. Apportez-le. Crochets. Voici le mien. Sauvegardez-le. Il y aura deux espaces éoliens pour ces zones. Cela correspond à l'ensemble. Génial Et maintenant, nous ne faisons que le dupliquer. Deuxième emplacement. Et je vais juste continuer jusqu'au bout. Remplissez toutes mes zones. C'est bon. J'ai donc positionné tous mes petits espaces éoliens. Allons-y et vérifions-nous que notre texte est correctement imprimé sur notre console. Laisse-moi réparer ce jeu maintenant. J'en reviens à une petite chose. Allons-y. Très bien, alors voyons voir Nous nous sommes écrasés devant une voiture. Nous sommes morts et avons répondu. Excellente. OK, on a sauté à l'eau, on est morts et on a répondu. Nous sautons sur le rondin. Nous sommes bons. Pad, et tout va bien. Tortue, bûche, tapis, bûche. Et nous avons sauté le pas. Nous avons remporté une victoire. Je vois une victoire, une réapparition, une mort, une réapparition. Ça ne ressemble pas à ce que c'est censé se passer. Faisons le chemin du retour. Allez-y et mettez-le en pause ici. Je peux donc m' en aller là-bas. Et continuez avec ça. S. D'accord, pour l'instant tout va bien. Nous avons sauté le pas. Nous avons obtenu une victoire, une réapparition, un mort et une OK, donc ce n'est pas génial. Cela signifie qu'il y a un bogue là-dedans. Nous aurions dû gagner et réapparaître. Nous n' aurions pas dû en tuer un. Je suppose que notre réapparition n'est pas encore terminée. Cela n'a pas changé notre position ou quoi que ce soit d'autre. Nous devons d' abord régler notre collision . Ouais. Souvenir de la mort. Donc, la seule chose à laquelle je peux penser pour le moment, c'est peut-être quelque chose ici. Mais nous allons essayer de le désactiver plus tôt. Voyez si cela fonctionne. Nous allons le découvrir. Mes journaux, allons-y. C'est probablement la chose que je n'aime pas le plus dans les tests Fait constamment la même chose encore et encore. Et nous attendons un journal. Ça y est. Quand Respawn, nous avons eu un mort et une réapparition. OK. Je vais donc essayer quelques choses et voir laquelle d'entre elles résout le problème. Peut-être que ce sera juste que je reviendrai dans 2 secondes. Et voyons où se trouve la source ici. Très bien, j'ai dû comparer les deux D, voir ce que nous aurions pu faire pour résoudre ce problème Et je suis arrivé juste un peu plus tard en haut de la page d'identification. Il nous a fallu un petit chronomètre de 0,1 pour obtenir notre position et tout le reste. Alors voilà. Ce n'est pas grave. Mais avec cela, vous verrez que nous pouvons maintenant passer à travers l'écran. Amuse-toi bien d'être un peu grenouille. Allez. Sortez les bûches. Allons-y. Allons-y. Nous sautons sur le rondin. Nous attendons les petites tortues ou les nénuphars, selon ce que vous voulez, qu' ils soient le rondin, le tapis suivant, le rondin et la zone de vent. Allons-y. Nous avons gagné et répondu, pas de mort. Oh, j'ai croisé ce camion. Et Z, on meurt quand même si on saute dans l'eau. D'accord. Nous y voilà donc. Notre espace éolien est maintenant prêt et c'est la dernière chose à faire. Suis-je censé remettre en place un système de notation et remettre en place notre cabane Ensuite, notre version 3D sera entièrement configurée. 57. GUI de score et minuteur: Très bien, nous allons donc procéder à la configuration des durées de partition et de notre Hud, et cela va être beaucoup plus facile car nous pouvons réutiliser le HUD que nous avons créé dans la version à deux Donc, la principale chose que nous allons faire est réutiliser notre global. Ensuite, nous utilisons une partie du TD. Et nous allons juste devoir renommer une partie de notre chemin ici, et nous pouvons faire en sorte que cela fonctionne à la fois avec la version à deux et à trois D si vous le souhaitez. Mais nous allons essentiellement utiliser le même script. Donc, si vous avez trois versions D et deux versions D dans deux projets différents, vous pouvez simplement copier ce script , puis accéder aux paramètres de votre projet et le configurer en tant qu' autoloa. D'accord Donc, pour que cela fonctionne en trois D pour global. Vous remarquerez maintenant que le mien indique main pour le nœud racine de ma scène principale en trois D, qui est un nœud trois D, et en deux D, c'était un nœud deux D. Je vais donc renommer en Min parce que c'est comme ça que je m'appelle, et je vais le remplacer dans Update Lives, ainsi que dans Update Score D'accord. Et pour notre gars, je vais passer à la version en deux D, ouvrir à nouveau. Et je vais juste cliquer avec le bouton droit pour ne pas avoir à recréer le Guy à nouveau, puisque ce sera exactement pareil Je vais juste cliquer avec le bouton droit de la souris et sélectionner l'option. C'est où ? Enregistrez la branche telle qu'elle apparaît. Et quand vous le faites, vous devriez avoir le choix. Cet écran devrait apparaître ici et vous pouvez continuer à l'enregistrer. Je vais passer à ma scène Grenouille ou à trois D ici et y enregistrer à nouveau la scène Gooey C'est bon. Et c'est tout ce dont nous avons besoin parmi les deux D. Et bien sûr, vous n'êtes pas obligée de le faire. Vous pouvez continuer et le recréer. Ajoutez simplement la couche de toile, la progression de la texture, les étiquettes et tout le reste. Si c'est ce que tu voulais faire. Je vais continuer et ajouter ceci maintenant, ajouter ma scène Guy. Et remarquez que nous ne le voyons pas ici. Si vous recréez votre Guy à partir de zéro, vous devrez cliquer sur l'option deux D ici, y jeter un œil et le ici, y jeter un œil et recréer de cette façon, car la couche de toile est un objet en deux D, Quelque chose s'affiche à l'écran par-dessus tout le reste, mais il s'agit de deux D, que les autres composants soient des deux ou trois D. Donc, si nous devions le gérer dès maintenant, nous pourrions voir que tout est au top et comme il se doit. N'oubliez donc pas que si vous le créez vous-même, gardez-le à l'esprit. Si vous voulez le recréer, vous devrez peut-être lancer le jeu pour avoir une bonne idée de la situation Et ce qui est bien, c'est que si je voulais venir ici et modifier certains de ces composants, je pourrais intervenir et déplacer les choses, par exemple, et vous pourrez assister à la mise à jour en direct dans le jeu. Vous pouvez donc toujours vous assurer que les choses sont bien en place. Je vais arrêter de lancer le jeu là-bas. Donc, si vous recréez le Guy, je vais juste vous le montrer à nouveau ici. Passez cette couche en haut. Vers les libellés du label et du texte de la partition. Notre barre de vies est une texture de progression, et nous avons ces textures de Frogger Lives que vous pouvez utiliser comme texture de progression si nous ouvrons les textures ici pour Nous avons une barre de minuterie, ce qui, encore une fois, revient au même. C'est juste une barre de progression de texture, et elle contient le rectangle carré vert, quel que soit celui que j'ai créé, juste pour l'utiliser comme barre ici. Nous avons une étiquette qui indique simplement heure pour que l'utilisateur sache de quoi il s'agit, et nous avons un nœud de temporisation avec le temps d'attente par défaut d' un démarrage automatique activé, et le signal de temporisation est connecté à notre gars qui a Notre script Guy est simplement expiré. La valeur de la barre du chronomètre est égale à moins un. Cela va donc faire baisser continuellement notre barre. Ensuite, si la valeur est nulle, nous y ajoutons notre nœud de joueur appelé Death, puis nous remettons la barre à 30. C'est bon. J'espère que cela vous a permis d'avoir suffisamment de temps pour enregistrer votre interface graphique telle qu'elle était sur scène, ramener ou la recréer Et je noterai ici que dans la barre Lives, notre mode film est de gauche à droite, et dans notre barre de chronométrage, il est de droite à gauche. C'est bon. Mais une fois que vous avez configuré ces deux éléments , n'oubliez pas que sur notre Global, nous devons passer de « aucun TD » à « principal ». Et c'est simplement parce que le mien est étiqueté principal. Nous pourrions simplement l'étiqueter numéro deux D. Cela prête à confusion, mais c'est possible. Ou si vous l'avez laissé par défaut, alors au lieu de main ici, vous écririez non à trois D. D'accord. Quelles sont donc les choses que nous devons changer ? Eh bien, ce sera sur notre lecteur ici et sur notre WindSpace Mais commençons par le joueur. nous en souviendrons à chaque fois que nous progresserons, cela figurera dans notre mouvement ici. C'est quand on monte que l' on obtient des points, non ? Nous accédons donc à notre même global ou si vous l'avez copié, mettons à jour le score, et sur les deux D, nous avons augmenté de dix points. Ensuite, en cas de décès, nous allons de l'avant et nous devons mettre à jour notre vie. Donc, mise à jour globale de Lives. Et cela a été réglé à moins un. Et la dernière chose que nous mettons à jour sur DEF est notre barre de minuterie. Donc, avec ça, il faudrait obtenir un nœud, non ? Et nous devons nous souvenir de nos joueurs, nous allons aller jusqu'au niveau parent, puis descendre jusqu'au niveau parent, puis nous pouvons descendre jusqu'à notre gars, obtenir le niveau parent un, puis trouver notre gars. Et puis à partir de là, nous pouvons accéder à notre barre de minuterie ici. Barre de minuterie Assurez-vous simplement que je l' épelle correctement. T majuscule, B majuscule, valeur du point de la barre du chronomètre est égale à 30. Très bien, donc ça va être réinitialisé. Et maintenant, il ne nous reste plus qu'à nous rendre dans notre Winspace ici. Et en ce qui concerne notre espace éolien, nous n'avons qu'à passer quelques semaines bon marché ici. Nous devons donc mettre à jour notre valeur multi-grenouilles. Notre Multi Frog Plus est donc égal à un. Vous vous souvenez de la façon dont Frogger fonctionne à l'échelle mondiale : nous augmentons le nombre de grenouilles multiples, et une fois que nous atteignons cinq grenouilles, nous obtenons un bonus de 1 000 carrés, puis notre multigrenouille revient à zéro. L'espace éolien, non ? Nous y ajoutons donc notre multiplicateur. Nous ajoutons à notre score de mise à jour par points du SOE Global, et nous augmentons de 40 points ici. Et puis souvenez-vous que nous avons également eu le bonus du chronomètre. Donc, en fonction du temps restant, nous avons obtenu des points supplémentaires ajoutés à notre score. Alors allons-y et obtenons le bonus de temps. C'était de la réalité virtuelle et nous l'avons simplement appelée bonus de temps. C'était un entier, nous l'avons dit égal à node et nous avons dû monter de un, trouver notre parent, c'est vrai, et ensuite cela nous mènera jusqu' à notre nœud principal en haut. Ensuite, nous pouvons trouver notre gars et obtenir le chronomètre. Et nous voulons que la valeur multipliée par dix soit celle que nous utilisons. Cela nous donne un bonus maximum théorique de 300 points, mais cela suppose que vous y arriviez en moins d'une seconde, ce qui n'arrivera pas. Et cela nous donne un bonus minimum, en supposant qu'il vous reste 1 seconde sur dix points. Encore une fois, c'est assez correct pour le bonus, entre 10 et 300 Mais de façon réaliste, il y en aura probablement plus de 10 à 200 C'est bon. Maintenant que nous avons nos points bonus, nous pouvons procéder à la mise à jour, annuler la mise à jour de notre score, mettre à jour le score global par points et utiliser notre bonus de temps. Maintenant, en y repensant, bien sûr, nous pourrions simplement ajouter un bonus de temps plus nos 40 pour le score de mise à jour. Si vous vouliez tout combiner en un seul au lieu d'appeler deux fois notre score de mise à jour. Vous savez, vos préférences personnelles, et c'est quelque chose que vous pouvez faire vous-même. Lorsque nous parlons de code propre et de la possibilité de revenir , de résumer le code d'acteur et nettoyer les zones qui, selon vous, sont peut-être un peu désordonnées. Vous aurez donc cette option plus tard. Et la dernière chose à faire est de remettre notre barre de minuterie à 30. Nous allons donc simplement placer le nœud, dans notre parent, dans le Gooey, obtenir la barre du chronomètre, saisir la valeur Je vais juste le copier ici et le remettre à 30. C'est bon. Et juste comme ça, notre jeu devrait simplement fonctionner avec nos anciens scripts globaux et Goey et vérifier Chaque fois que j'avance, je gagne un point. Je meurs, je perds une vie. T a été réinitialisé. Voyons si nous pouvons le traverser, l' enrouler sur notre bûche ou traîner ensemble, de da de dah. Nous commençons à sauter à travers. Et nous entrons dans notre zone de vent, voyons ce que nous allons avoir. Je suis passé de 180 à 320. Nous y avons donc obtenu un assez bon bonus à notre époque. Le temps a été remis à zéro, et nous avons retrouvé une de nos vies. C'est donc fantastique. Tout semble parfaitement fonctionner avec le transfert de nos affaires de fourre-tout. Encore une fois, Guy, c' est une couche de toile. Avec une étiquette avec une étiquette de partition, une étiquette avec un texte de partition. Notre barre Lives est une texture de progression, et nous avons défini la texture de progression en fonction de la texture de notre vie Permettez-moi de connaître le nom exact du point PNG de la barre de santé. La barre de chronométrage, je viens de l' appeler Tr point PNG. Il s'agit d'une autre barre de progression de texture, et la texture de progression est définie par le biais du point de temporisation PNG. Nous avons ensuite une étiquette avec le mot heure à côté. Nous avons un nœud de temporisation avec le démarrage automatique activé avec un temps de pondération par défaut de 1 seconde. Le signal de temporisation est connecté au script Boy. À l'expiration de notre script Gooey, nous en soustrayons un de la valeur de notre barre de minuterie Et si notre barre de chronométrage est nulle, nous appelons le joueur à mort et nous le remettons à 30. concerne le décès de notre joueur, nous appelons Update Lives sur qui concerne le décès de notre joueur, nous appelons Update Lives sur notre global. Nous utilisions les deux D = moins un, vie soustraite Nous avons également notre barre de minuterie, donc nous en montons une, pour demander à un parent. Ensuite, nous passons par notre interface graphique à la barre du chronomètre et accédons à la propriété value. Nous le fixons à 30, et lorsque nous progressons et uniquement lorsque nous progressons, nous accédons à nouveau à notre global, mettons à jour la fonction SCOR et nous passons dix points Et notre script global le réexaminera au cas où, pour une raison ou une autre, vous ne le trouveriez pas dans le vôtre. Voilà. Nous avons donc quelques variables des meilleurs scores : un entier fixé à zéro par défaut, multi frog, un entier, zéro par défaut. Des vies, vous le définissez sur six par défaut, encore une fois, un autre entier, et le multiplicateur est un entier défini sur un Notre score de mise à jour de la fonction prend un paramètre du nouveau montant, qui est un entier. Et nous avons notre ILS qui vérifie si Multi Frog est inférieur à cinq, alors le score plus est égal à notre nouveau montant. Nous ajoutons donc simplement le nouveau montant à notre score si nous n'avons pas les cinq multiprogs Donc, la seule autre solution serait d'en avoir cinq ou plus, alors au lieu d'ajouter le nouveau montant, nous ajoutons 1 000 points et remettons Multi Frog à zéro Ensuite, nous vérifions si le score divisé par 10 000 fois notre multiplicateur est supérieur ou égal à un. Ensuite, nous mettons à jour nos vies, nous appelons cela mettre à jour notre fonction vitale, nous y ajoutons un, et nous fixons notre multiplicateur, plus égal à un. D'accord. Maintenant, après cela, en dehors de ces blocs FL, nous obtenons le texte de notre partition, et nous le mettons simplement à jour avec notre nouvelle partition, nous convertissons notre partition en chaîne, nous appelons des zéros PAD, et nous en ajoutons cinq. Cela va nous donner notre rembourrage ici en haut. Assurez-vous que nous avons toujours ces cinq zéros, même si notre score n' est que d'un chiffre Ensuite, notre fonction Lives de mise à jour, nous avons un montant en paramètre, qui est un entier. Si le nombre de vies est nul, nous allons récupérer Tree et recharger la scène en cours, pour redémarrer le jeu efficacement Sinon, nous allons faire des Lives plus un montant égal, et nous allons obtenir un nœud, monter sur notre parent, descendre sur notre nœud principal, descendre notre Hoey, atteindre notre barre Lives, obtenir la valeur et ajouter plus égal au montant par lequel nous mettons à jour nos vies D'accord. C'est donc notre script global. Encore une fois, si vous ne l'avez pas attrapé ou si vous ne le trouvez pas, vous perdu d'une manière ou d'une autre. Voilà. Le voici encore une fois, rapide à parcourir, ainsi que le script Goey et la configuration Gooey de la scène, comme vous pouvez le voir là-bas Comme les petites modifications que nous avons apportées à notre lecteur pour que tout fonctionne. Et si, pour une raison ou une autre, vous avez du mal activer votre global, si vous l'avez réécrit et que vous l'avez introduit, laissez-moi voir si je peux le capturer très rapidement Vous passez donc à votre projet, accédez aux paramètres de votre projet. Ne le chargez pas automatiquement, appuyez sur ce petit bouton ici, et vous pourrez sélectionner votre script global dans la fenêtre contextuelle Le nom du nœud qui sera automatiquement renseigné ici sera le nom de votre script, qui sera global. Et il vous suffit d'appuyer sur le bouton publicitaire qu'il apparaisse ici. Assurez-vous simplement que vous l' avez activé et que le nom indique comment vous y accédez. C'est pourquoi nous pouvons taper le mot Global et avoir accès au script. Mais voilà. Notre système de score, le bonus du chronomètre et le Geim sont tous ajoutés à notre jeu. Maintenant, nous pouvons continuer et jouer à Ride Boger. Et nous n'avons aucun problème au fur et à mesure. C'est bon. C'est donc tout pour ça. Prenez soin de vous, prenez-en une bonne, et nous pourrons passer à la semaine prochaine. Si vous souhaitez ajouter de l'audio, c'est pareil. Ajoutez simplement un lecteur de streaming et chargez le vv « Que sont-ils tous des MP à trois ou quelques vagues ? Dossiers. Oui, les deux P trois et les fichiers. Vous pouvez donc les utiliser exactement de la même que les deux D. Il suffit d'ajouter un lecteur de flux audio votre scène principale pour que l'arrière-plan et le thème principal de la musique de fond soient envoyés en lecture automatique Et pour votre lecteur, vous pouvez simplement y ajouter un flux audio, charger les sources audio et jouer comme vous le souhaitez avec squish, punk et tout Exactement la même chose que pour les deux D. Donc, si vous voulez ajouter que vous avez oublié, vous pouvez y retourner. Semaine 3, jetez un œil. Mais je pense que c'est tout pour cette semaine. Nous avons maintenant une version 3D de notre petit jeu Frogger, nous permet de traverser la petite route et d'atteindre notre petite zone de vent, de traverser nos petites plateformes et , espérons-le, de ne pas nous faire écraser par les camions 58. Qu'est-ce qu'une API: D'accord. Bonjour, tout le monde. Et aujourd'hui, nous allons nous lancer dans un voyage passionnant dans le monde des API. Si vous vous êtes déjà demandé comment les différentes applications logicielles communiqueront et échangeront des informations, c'est le point de départ idéal. Maintenant, imaginez que vous êtes dans un restaurant et que vous voulez commander votre plat préféré. Eh bien, dans le monde de la programmation, ce processus est similaire au fonctionnement des API. Plongons dans le vif du sujet et explorons ensemble ce concept fascinant. Tout d'abord, voyons ce que une API ou ce que signifie une API. API est l'abréviation d'interface de programmation d'applications. Considérez-le comme un menu ou un ensemble d' instructions permettant à deux systèmes logiciels communiquer entre eux et de partager des données. Tout comme vous commandez un repas auprès d'un serveur et que celui-ci envoie une demande à la cuisine, l' API sert intermédiaire qui facilite la communication entre les différents composants logiciels Donc, pour rendre ce concept encore plus clair, nous allons utiliser l'analogie avec le restaurant, que vous voyez à l'écran ici. Ainsi, vous, le client, représentez l'application logicielle, et la cuisine en représente une autre. Maintenant, il peut s'agir de votre propre outil, et vous voulez l' autre application, la cuisine, peut-être Spotify, par exemple, ou Twitter ou peut-être une base de données Aime, quelque chose à qui vous voulez parler et obtenir des informations. Eh bien, vous voulez commander un délicieux repas, obtenir des informations, mais vous n'avez pas accès directement à la cuisine. Au lieu de cela, vous communiquez votre commande au serveur qui fait office d'API dans ce scénario Le serveur comprend votre commande, amène à la cuisine ou à l' autre application logicielle en votre nom La cuisine prépare votre repas selon votre demande et le rend au serveur Le serveur, agissant en tant qu'API, vous ramène ensuite un plat fraîchement préparé Dans le monde de la programmation, les API fonctionnent de la même manière. Ils définissent un ensemble de règles et de protocoles qui permettent aux différentes applications logicielles demander et d'échanger des données de manière fluide. Les API peuvent être utilisées pour accéder aux données à partir de serveurs Web, intégrer des services tiers ou même interagir avec des périphériques matériels. Disons que vous entrez dans un restaurant, non ? Vous vous asseyez devant l' ordinateur, vous êtes en train de faire ce que vous êtes en train de faire. Vous utilisez votre application, puis vous dites au serveur ou à l' API ce que vous voulez en formatant correctement les données. L'API ou Witter retourne ensuite à l'application logicielle tierce, base de données, quelle qu'elle soit, obtient ces informations et vous les ramène ensuite. Vous avez donc les informations à utiliser comme bon vous semble. En résumé, les API sont comme des intermédiaires qui facilitent la communication entre les différents systèmes logiciels. Tout comme un serveur prend les commandes de la cuisine et du restaurant, ils permettent aux applications communiquer entre elles, de partager des données et d'effectuer diverses tâches sans avoir à comprendre fonctionnement interne de chacun. D'accord. Voilà. Une brève introduction aux API en utilisant l'analogie classique des restaurants. J'espère que cette analogie vous aidera à comprendre le concept fondamental des API et leur rôle dans le développement de logiciels. N'oubliez pas que les API sont des outils puissants qui permettent une intégration et une collaboration fluides entre les différents composants logiciels. 59. Comment utiliser une API: C'est bon, tout le monde. Bonjour, nous allons voir où se procurer une API, ainsi que comment elle peut être utilisée et plus précisément celle que nous allons utiliser dans notre exemple de code pour faciliter l'apprentissage, ce sera l'API open weather ici. Donc, si vous venez ici par beau temps, vous pouvez ouvrir un compte, et vous remarquerez peut-être que vous devrez peut-être vous pencher sur et vous remarquerez peut-être que vous devrez peut-être vous les prix et sélectionner un forfait ici, mais ils ont un plan gratuit qui vous donne 1 million d'appels par mois, 60 appels par minute. Et nous sommes en mesure de voir la météo actuelle et ce sera le plus important ici. Maintenant, toutes ces autres informations tous ces appels et tout le reste, bien sûr, vous pouvez toujours vous sentir libre de les faire, mais ces API sont assez chères. Vous bénéficiez de nombreuses fonctionnalités et de beaucoup plus d'appels par minute et par mois. De toute évidence, vous n' allez pas vraiment obtenir quelque chose de comparable. Sauf si vous avez une application publiée publiquement qui est très populaire. Donc, pour apprendre , surtout s' il s' agit de l'une de vos premières applications, le niveau gratuit est probablement bien suffisant pour ce dont vous aurez toujours besoin. Donc, si vous en avez besoin, allez-y et abonnez-vous. J'ai déjà le mien, qui, comme vous le voyez, indique qu'il contient l'APIK Mais comment utilisons-nous réellement ces API ? Eh bien, si nous jetons un coup d'œil en haut, nous voyons que nous avons un guide ici. Et cliquez dessus, donnez-lui aussi une seconde. Nous y voilà. Nous sommes là. Et c'est intéressant qu' ils l'aient appelé Got here. Dans la plupart des cas, nous l'appellerons documentation. Et c'est là que nous devrions aller de l'avant utiliser le come down here et regarder autour de nous, voir si nous pouvons trouver la seconde exacte pour l'utiliser. Plus précisément, la torsion par temps libre. Par appel. Alors, on y va. Nous sommes donc maintenant sur la page ici pour la documentation spécifique à la météo ici. Et nous pouvons voir le concept du produit. Nous avons notre façon de commencer, les prévisions actuelles sur les données météorologiques. Nous avons notre appel d'API ici , et je vois que nous aurons besoin d'une clé d'API pour celui-ci. Nous avons tous les paramètres listés ici, ceux qui sont obligatoires et ceux qui sont facultatifs. Et puis nous avons un exemple d'appel d'API ici. Et un exemple du type de réponse que nous obtiendrions. Maintenant, lorsque nous recevons une réponse comme celle-ci, nous obtenons une réponse JSON. Et si vous regardez de plus près, nous pouvons voir qu'il y a beaucoup de paires clé-valeur. Nous pouvons donc traiter cette réponse et en extraire des informations de la même manière que s' il s'agissait d'un dictionnaire. Et vous pouvez voir toutes les différentes informations que nous en tirons. Ce qui représente beaucoup d'informations à examiner. Ainsi, une fois que vous avez ouvert un compte, vous pouvez accéder à votre utilisateur en haut à droite, accéder à mes clés d'API et vous assurer d'y voir une clé. Sinon, vous pouvez en générer une en gardant cela à l'esprit ou garder cette page ouverte, car nous devrons revenir ici et récupérer votre clé API à l'avenir. C'est bon. Allons-y donc. Une autre chose que je vais mentionner est si vous recherchez des API gratuites pour utiliser des API libres et ouvertes, vous pouvez simplement effectuer une simple recherche sur Google et vous trouverez des endroits qui ont une liste complète de tous les types que vous utilisez ou différents types d'API avec des liens vers chacune d'entre elles. N'hésitez donc pas, bien sûr, à toujours vous entraîner et à consulter certaines des autres, voir en quoi l'API d'une entreprise fonctionne un peu différemment d'une autre. Mais c'est tout pour celui-ci, nous allons passer à Goto sur le suivant Conserver notre clé d'API ? Oh, je le cache un peu, donc nous ne le voyons pas vraiment pendant la majeure partie de notre code. Et bien, nous allons partir de là. 60. Configuration du script: C'est bon. Encore une fois, vous pouvez créer un nouveau projet si vous le souhaitez. Je viens de créer un nouveau dossier pour la section API et websocket ici Et évidemment, pour que tout fonctionne, va nous falloir une sorte de scène ici. Je vais donc créer une interface utilisateur, qui nous donnera bien sûr un certain contrôle pour commencer vais appeler cette démo d'API ou vous savez quoi ? Cette API. C'est très bien Ensuite, je vais l'enregistrer, garder le même nom et le stocker dans mon dossier. J'ai une scène appelée API. Et bien sûr, cela va nécessiter un script. Maintenant, la scène réelle ici n'a pas d'importance, sauf si vous voulez l'utilisateur puisse saisir informations ici, comme, bien sûr, une zone de texte ou un itinéraire d'édition de ligne, je dois dire, pour que l'utilisateur saisisse les informations pertinentes, puis peut-être avez-vous un bouton qui saisit tout le texte de ces zones Mais dans l'ensemble, nous n'avons pas vraiment besoin de quoi que ce soit là-dedans, mais nous allons avoir besoin un élément supplémentaire pour cette scène, sera une requête HTTP, afin que nous puissions en ajouter une à notre scène. Moi et une requête HTTP sommes en fait ce qui va nous permettre d'appeler une API, un site Web ou un service Web quelconque. Une fois que cela est terminé, certaines informations nous sont renvoyées, et sur la base de ces informations, nous pouvons soit les analyser pour obtenir les données que nous recherchons, soit nous pouvons prendre ces informations et peut-être les attribuer à certaines variables pour envoyer une autre demande à une section différente car certaines API nécessiteront des données supplémentaires sous la forme de quelque chose appelé en-têtes, mais pour cela, comme il s'agit d'une simple API, ce n'est pas trop difficile à suivre Tout ce que nous avons à faire est de faire une seule demande, et nous récupérerons les données JSON. Très bien, donc sur notre APM, je vais ajouter un script Et nous allons avoir quelques variables ici. Donc variable, je vais avoir la clé d'API , et je dirais que vous devriez avoir votre clé d'API. Il doit être caché. Il ne doit jamais être téléchargé nulle part. C'est quelque chose que vous devez garder aussi secret et aussi caché que possible. Donc, la clé API, ce ne sera qu'une chaîne de caractères. Et vous pouvez l'obtenir à nouveau sur le site Web. Je peux simplement copier , puis vous pouvez continuer et le coller dedans. Maintenant, tu peux voir celui-ci. Soit elle sera floue pour la vidéo soit je peux simplement la désactiver pour qu'elle ne fonctionne plus Après l'avoir enregistré, ce n'est donc pas si grave pour le moment, mais gardez cela à l'esprit, c'est quelque chose que vous devez garder aussi secret que possible. D'accord, de quelles autres informations aurons-nous besoin ? Eh bien, si nous revenons en arrière et examinons les données, désolée pour celle-ci. Voyons ce qui est requis. Nous allons avoir besoin de beaucoup de choses, donc d'une latitude et d'une longitude. App ID, ce sera notre clé d'API. C'est ce que nous avons. Exclure est facultatif, et tout le reste est facultatif. D'accord, nous pouvons donc simplement le mettre en latitude et en longitude pour cela. Tout ce que nous faisons, c'est examiner la documentation de ce Davar Long, qui sera flottante et nous en aurons aussi besoin d'une pour le lait en poudre Et ce sont les informations minimales dont nous aurons besoin. Maintenant, si nous devions examiner l'appel d'API, comment nous ferions ceci, cela, le copier, échanger une autre variable ici contre la chaîne URL, et voilà une très longue chaîne. Nous avons donc HTTPS colon slash gmther ou c'est l'exemple d'appel que nous avons Donc, vous voyez, nous allons indiquer la latitude ici, la longitude ici, en excluant, nous avons vu que c'est totalement facultatif. Et comme nous n'avons aucune information supplémentaire ici pour le moment, je vais simplement supprimer cette partie et l'identifiant de l'application, où se trouve notre API. OK. Donc, ce que nous allons faire, c'est utiliser un espace réservé contenant un pourcentage dans un S minuscule et nous allons l' utiliser pour nous débarrasser de ces bretelles bouclées et de ce qu'il y a à utiliser pour nous débarrasser de ces bretelles bouclées et de ce qu'il débarrasser de ces bretelles bouclées et de Nous allons donc avoir la latitude, la longitude et la clé API, donc ce trois choses dont nous devons nous souvenir. Donc, la première chose que je veux faire , c'est que nous allons avoir besoin d'une latitude et d'une longitude, auxquelles pour l'instant, nous pouvons donner un zéro par défaut, zéro. Et dans le cadre de notre fonction Ready, pour effectuer cet appel d'API, nous devons obtenir notre requête HTCP, mais nous l' appellerons simplement la partie de configuration Nous allons le partager pour le prochain. Nous allons donc passer à notre HTCPRQuest et nous allons réellement connecter le signal de demande terminée à l' Et vous verrez que nous obtenons un résultat, un code de réponse , des en-têtes et le corps Le corps va être la pièce importante ici. Je vais juste continuer , enregistrer cela, fermer tous les autres onglets. Très bien, je vais terminer cette vidéo ici, afin que nous puissions simplement la scinder ici ensuite Et dans la prochaine vidéo, nous passerons à la prochaine conférence. Nous allons effectuer l'appel d'API proprement dit, et nous allons analyser les données que nous récupérons afin de pouvoir les utiliser réellement et voir ce que nous avons 61. Effectuer des appels API: C'est bon. Je tiens donc à faire une remarque : voici un que nous examinons pour un seul appel. L'URL est donc légèrement différente. Ce sont les données slash d'api.weathermap.org . Ensuite, couper 2,5 barre oblique avec le point d'interrogation WE. Et c'est là que nous avons nos paramètres pour Lat Long et App ID. L'URL ici est donc légèrement différente . Pour cette version, il m'a crié dessus lors de mes tests, mais un appel m'a été demandé pour m'abonner à un autre service C'est donc un peu bizarre essayer de trouver la documentation à ce sujet, mais nous allons de l' avant, nous obtenons notre nœud de requête HTTP, et nous appelons la fonction de requête. Nous transmettons l'URL, et pour remplir ces espaces réservés, nous indiquons un pourcentage. Ensuite, nous avons une paire de crochets comme dans un tableau, et nous transmettons nos variables lat, on et notre clé API. Maintenant, vous remarquerez que si nous essayons simplement d' imprimer le corps ici, nous avons beaucoup de données ici. Rien de tout cela n'a vraiment de sens pour nous, mais nous recevons quelque chose en retour, ce qui est formidable. Maintenant, en général, vous devriez probablement effectuer une vérification F ici avec un code de réponse pour vous assurer que le message renvoyé ne contient aucune erreur. Donc, si nous imprimons simplement le code de réponse, vous voyez que nous obtenons le code 200, qui signifie que tout s'est bien passé pour le parcourir. Maintenant, si nous avons une erreur 400, alors, eh bien, je viens de le gâter, c'est une erreur Cela signifie donc que quelque chose s'est mal passé , que quelque chose ne fonctionne pas. Les données ne sont pas revenues, le service est en panne de leur côté, la demande n'est pas correctement formatée, des informations incorrectes, peu importe ce qu' elles sont, il y a une erreur Nous pourrions donc vérifier si code de réponse est 200 par mesure de sécurité. Si le code de réponse est égal à 200, non ? Nous pouvons donc dire si tout s'est bien passé , comment pouvons-nous réellement obtenir ces données ? Parce que nous l'avons vu, c'était un tableau, mais un tableau d'un tas de nombres aléatoires. Eh bien, nous devons analyser cela. Donc, la première chose que nous allons faire est de créer une nouvelle variable pour notre réponse, qui sera définie sur notre corps, mais nous voulons obtenir les données dont nous avons besoin. Nous disons donc point et si nous tapons UTF huit, nous verrons qu'il s'agit d'une chaîne de caractères UTF huit avec un soulignement entre chacune Alors maintenant, si nous imprimons notre réponse, voyons ce qui se passe. OK, eh bien, nous avons des informations. Cependant, dans de nombreux cas, vous allez faire un pas supplémentaire ici, Anine. Je vais simplement créer ma variable temporaire ici, TD pour les données temporaires. Et pour cela, nous appelons notre chaîne d'analyse JSON, et nous pouvons y transmettre notre réponse Voyons maintenant ce que nous obtenons après avoir analysé la chaîne Voilà, quelque chose qui est un peu plus facile à regarder, un peu mieux espacé Il y a des virgules entre les deux. C'est beau à voir, mais ça peut toujours être encore plus agréable de vraiment vouloir simplement regarder Mais à l'heure actuelle, TD représente désormais toutes les informations dont nous avons besoin ou dont nous aurions besoin. C'est vrai. Si c'était difficile à lire pour vous, je comprends. C'est bien, mais nous pouvons l'embellir un peu pour le rendre plus facile à regarder. Et ici, il suffit d'appeler la classe JCN et nous pouvons appeler le methicon stringify, transmettre nos données, transmettre nos données, TD et un deuxième argument d'une chaîne qui ne contient qu'un espace Et si nous regardions le résultat maintenant, tout serait beaucoup plus facile à suivre et à lire. Donc, si c'est ce dont tu as besoin, c'est fantastique. C'est ainsi que vous pouvez le rendre beau et propre. C'est bon. Alors maintenant, nous saurions que si nous venions ici, nous pourrions imprimer TD et obtenir une information d'ici, par exemple voir le Maine est ce que nous recherchons. Nous pouvons donc récupérer le Maine et l'imprimer. Et nous voyons ci-dessous, si je me contente de commenter cela, commentez la ligne avec Control K afin que vous ne puissiez pas confondre les anciennes informations. Nous pouvons voir ici la température. Voici ce que l'on ressent. Tempman Max, la pression, l' humidité, le niveau de la mer et le niveau du sol Maintenant, j'ai déjà mentionné que nous avons besoin de latitude et de longitude. Donc, un endroit où nous pouvons aller pour cela, si je reviens simplement à la capture d'écran ici. Ce site Web s'appelle-t-il latlondt net. Et comme vous pouvez le constater, il vous suffit cliquer n'importe où dans le monde pour obtenir une position en latitude et en longitude. Donc, par exemple, si nous devions descendre, je choisirais Vancouver ici, et je vais simplement cliquer dessus. Nous avons 409-25-6791 Je vais juste le copier et le configurer pour mon opération ici. Donc, le premier est à. Ils se situent à côté et ma longitude est ici. Ça fait s. Vous pouvez donc aller n' importe où dans le monde ici, obtenir votre latitude et votre longitude. Comme vous le voyez, vous pouvez également simplement taper un lieu ici et il devrait apparaître pour vous. D'accord. Donc, une fois ces informations saisies, allons-y et exécutons-le. Voyez ce que nous obtenons maintenant, la température 288,11 ressemble à 288,14. Maintenant, évidemment, ces chiffres semblent assez élevés. La question serait donc : pourquoi cela se produirait-il ? Eh bien, c'est là qu' entrent en jeu les données que nous obtenons. Voilà. Je viens de nous concentrer sur les champs de notre réponse ATI ici sur la documentation. Je fais défiler la page ici, nous pouvons voir où en sommes nous ? Point juste ici. Donc, pour la température à l'intérieur du Maine, l'unité par défaut est Kelvin C'est pourquoi le chiffre que nous observons à 200 degrés et quelque chose comme ça est si élevé pour nous. N'oubliez pas que, facultatif, vous aviez la possibilité de mettre le système métrique ou impérial dans notre option si nous passons aux unités ici, n'est-ce pas ? Vous voyez, nous pouvons utiliser le système métrique impérial standard. Et les unités standard seront appliquées par défaut. Donc, la norme serait notre Kelvin, puis nous avons notre impérial mexicain, n'est-ce pas ? Alors, comment les ajouterions-nous à titre d'information ? Eh bien, comme vous le voyez ici, si nous suivons le modèle, nous avons juste l'esperluette, paramètre est égal, puis tout ce que nous recherchons Donc, si nous voulons ajouter des unités, il suffit de faire en sorte que les unités d'esperluette soient égales, et je crois qu'il faut un ressort Alors allons-y et revenons en arrière. Et ajoutons des unités ou des unités. Et comme je l'ai dit, je crois que ce ne sera qu'un printemps. Et pour nous, passons à quelque chose qui pourrait atteindre Celsius. Et je pense que c'est ce que je vais rechercher. Ce n'est pas Celsius. Nous devons choisir Mexico ou Imperial. Allons-y, allons-y et saisissons la métrique. Et je comprends cela simplement en regardant l'API. Je vois une métrique en minuscules, ainsi que Tempio, donc je suppose que tout est en Nous devons donc l'ajouter à notre URL. Je vais donc continuer et après ma longitude, mais avant mon identifiant d'application, mais avant mon identifiant d'application, je vais mettre l'unité Ampersand égale à l'unité Ensuite, nous aurons à nouveau notre espace réservé ici. Maintenant, dans ma demande, nous avons la latitude, la longitude, et avant la clé API, je peux transmettre des unités. Et si nous devions y jeter un œil maintenant, vous verrez que nous obtenons 14,85 points Et pareil, si nous remplacions le système métrique par le système impérial, nous devrions maintenant obtenir l'équivalent en degrés Fahrenheit nous devrions maintenant obtenir l'équivalent en degrés Fahrenheit de 58,44. C'est bon. C'est ainsi que nous pouvons obtenir ces informations. Et maintenant, vous pouvez définir le texte d' une étiquette à l'écran, par exemple, ou vous pouvez avoir différentes images dans votre application et vous pouvez modifier ou afficher l'image en fonction de la météo, n' est-ce pas ? Nous pouvons donc voir la température, la pression, l'humidité. Mais n'oubliez pas que c'est tout ce que nous avons, pas toutes les informations dont nous disposons, n'est-ce pas ? Nous pouvons regarder la température dans le Main ? Je me trompe peut-être, j'espère que non, mais si c'est le cas, je suppose que nous allons avoir une erreur dans notre impression. Oui, il y a une erreur là-dedans. Je vais juste jeter un œil à décommenter ma chaîne d' informations fines afin de pouvoir y jeter un œil Vent, météo. OK, on dirait que c'est juste la météo. Pas de plat principal. TD et moi allons donc en extraire l' attribut météo . Nettoyez ça. Et en fait, l'ID est 81 nuages principaux. Description, quelques nuages. Vous voyez maintenant que nous pouvons voir, d'accord ? La météo principale ici est considérée comme nuageuse, donc ce serait nuageux. Alors maintenant, je pourrais afficher une image trouble à l'écran pour l' accompagner ou changer l'arrière-plan de l' application pour qu' il soit nuageux. Comme vous pouvez le constater, il y a également une icône dans ces données. Je ne sais pas d'où vient cette icône. Mais si vous saviez où et qu'ils vous ont donné un lien, un identifiant ou quelque chose comme ça pour une image, il vous est possible de parcourir et de récupérer cette image sur Internet, afin que vous puissiez l'utiliser, ce qui serait plus idéal Mais encore une fois, je ne sais pas d'où vient cette icône. Je ne suis donc pas sûr à 100% de savoir où lier Dynamo Gar pour le faire Mais c'est l'essentiel pour effectuer ces simples requêtes d'API. Et certaines demandes deviendront plus compliquées que cela et vous obligeront à vraiment vous asseoir et à examiner la documentation indiquant qu'elles peuvent nécessiter une autorisation, certaines autorisations accordées. Vous devrez peut-être attendre que l'utilisateur s'authentifie. Vous devrez peut-être placer un tas d' informations dans vos en-têtes, qui figureront après la demande Nous avons donc l'URL ici. Nous aurions juste une virgule, puis nos en-têtes personnalisés, qui seraient sous la forme, je crois, d'un tableau Vous pourriez le transmettre , puis nous pourrons obtenir d'autres informations, comme G, publier la méthode que nous voulons utiliser. Et G est simplement la valeur par défaut, et c'est ce que nous faisons ici. Nous demandons à l'API des informations provenant de la base de données, et publier reviendrait envoyer des informations à la base de données, comme un classement. Par exemple, si vous avez configuré un classement dans lequel vous travaillez avec une API, vous pouvez y envoyer des lequel vous travaillez avec une API, informations en utilisant la méthode post au lieu de la méthode get here par défaut Mais voilà. Voici comment nous les fabriquons. C'est essentiellement le cœur d'un appel d'API. Au-delà de cela, il suffit de des appels pour obtenir des informations que vous pourrez utiliser comme en-têtes afin d'obtenir les données que vous souhaitez Mais au CR VIT, c'est ce que vous allez faire. Et si c'est simple, c'est tout ce dont vous avez besoin. Si c'est plus complexe, comme Twitch, par exemple, vous devrez parcourir la documentation, mais celle de Twitch n' est pas très bonne Vous allez donc probablement avoir mal à la tête et du mal à passer par les phases de documentation de Twitch Mais voilà. Voici les bases de la façon dont nous effectuons des appels d'API. 62. RapidAPI Python à GDScript: C'est bon, tout le monde. Vous pouvez ignorer l'erreur qui s'affiche à l'écran. C'est simplement parce que les variables n'existent pas encore. Mais je voulais en parler ici et je vais utiliser le fait que j'ai une scène séparée ouverte pour cela. Elle est identique à la première. Il contient juste un script dk, et celui-ci va être enregistré dans une base de données d'anime. Je choisis celui-ci juste parce que l'anime est populaire. Aussi populaire que anime et le nombre d'émissions disponibles. Si vous regardez, il y a probablement de fortes chances que vous aimiez anime ou que vous l'ayez au moins essayé à un moment donné . Mais c'est le vrai sujet qui est pertinent ? Il se trouve que c'est ce que j'utilise ici comme exemple. Maintenant, je veux vous parler l'utilisation des API en ligne et lorsque vous regardez autour de vous, car vous ne trouverez rien pour Goto ou le script GD La chose la plus proche que vous allez trouver est quelque chose comme Python, qui est assez proche. Je vais donc vous montrer comment nous pouvons prendre l'exemple Python qu'il nous donne et l'utiliser dans GDScript Maintenant, ce que nous utilisons ici provient d'une API rapide. Et Rapid API propose de nombreuses API gratuites qui sont toutes deux gratuites. Comme vous le voyez, celui-ci est premium. Donc, en ce qui concerne les prix, nous avons plusieurs options. La version de base est gratuite, c'est ce que j'utilise ici. Et vous voyez, je peux faire 100 demandes jour et seulement deux demandes par seconde. Cela ne serait donc évidemment pas très intéressant pour une application déployée, car vous pourriez recevoir plus de deux demandes par seconde, et si vous commencez à popularité ou si vous avez un très gros utilisateur, vous pourriez facilement dépasser ce chiffre de 100 par jour Donc, évidemment, là-haut, si vous voulez faire quelque chose et l'adopter ou s'il va être évanoui. Et, tu sais, les 5 ou 10 dollars. Ça avait l'air d'être de très bons plans. Donc 10$ totalement illimités, et les 5$ sont 5 000 par jour. Mais vous remarquez que nous n'en avons pas, vous n'avez pas de limite quant au nombre de demandes par seconde. Je choisis également celui-ci parce que la latence n' est que de 591 millisecondes, soit environ cinq ou 6 secondes entre l' envoi de la demande et l'obtention de notre base de données Popularité, 9,8 sur dix, c'est donc très populaire Il a été mis à jour il y a deux mois, il est donc toujours maintenu. Les niveaux de service étaient de 100 %. Il y a donc de nombreuses raisons pour lesquelles cette API est une bonne solution pour notre exemple ici. C'est bon. Tout ce que vous pouvez faire est donc accéder à l'API Rapid, de créer un compte, et vous pouvez entrer et faire une recherche pour ce que vous recherchez. Dans mon cas, encore une fois, je viens et je recherche des anime, puis nous avons toutes ces API ici. Certains d'entre eux peuvent être de l'argent obligatoire, peuvent être totalement gratuits et d'autres peuvent être premium, comme je vous l'ai montré avec l'autre. Maintenant, le premier résultat est celui que nous utilisons, et nous voyons si j'aide le rôle, mais nous pouvons obtenir des informations par identifiant. Nous pouvons tout obtenir, nous pouvons obtenir les genres. Il y a donc certaines choses que nous pouvons faire et celle-ci, intitulée Une animation, nous pouvons obtenir quelque chose à propos d'un cadeau ou d'une petite amie, soit la façon dont vous voulez le prononcer, une image, quelles informations ce n'est pas trop pour nous Dans ce cas, cela commence à dépasser un peu le cadre, mais vous pouvez voir qu'ils ne sont pas tous pareils. Ils proposent tous des services différents ici. C'est ce que tu peux obtenir. Et vous voyez, au moment où je surgis, certains disent premium, d'autres disent gratuit Vous pourriez obtenir une prime quelque part où elle est uniquement payée, je ne sais pas, mais cela n'en a pas l'air. Il semble qu'ils soient tous gratuits ou premium, du moins sur le premier pagier Je vais donc simplement cliquer sur l' un d'eux pour vous montrer un exemple. Donc, une fois que vous aurez décidé ce que vous voulez faire, ce que vous voulez obtenir, vous remarquerez sur le côté droit sont toutes les choses que nous pouvons utiliser. Supposons donc que nous voulions un fond d'écran aléatoire. Nous cliquerions dessus et nous obtiendrions nos informations sur le côté ici avec notre exemple. Et on ne peut vraiment rien voir de tout cela. Je vais donc le réajuster maintenant. Donc, un moment. Pour le moment, ça suffira pour nous. Mais vous voyez sur le côté droit, je suppose que ce sont tous les différents services ou informations que vous pouvez obtenir de leur API. Et il suffit de cliquer sur l'un voir les informations changer sur le côté droit ainsi que sur le côté central. C'est donc essentiellement ainsi que cela va fonctionner. Et vous pouvez voir que ceux-ci sont tous disponibles, mais certains d'entre eux peuvent être des publications selon ce que vous essayez de faire. Et c'est la méthode que j'ai mentionnée à la fin de la dernière vidéo, où nous allons souvent utiliser get pour obtenir des informations, mais il peut arriver que vous deviez publier et diffuser des informations. Et si vous décidez que c' est celui que vous voulez, il vous suffit de cliquer sur le bouton s'abonner pour tester ici. Et cela devrait vous amener à la page de tarification de la phase de tarification. Vous pouvez également simplement vous rendre ici et sélectionner le plan auquel vous souhaitez vous abonner. Et tout cela a une limite stricte ici, comme nous pouvons le constater. Et tu dois faire attention. Certaines d'entre elles ne sont pas une limite stricte, comme vous pouvez le voir ici, dans le cas de celle-ci, vous serez débité, ce qui ira sur votre compte, vous serez débité et vous devrez payer. C'est 1,5 centime l'un pour l'autre. Chaque demande supplémentaire, n'est-ce pas ? Cela correspond à celui-ci et 0,03$ à celui-ci. Et c'est bien sûr sur Mega. Ils augmentent évidemment au fur et à mesure, mais le plan de base n'a qu'une limite stricte. Sachez donc que certains ont ou dépassent une certaine limite au prix de leur paiement, même s'il s'agit d' un plan gratuit. Bien, nous allons passer à Whoops, c'est l'API rapide. Nous ne voulons pas celui-ci. Je vais juste y retourner. Retournez dans la base de données d'anime que nous utilisons. Et je vais juste mieux le repositionner pour nous. Donc, juste pour ça, je vais utiliser get all du côté droit, ou désolé, du côté gauche ici. C'est donc celui que je vais utiliser. Je vais maintenant simplement faire glisser l'écran pour mieux voir les choses pour notre usage. Allons-y. C'est bon. Donc, pour cela, ce que nous allons utiliser, et j'ai dit Python. Et plus précisément, si nous ouvrons cela, nous pouvons voir des exemples pour toutes ces différentes langues. Et Python est celui que nous voulons. Et nous examinerons le client HTTB ainsi que la bibliothèque de requêtes Maintenant, en Python, vous pouvez le faire d'une manière ou d'une autre, mais pour nous, nous devons examiner les deux versions pour nous donner une idée. Et vous voyez ici, nous avons des en-têtes. Je vais juste copier les en-têtes à partir de là. Et si nous revenons directement à Goto ici, nous pouvons continuer et créer nos en-têtes de variables Maintenant, ils ont des bretelles bouclées et c'est un dictionnaire. Le nôtre doit être un tableau pour nos en-têtes. Ce sont des crochets. Je vais juste le coller dedans. Maintenant, nous allons avoir une erreur. Tout simplement parce que nous avons des paires clé-valeur. Ce n'est pas ainsi qu'un tableau fonctionne. Ce que je vais faire, c'est passer au milieu, surligner cette citation, surligner cette citation, l'espace entre deux points et l'autre citation ici. Et je vais juste supprimer cet espace entre deux points. Nous supprimons donc essentiellement les guillemets qui l'entourent, pour en faire une seule chaîne. Et vous voyez qu'à la fin, avec Devolve, vous les copiez tous les deux. Nous l'avons déjà séparé par une virgule, et nous allons faire la même chose ici au milieu Supprimer, le charbon dans l'espace. Nous avons donc deux chaînes ici, et ce seront nos en-têtes. Et je l'ai obtenu grâce au fait que vous devriez pouvoir l'obtenir à partir de la requête ou du client HTTP de Python. Ils seront tous les deux exactement les mêmes ici pour cette information . Et je vais continuer et zoomer davantage sur ce point, simplement parce que c'est la seule information sur laquelle nous devrions vraiment nous concentrer ici. D'accord. Encore une fois, les en-têtes ici. Je suis allé de l'avant et j'ai simplement copié les informations ici. Et il s'agit essentiellement , comme il est dit ici, notre hôte et de notre clé API. Que nous allons utiliser spécifiquement pour l'API rapide ici. Et cela va changer si mon cerveau fait une pause, par base de données, par API. Ce sera donc toujours différent. Maintenant, l'URL que nous voulons, eh bien, nous pouvons voir les connexions animées db.p.rapidpi.com Et puis, dans leur demande, nous avons tout cela d' important ici. Eh bien, cela ne suffira pas pour nous. Alors, descendons simplement vers le bas et passons à Python Quest, et ce sera notre URL de base. Si nous le copions simplement et jetons un coup d'œil ici. Nous pouvons créer une URL variable. Et c'est notre URL de base. Maintenant, j'ai dit que nous allions utiliser get all, et c'est de là que vient cette dernière variable. C'est juste en train de le créer là. Et c'est là que vous devez être un peu attentif lorsque vous combinez des éléments, car vous pouvez tout fusionner en une seule URL, puis vous pouvez fusionner le genre pour faire le tour du genre, etc., mais ce que je vais faire ici, c'est que nous allons y aller , nous allons revenir ici, et nous pouvons voir cela se terminer par slash N, rapid api.com slash anime Nous devons donc garder cela à l'esprit. Nous allons revenir au client HTTP Python. Et nous pouvons voir en bas que nous avons un anime, un point d' interrogation, la première page, etc., n'est-ce pas ? Nous allons donc ignorer l' anime slash et tout récupérer par la suite Et nous allons revenir à Goto . Et nous y voilà. Ensuite, nous pouvons voir les recherches, full metal, genre, fantasy, trier par cinq, trier par ordre croissant, et voilà. Nous avons tout cela. Alors maintenant, nous pouvons simplement fusionner notre URL de base avec ce que nous avons ici. Donc, comme autre exemple, si je devais en revenir à l'anime G one. Anime G One, par classement. C'est bon. Et je reviens ici juste pour vous montrer ici, et je passe au client HTV Wills anime, mais ici, B Ranking en coupe un. Ce serait à titre d'exemple. Lisez une autre variable ici. Hein ? Nous dirons obtenir un classement. C'est une ficelle. Et nous pourrions le faire. Alors maintenant, nous pouvons simplement l'échanger contre get ranking, que nous voulons ou remettre en place. C'est pourquoi j'aime me séparer ici, alors je peux simplement changer précisément ce que je veux là-bas. Et bien sûr, si vous deviez implémenter des résultats de recherche et des choses comme ça ici, je vois la recherche ici, le genre et tout ça. Vous pouvez le mettre sous forme d' espaces réservés, comme nous l'avons fait ici avec la météo, n'est-ce pas ? Avec ceci, nous l'avons , et ensuite nous pouvons voir ce que nous devons obtenir. Eh bien, si nous y jetons un coup d' œil, reviendrons à tout trouver ici. Si nous regardons ici dans le client HTTP, nous voyons la réponse G, nous examinons tout cela, et nous voyons en bas qu'ils ne font que décoder l'UTF h. Donc, c' est tout. c' est tout Tout ce qu'ils font, c'est décoder l'UTF huit. Cela devrait donc être tout ce que nous avons à faire pour cette API. Maintenant, si vous travaillez avec une autre API, vous devrez peut-être effectuer l'analyse JSON complète, comme nous l'avons fait par temps libre Donc, ici, nous avons juste notre réponse et tout ce que nous faisons c'est obtenir la chaîne en UTF H. Maintenant, si nous imprimons la réponse ici, nous l'exécutons, et nous nous souvenons que nous obtenons tout Nous devons attendre quelques secondes. Et c'est parti. Nous avons une liste complète, donc nous pouvons voir l'épisode 16 de la comédie fantastique dont le classement des épisodes est vrai. Nous pouvons voir l' image ici sur WebP. Nous avons un lien qui y mène directement. Vous pouvez donc prendre ce lien et le fournir à vos utilisateurs. Si c'est ce que vous voulez, mais vous pouvez voir que tout est là sous forme de données. Et nous pouvons accéder à tout cela individuellement. Et juste pour vous montrer que nous avons des bretelles bouclées ici au début Si nous venons ici, nous obtenons simplement des données, elles arrivent comme il se doit. Il faudrait donc trouver un moyen de trier les informations que nous recherchons. Donc dans ce cas, puisque Jason ne reviendra pas, c'est un peu embêtant, je suppose. Mais comme vous le voyez ici, puisque nous devons aller plus loin, même si l'API ou la page nous indiquent qu'il ne nous reste plus qu'à analyser l'UTFA. C'est très bien Mais comme nous voulons obtenir les données supplémentaires, analysé la chaîne à l'aide de la classe JCN Et comme vous pouvez le voir, je peux maintenant obtenir ces données, le premier élément, car les données étaient un ensemble d'éléments. Ensuite, je pourrai trouver le titre du premier épisode, qui est, je crois, le premier épisode, n'est-ce pas ? Du moins, le résultat. Et si nous changeons cela pour le deuxième élément, nous devrions avoir un nom différent là-bas. Ouais. Nous avons donc Fraternité. Je vais passer à la suivante. Nous avons le conquérant de Shambala, quel qu'il soit Je n'ai jamais vu ça. Mais voilà. Vous voyez, il n'est pas trop difficile de travailler avec ce Python ou y convertir l' exemple de Python. Donc, nos tableaux, nous les avons copiés et les avons placés dans script GD ici sous forme de tableau au lieu d'un dictionnaire Nous avons supprimé les guillemets au milieu. Ainsi, notre clé d'API est une longue chaîne et notre hôte d'API est une longue chaîne. Nous alternons entre la requête HTTP et le client http point et la bibliothèque de requêtes pour les deux options Python ici afin d'obtenir notre URL de base ici, ainsi que les différentes recherches que nous pouvons réellement effectuer ici. Et tout ce que nous faisons dans la demande, transmettre notre URL, et dans ce cas, je vais juste ajouter mon G A et les en-têtes Maintenant, si vous en avez plus que cela, par exemple, si vous en avez un où cela vous indique que vous devez pousser, n'est-ce pas ? Vous devez publier au lieu de G. C'est là que ces valeurs par défaut entrent en jeu, n'est-ce pas ? Nous pouvons donc simplement entrer dans la méthode client HTTP sous Square Post. Maintenant, la valeur par défaut est G. C'est pourquoi nous n'y mettons rien. Mais si jamais vous avez besoin de publier, au lieu de G, c'est comme ça que vous le feriez. Il vous suffit de l'ajouter après les en-têtes. Très bien, alors voilà. Voici comment procéder. Il existe à la fois une vaste collection d'API avec lesquelles vous pouvez travailler et vous entraîner. Et si c'est ce que vous voulez faire, offrez des choses à votre client. Et comment utilisez-vous leurs exemples Python et comment les convertissez-vous afin que nous puissions les utiliser dans le script GD Vous avez donc maintenant une collection plus large avec laquelle vous pouvez travailler. Vous savez maintenant comment travailler avec les en-têtes ici. Et je vous ai montré comment publier un message au lieu de G. Maintenant, cela sera diffusé parce que nous ne publions pas. Nous les obtenons. Ouais ? Et cela devrait nous permettre de mieux comprendre la partie API. Ensuite, nous allons examiner ce que sont les sockets Web, pourquoi ils sont utiles , comment nous pouvons les utiliser et pourquoi nous pourrions vouloir les utiliser. 63. Que sont les WebSockets (espace rempli): Bonjour, tout le monde. Bienvenue. Et aujourd'hui, nous allons parler de ce que sont les sockets Web ? Qu'est-ce qu'ils sont ? Qu'est-ce qu'ils sont pauvres ? Eh bien, si vous connaissiez la programmation, qui se trouve probablement ici, vous avez peut-être déjà entendu ce terme, mais que sont-ils exactement ? Que sont les websockets et comment fonctionnent-ils ? Eh bien, à la fin de cette leçon, vous aurez, espérons-le, une idée de ce que sont les sockets Web et de la magie qu'ils peuvent nous apporter. En termes simples, les sockets Web sont un protocole de communication qui permet le transfert de données bidirectionnel en temps réel ou bidirectionnel entre un navigateur Web et un serveur Web Vous pouvez le considérer comme une connexion permanente virtuelle qui reste ouverte, permettant une communication instantanée entre les deux extrémités. Pour mieux comprendre, imaginons que vous discutez avec un ami sur une application de messagerie. Lorsque vous envoyez un message, votre ami le reçoit instantanément, n'est-ce pas ? C'est parce que l' application de messagerie a un concept similaire. Il établit une connexion entre vos appareils permettant une communication en temps réel. Maintenant, comment fonctionnent les sockets Web ? Eh bien, lorsqu'une page Web prenant en charge les sockets Web est chargée dans votre navigateur, elle envoie une requête HTTP spéciale au serveur demandant d' établir une connexion Web Socket. Une fois que le serveur a approuvé la demande, la connexion permanente est créée et le navigateur et le serveur peuvent s'envoyer des données en temps réel. La magie des sockets Web réside dans leur capacité à gérer les communications bidirectionnelles. Cela signifie que non seulement le serveur peut envoyer des données au navigateur instantanément, mais que le navigateur peut également renvoyer des données au serveur en temps réel. C'est comme avoir une conversation en direct entre le navigateur et le serveur. Les sockets Web sont incroyablement utiles pour créer des applications nécessitant des mises à jour en temps réel, telles que les chats en direct , les jeux en ligne, les tickers boursiers, etc. Ils éliminent le besoin de pages constantes, d' actualisation et d'extraction, ce qui rend vos applications Web plus efficaces et réactives. Donc, si vous avez besoin d'un autre type d'explication pour vous aider à comprendre cela, vous pouvez le voir comme deux personnes se rencontraient, peut-être pour la première fois, la personne A, le client, la personne B, le serveur, elles se rencontrent, elles se serrent la main. Et ils essaient d'établir un lien, non ? Ils se rencontrent, se serrent la main et déterminent à partir de là s'ils veulent garder ce lien, échanger des informations, avoir une conversation entre eux ou s'en aller. S'ils ne veulent pas parler, nous pouvons dire que la connexion est rompue et qu'ils se séparent. Cependant, s'ils décident de poursuivre leur conversation, la connexion a été acceptée entre les deux membres, les deux parties, et ils peuvent désormais échanger des informations en direct en temps réel. J'espère que l'un de ces trois exemples de Sho vous aidera à comprendre exactement comment ils fonctionnent. Et même si vous l'avez, c'est une simple introduction à Websocket, à ce qu'ils sont, façon dont ils peuvent être utilisés Et c'est un outil essentiel lorsqu'il s'agit d'une grande partie de la programmation moderne, et encore une fois, cela dépend vraiment du type de domaine lequel vous souhaitez vous lancer avec vos compétences en matière de développement. Mais ils aident à permettre cette communication en temps réel entre votre application et le serveur. Et au fur et à mesure que vous approfondirez la programmation, vous découvrirez que les sockets Web sont un outil puissant et polyvalent. Créez des applications interactives et engageantes. Mais n'oubliez pas qu'ils ne fonctionnent pas uniquement avec des serveurs qui ne sont pas situés ailleurs. Certaines applications existantes utilisent websockets avec lesquelles vous pouvez créer vos propres outils pour travailler Nous allons y jeter un œil dans la prochaine vidéo. 64. Établir un lien: Très bien, alors allons-y et voyons comment nous pourrions établir une connexion Web avec nous-mêmes ici et comment nous pourrions nous connecter à quelque chose. Et la chose à laquelle nous allons nous connecter sera OBS. Maintenant, si vous le souhaitez, vous pouvez continuer et rechercher le plugin de serveur websocket, le plug-in websocket pour OBS Studio, si vous souhaitez suivre cette procédure et simplement exécuter le programme d' installation Je ne devrais te prendre qu'une minute ou deux. Et ce que vous allez voir, c'est que si vous accédez à Tools on OBS, vous devriez y voir une option de paramètres du serveur Web Socket. Et en cliquant dessus, tu auras cette fenêtre ici Popo Assurez-vous que le serveur Websocket est activé. Et tout ce dont nous avons besoin, c'est d'un peu d' information ici. Donc, si nous allons afficher les informations de connexion, ce sont l'adresse IP et le port de votre serveur qui apparaîtront. Et l'adresse IP est la principale chose que nous voulons en tirer , car nous pouvons déjà voir le port ici même dans cette fenêtre. Maintenant, ici en bas, vous verrez quand ou combien de personnes s'y connectent. Et comme vous le voyez, vous aurez également la possibilité de virer un utilisateur à partir d'ici. C'est donc de là que nous allons obtenir nos informations, juste pour que vous le sachiez. Et encore une fois, nous allons avoir besoin de l'adresse IP et des ports du serveur ici même. Vous pouvez donc prendre cette information, en souvenir, la mettre de côté. Et commençons ici. C'est bon. Donc, la première chose que nous devons faire, c'est que j' ai juste un nœud de contrôle ici, ma scène, rien de grand avec lequel nous pouvons fonctionner. Et je vais y ajouter un script et simplement appeler et simplement appeler un client websocket. Ça n'a pas vraiment d'importance. Nous sommes maintenant prêts à créer cette connexion. D'accord, alors comment faisons-nous ? Eh bien, nous allons avoir besoin d'un nouveau socket, accord, pour commencer. Nous pouvons donc créer une variable appelée socket. Et cela équivaut à un numéro de point correspondant à un socket Web. Nous voulons créer un nouvel article, n'est-ce pas ? Un nouvel objet, ce socket Web. Et je vais également saisir l' URL du socket ici. Il suffit de le stocker sous forme de variable. Douille RL. Et ce sera votre adresse IP. Mais pas n'importe comment. Nous allons avoir WSS, ClonAS puis notre adresse IP, et je ne peux pas la coller, donc je vais devoir la taper 100 points zéro point 19 Celui-ci est, je ne sais pas, s'il échoue, alors nous allons jeter un œil à l'autre. Donc, une fois prêts, c' est ici que nous allons établir notre connexion. Donc, le socket point se connecte à l'URL, et nous allons simplement transmettre l'URL de notre socket. Maintenant, cela peut prendre des paramètres facultatifs, mais ce n'est pas le cas. Ce n' est pas à nous de les mettre ici. Ensuite, cela nous donne la fonction de notre processus ici. Et ce que vous allez devoir faire est complet. Et ce que c'est que c'est essentiellement constant, vous pouvez considérer cela comme un échange d'une très, très petite quantité d'informations juste pour maintenir la connexion des deux côtés. Sinon, si rien n'est reçu, la connexion sera interrompue et vous serez déconnecté de ce socket Web, n'est-ce pas ? Vous serez déconnecté de ce serveur. Moi et personne n'aime ça. , maintenant, pour les utiliser, nous devons décider de ce que nous allons faire, et nous pouvons le déterminer en fonction de l'état dans lequel se trouve notre socket. Et les états qu'il reçoit nous permettent de savoir s'il est ouvert, s' se ferme, s'il est fermé ou s'il est toujours connecté. Alors allons-y et stockons ça. L'état de la barre est égal à l'état « get ready » du socket point. Et maintenant, cet État sera en mesure de nous dire de quoi il s'agit. Maintenant, nous pouvons dire si l'état est égal à websocket ici, t et voici tous nos états Nous dirons donc « État ouvert ». Et je vais juste y passer un moment. Et nous allons également en créer d'autres ici. Nous allons dire, comme si l'état est égal à la fermeture de l'État. Il reste donc notre dernier à fermer. Maintenant, nous pourrions également en avoir un pour nous connecter, mais il n'y a pas de véritable tableau de points. Maintenant que l'État ferme ses portes, nous n'avons rien à faire ici. Nous devons juste nous assurer que nous sommes toujours en train de voter pour le moment afin de clôturer correctement. Et voyons voir, commençons. Allons-y et faisons-le quand notre État sera ouvert. Eh bien, ici, nous allons avoir une boucle endiablée, et c'est là que nous allons obtenir informations sur les paquets qui nous sont données. Nous pouvons donc dire que Wil socket est disponible sur le compte Pack. Pendant que des données nous sont envoyées, n'est-ce pas ? Nous avons donc des paquets. Nous allons aller de l'avant et nous allons simplement imprimer ce que c'est, donc nous allons dire pack Base. Et puis pour le deuxième argument, nous allons transmettre le paquet quel qu'il soit , n'est-ce pas ? Douille. Ouais. Paquet. C'est bon. Et c'est tout ce que nous devons faire pendant qu'il est ouvert. Jetons un coup d'œil ici où notre prise sera fermée. Et les informations sur les barres, nous pouvons aller de l'avant et créer un code-barres, et cela sera capable de saisir , d'obtenir le code de fermeture. De cette façon, nous pouvons avoir des informations lorsque nous sommes déconnectés pour savoir pourquoi ou peut-être notre connexion échoue. Il essaie donc de se connecter, puis il se ferme immédiatement. Nous pouvons à nouveau découvrir pourquoi afin de pouvoir nous communiquer certaines informations. Et en parlant de raison, ce sera notre prochain article ici, ce sera socket Get close Reason. Nous pouvons ensuite continuer et simplement imprimer nos options ici. Et ce sera juste un websocket fermé avec du code, un espace réservé, une raison, un espace réservé, un espace réservé propre Va. Voilà. Vous pouvez le voir ici, webs closed, code, reason, clean. Il y en a un de plus à la fin. Et nous allons les remplir avec du code, raison, puis un code différent de moins un. nous reste plus qu'une dernière chose à faire est d'arrêter de sonder, et nous pouvons le faire en qualifiant simplement set process de false. Ainsi, lorsque vous définissez ce paramètre sur false, quel que soit le contenu, cette fonction de processus ne s' exécute plus tant que vous ne la redéfinissez pas sur true. C'est bon. Donc, avec cela, nous devrions être en mesure nous connecter à notre OVS qui s'y trouve Donc si nous fermons notre fenêtre ? Pensez que notre fenêtre est fermée. Allez-y et ouvrez-le. Ça y est. D'accord, donc je vais juste aller de l' avant et appuyer sur Exécuter ici Mais je vais m' assurer que nous puissions voir ce côté quand je le ferai. Je vais juste aller de l' avant et m'occuper de ça. Attends une seconde, et nous verrons que nous n'avons aucun lien. Maintenant, le plus sérieux sera de savoir pourquoi. Eh bien, jetons un coup d'œil. Eh bien, s'il ne se connecte pas , c'est parce que nous n'avons rien fait avec le port. Maintenant, le port peut être si vous créez votre propre application, cela peut être à peu près ce que vous voulez. À peu près tant qu'il n'est pas déjà utilisé. Et pour ajouter un port à la fin de notre URL, il suffit de deux points. Et puis le port qui y était disponible dans le paramètre de service, qui est quatre, quatre, cinq, cinq, sauvegardez ça. Et si nous regardons en arrière et que nous l'exécutons, accordons-lui une seconde ici. Nous y voilà. Nous pouvons voir si nous sommes connectés. Nous pouvons voir depuis combien de temps nous sommes connectés, les messages entrants et sortants identifiés n'ont pas été identifiés parce que nous n'utilisons aucun mot de passe ici et nos informations, et nous avons la possibilité de les saisir. Maintenant, si nous regardons le côté Goto, nous pouvons voir que voici notre paquet d'informations Cela ressemble à un tableau de nombres, mais il contient des données. Fais-moi confiance. Nous ne pouvons tout simplement pas voir exactement de quoi il s'agit. Nous allons donc régler ce problème ici dans un instant. Et en dessous, vous pouvez voir où, lorsque nous expulsons l'utilisateur, qui sera notre client ici, nous pouvons voir ce websocket fermé, et il s'est fermé avec le code 40 11 Le motif de la session a été invalidé. La raison en est que notre session a été invalidée et qu'elle s'est terminée proprement , ce qui est une bonne chose Mais comment extraire les données de tout ce paquet ici, paquet d'octet par octet. Eh bien, socket point Get packet. Il s'agit d'un pull by array. Nous l'avons donc obtenu au format UTF huit, nous devons donc en extraire le texte Donc, après avoir fait socket point Get packet here, nous allons appeler Yet string from UTF eight Et sauvegardez-le. Et lorsque nous l'exécutons à nouveau, lorsqu'il se connecte, nous pouvons voir que nous avons obtenu les données réelles qu'il contenait. Nous pouvons donc voir la version que nous avons obtenue et la version RPC Et les informations que nous utilisons ici, je les ai obtenues avec la version actuelle du serveur que j'utilise. Le vôtre est peut-être différent parce que je suppose que vous allez l'acheter tout neuf. Je l'ai installé depuis un bon moment maintenant. Je vais juste y aller et arrêter de courir ici. Et vous voyez, nous n'avons reçu aucun message d'encouragement. Mais si je le lance ici et si j'appuie sur le bouton de démarrage, vous voyez, il y a notre message de lancement. Très bien, donc malheureusement, je ne peux pas vraiment t'aider à dépasser ce point. Au-delà de la question de savoir comment établir une connexion ici étant donné que l'obtention d'informations ou l' envoi une manière particulière dépend de ce à quoi vous êtes connecté et de la façon dont ils veulent que leurs données soient à quoi vous êtes connecté et de la façon dont ils veulent que leurs données structurées, et de la façon dont ils vous renvoient des données, vous devrez peut-être ou non en extraire les données de différentes manières, mais à l'avenir, ce que vous pouvez faire est que si nous détenons le contrôle, nous pouvons cliquer sur websocket Peer Et si nous descendons, nous pouvons voir ici toutes nos propriétés, nos méthodes, et toutes nos informations ont trait à cette chose spécifique ici et à la façon de tout utiliser ici. Vous pouvez donc aller de l'avant, vous pouvez le parcourir, jeter un œil et je suppose que cela doit être comparé la documentation ou à à quoi vous essayez de vous intégrer. Et à ce moment-là, je suppose que c'est un peu comme bonne chance. C'est un peu nul à dire, mais nous vous avons mis en relation, c'est à vous de lire votre documentation et de trouver comment échanger ces informations 65. Envoyer des données avec WebSockets: Très bien, j'ai donc un bouton et une modification de ligne ajoutés à ma scène juste pour quelques visuels. Et sur le bouton, le signal de presse est connecté à mon client Web Socket. Et je vais au moins vous montrer comment envoyer, disons, un message via ce websocket Maintenant, le nôtre va bien, je vais vous le montrer. En fait, vous pouvez le voir en bas, mais nous le verrons ici dans une minute. Donc, dans la presse, nous allons avoir un écran de message pour cette variable, et celui-ci sera configuré sur notre ligne de texte d'édition. Texte. Arrêtez le remplissage automatique. Arrête ça. Nous l'avons donc. Et maintenant, nous devons réellement envoyer ceci. Maintenant, vous pouvez mettre cette partie d'envoi dans sa propre fonction, ce qui serait probablement une bonne idée car vous pourriez alors simplement appeler send chaque fois que vous avez besoin d'envoyer des données. Mais c'est ainsi que nous l'enverrions. Nous disons donc chaussez-le, emballez-le, puis nous devons y inscrire notre message Cependant, nous ne pouvons pas simplement transmettre notre message de cette façon. Ça ne marchera pas. Mais nous pourrions entrer avec notre tampon UTFA, par exemple, et celui-ci va l'encoder Donc, si nous allons de l'avant et que nous l'exécutons, cela se connecte toujours à OBS ici. Si nous tapons « hello », « send », nous pouvons voir que notre socket d'effacement a été fermé parce que l' encodage est envoyé à Jason, mais qu'un message binaire a été reçu. Vous pouvez donc voir que nous envoyons le mauvais type de données. C'est donc là que le type d'information doit se trouver ou est basé sur votre projet. Cela dépend de ce à quoi vous êtes connecté et des raisons pour lesquelles vous devez consulter la documentation. Sinon, le faire de cette façon est également un message StringFio à points JSON Ensuite, nous pouvons l' encoder en UTF huit, comme ça, et cela nous donnera le même résultat dans cette instance Notre prise va se fermer. Et bien sûr, lorsque vous envoyez, vous devez probablement vous assurer que l'État est ouvert ici. Mais voilà. Il y a l'idée de la façon dont vous enverriez des données via ce socket Web. Maintenant, comme je l'ai dit, cela ne fonctionnait pas vraiment. Nous avons été fermés parce que nous avions envoyé le mauvais type de données. Nous avons donc perdu notre connexion. Mais vous devrez simplement lire la documentation de tout ce que vous essayez de connecter et du programme auquel vous essayez de parler. Hein ? Donc, si vous avez installé Python, n'hésitez pas à y jeter un œil et à copier ce code pour créer votre propre petit serveur de socket Web en Python afin de vous embrouiller. Mais en fin de compte, nous utilisons Async et les sockets Web, bien sûr, les sockets Web devraient être importés Tout ce que nous faisons ici, c'est créer une fonction asynchrone, et il s'agit simplement de démarrer notre serveur pour nous, ou désolé, ici, nous allons démarrer notre serveur Mais ici, à l'intérieur de notre serveur, nous avons quatre messages dans un socket Web, donc c'est vrai, chaque fois que nous envoyons un message ici, notre message est décodé à partir de l'UTF huit Oups. Ensuite, nous allons imprimer le message que nous avons reçu du client. Donc, s'il s'agissait, disons, d'une application de chat, alors vous la prendriez et vous l'enverriez à la personne à qui elle parle, n'est-ce pas ? Sur la base de leur identifiant ou quoi que ce soit d'autre. Et là, nous attendons un moment et renvoyons le message. Nous renvoyons le message à GOTO ici juste pour pouvoir jeter un œil et voir que nous pouvons à la fois envoyer et recevoir des données, dans Ensuite, nous démarrons simplement le serveur sur l'hôte local qui, dans GoTo, si vous ne le saviez pas, possède un hôte local Il est de 127,0 0,0 0,1. Nous utilisons également le port 5 000 pour cela. Nous sommes simplement en train d' imprimer sur notre console en bas, que le serveur a démarré, puis nos deux boucles ici consistent simplement à faire fonctionner notre serveur en continu. C'est bon. Donc, si je devais entrer et exécuter ceci, nous pourrions voir le serveur démarré ici. Et je vais aller de l' avant et le lancer du côté du chatto afin que nous puissions établir une bonne connexion Oh, et nous ne pouvons pas le voir maintenant à cause de cette couche. C'est très bien. Je vais juste le baisser pour ça. OK. Donc voilà. Et vous verrez, je vais aller de l'avant et taper ici, dire bonjour, nouvelle personne. Bienvenue sur le chat. Et je suis super excitée. Je vais appuyer sur mon bouton Envoyer, et voilà. Nous pouvons voir le message de notre client. Nous pouvons donc voir que nous recevons des données sur notre serveur Web Socket ici. Et si nous le cachons, nous pouvons le voir sur notre version GTO ici. Le paquet que nous avons reçu, c'est vrai, était un message que le serveur nous a envoyé disant : «  J'ai reçu votre message et nous a répété le contenu de notre message ». Vous pouvez donc voir que cela fonctionne, il suffit d'avoir ou de formater ce que vous envoyez, n'est-ce pas ? Vous envoyez un message correctement en fonction de ce à quoi vous vous connectez. Vous voyez donc que cette méthode fonctionne ici ou que cette configuration fonctionne avec un simple serveur Web Socket et Python ici, mais ce format ne fonctionne pas lors de la connexion ou de l'envoi de données à OBS. C'est donc là qu'intervient une partie de cette lecture, mais je voulais vous montrer les sockets Web qui fonctionnent avec un serveur. Et vous voyez, ce que nous avons ici est notre base de création d'un bot de discussion ou d'un salon de discussion, comme nous l'avons déjà fait ici, uniquement avec notre serveur et notre client. Il vous suffit de différencier quel client est qui et à qui il envoie chaque message. Je veux dire, vous avez en quelque sorte mis en place une discussion, au moins entre un serveur et un client. Mais avant que je commence à m'amuser, voilà. Il y a des preuves, je suppose, vous pouvez dire que l'envoi de ces données fonctionne. Cela dépend simplement de la façon dont il est formaté et de ce à quoi vous êtes connecté. C'est bon. Je vais le mettre encore une fois là-haut. Donc, si vous voulez mettre la vidéo en pause et continuer à la copier si vous le souhaitez. Et Python est installé sur votre ordinateur. Si vous voulez le faire et créer votre propre serveur, allez-y. Avec cela, prenez soin de vous en procurer un bon, et c'est ainsi que nous nous connectons et utilisons les websockets 66. En quoi le développement de bureau est-il différent: Très bien, bon retour à tous, et nous allons nous plonger dans la section sur le développement logiciel ici. Maintenant, qu'est-ce qui différencie le développement de logiciels du développement de jeux vidéo ? Eh bien, discutons-en. Le développement de logiciels ou d'applications de bureau implique la création de programmes qui s'exécutent directement sur l'ordinateur d'un utilisateur. Ces applications répondent à un large éventail d'objectifs, allant des outils de productivité aux logiciels de création en passant par tout ce qui se trouve entre les deux. En tant que développeur d' applications de bureau, vous vous concentrerez sur la conception d'interfaces utilisateur intuitives et élaboration de solutions efficaces pour répondre aux besoins des utilisateurs L'une des principales différences entre le développement de jeux et le développement d'applications de bureau réside dans leur objectif. Alors que les jeux sont conçus pour le divertissement et l'interactivité, les applications de bureau sont conçues pour résoudre un problème spécifique ou améliorer la productivité Dans le monde du développement logiciel, vous découvrirez un large éventail d'applications, telles que des traitements de texte, des outils de tableur, des éditeurs d'images, des lecteurs vidéo, etc. Les possibilités sont illimitées et vous avez le pouvoir de créer des outils qui peuvent avoir un impact positif sur la vie des gens De plus, en tant que développeur d'applications de bureau, vous serez en mesure de travailler avec différents langages de programmation. Certains de ces choix populaires sont Python ou C SHARP, que vous pourriez utiliser avec GDScrp pour améliorer ou apporter plus de fonctionnalités à votre application que vous n'avez peut-être pas normalement Évidemment, c'est facultatif, mais la capacité serait là pour vous. un autre aspect clé du développement de logiciels pour expérience utilisateur est un autre aspect clé du développement de logiciels pour les applications de bureau. Contrairement aux jeux où l'immersion et le gameplay occupent une place centrale, les applications de bureau privilégient la convivialité et l'efficacité. Vous vous efforcez de créer des interfaces intuitives qui simplifient les tâches des utilisateurs et les rendent plus agréables. Maintenant, une chose qui va également être très importante en matière de développement logiciel est l'apparence générale, la façon dont vous avez présenté votre application. Si votre application semble avoir été créée à l' époque de Windows 95, elle aura l' air ancienne, désuète et elle ne sera pas attrayante par rapport à une autre application, même si la vôtre est par rapport à une autre application, peut-être bien supérieure. Si ça n'a pas l'air aussi beau, peu de gens vont l'essayer. C'est juste la triste réalité du monde. Non seulement vous devez créer un programme qui fonctionne exceptionnellement bien, mais il doit également être beau. Cela ne vous fera donc pas de mal de suivre un cours de type expérience utilisateur ou interface utilisateur, puis de suivre ce cours par la suite afin d'améliorer vos compétences en matière de conception d'interface utilisateur, si cela a du sens. Et ce n'est, bien entendu, que si vous choisissez de suivre la voie logicielle à l' avenir. Mais voilà une introduction simple développement de logiciels pour les applications de bureau. Au fur et à mesure que nous approfondirons cette section, nous explorerons certains de nos outils essentiels Je suppose que nous pouvons les appeler en utilisant TDScript ici Et je peux vous aider avec certains de vos principes de conception pour vous aider à créer une application de bureau conviviale. 67. Ancrages: Bonjour, tout le monde. Et avant commencer à créer quoi que ce soit, nous devons parler des ancres. Que sont les ancres ? Eh bien, les ancres sont de puissants outils qui vous aident à créer des interfaces utilisateur réactives et flexibles pour vos jeux et applications logicielles ancres sont utilisées efficacement pour adapter votre élément d'interface utilisateur aux différentes tailles d'écran et aux différents formats d'image. Plongeons-nous dans le vif du sujet. Dans Goto, les ancres sont des attaches invisibles qui attachent éléments de l' interface utilisateur aux bords du conteneur ou de l'écran parent Ils définissent la manière dont l'élément de l'interface utilisateur doit être redimensionné et positionné lorsque le conteneur ou l'écran parent est redimensionné Cela garantit que votre interface utilisateur reste cohérente et conviviale sur différents appareils et résolutions. Pour mieux comprendre les ancres, imaginons que vous ayez un bouton d'interface utilisateur le menu principal de votre jeu Vous souhaitez que le bouton reste dans le coin inférieur droit de l'écran, quels que soient la taille de l'écran ou le format d'image. Pour ce faire, vous devez ancrer la position du bouton dans le coin inférieur droit de son conteneur parent ou de l'écran. Pour cela, nous appuyons sur notre bouton, et ces petites épingles vertes sont nos points d'ancrage. Donc, si nous les déplaçons tous dans le coin inférieur droit et que nous regardions la scène ici, quelle que soit sa taille, elle restera toujours dans coin inférieur droit, alors que si nous la laissions à sa valeur par défaut, qui se trouverait dans le coin supérieur droit, désolé, dans le coin supérieur gauche. Et c'est nous qui l'avons défini. Et si nous devions l'exécuter maintenant, vous verrez qu'il reste dans cette position par rapport au coin supérieur gauche, quel que soit l'endroit où se trouve le coin inférieur. Et comme vous pouvez le constater, le bas n'a pas d'importance et nous pouvons supprimer complètement de l'écran simplement en faisant un petit. Cependant, si nos ancres trouvaient en haut à gauche et en bas à gauche, et que nous devions y jeter un œil se trouvaient en haut à gauche et en bas à gauche, et que nous devions y jeter un œil, elles resteraient dans cette position, mais elles s' étireraient également en bas, car elles seront aussi proches du bas que du haut vers l'autre coin Et nous pouvons encore, bien sûr, dépasser. Vous pouvez donc voir comment les points d'ancrage peuvent affecter l'apparence de votre interface utilisateur à la fin de la journée. Donc, si nous le voulions dans le coin inférieur droit, nous allons placer nos ancres en bas à droite Et maintenant, cette partie de notre interface utilisateur restera toujours dans cette position par rapport à ce coin. Désormais, lorsque vous lancez le jeu sur différents appareils ou que vous redimensionnez la fenêtre comme vous le voyez, le bouton ajuste automatiquement sa position en fonction des ancres, pour qu'il reste toujours le coin inférieur droit Désormais, dans goto, vous pouvez utiliser les préréglages d'ancrage pour définir le comportement souhaité des éléments de l'interface utilisateur Ces préréglages incluent le haut, la gauche, la droite et le bas. ancres sont des éléments situés sur les bords spécifiés de son conteneur ou de son écran parent Centre vertical, centre horizontal, ancre les éléments au centre vertical ou horizontal de leur conteneur parent ou de l'écran et remplissez notre dernière option ici, ancre l'élément aux quatre bords, le faisant s'étirer et s'adapter au conteneur ou à l'écran parent Donc, si vous vouliez, par exemple, une image remplisse toujours le verso, par exemple, si nous arrivions et que nous faisions une correction de couleur ici, et que nous remplissions l'écran. Nous entrons. Nous avons cette jolie couleur foncée. Nous avons un brun foncé ici. Peut-être voulons-nous opter pour un vert foncé subtil pour notre arrière-plan. Et si nous ne touchons pas les ancres, nous laissons tout par défaut, et vous pouvez voir que nous avons un problème ici Cependant, si nous l'utilisons dans ce cas, nous pouvons simplement utiliser le préréglage pour placer nos épingles aux quatre coins. Désormais, notre écran sera toujours entièrement recouvert de cet arrière-plan Dans notre cas, notre couleur. Ainsi, en utilisant des préréglages d'ancrage et en personnalisant leurs valeurs, vous avez un contrôle total sur la façon dont éléments de votre interface utilisateur réagissent aux modifications de la taille de l'écran et du rapport hauteur/largeur Très bien, voilà une introduction aux ancres de Gato En tirant parti de la puissance des ancres, vous pouvez créer des interfaces utilisateur réactives et adaptables pour vos jeux et logiciels Maintenant, pour les jeux, bien sûr, cela ne s'applique généralement qu' à votre écran tête haute, garantissant ainsi une expérience utilisateur fluide sur différents appareils. 68. Mise en page de recherche: C'est bon. La première chose que nous allons faire est de créer , nous allons d'abord créer notre barre de recherche et ce que nous allons créer ici. Allons-nous créer notre propre petite application de bureau qui nous permettra de rechercher un anime et qui nous donnera une liste de résultats. Il contiendra toutes les images de tous les résultats pour chaque anime individuel. Je vais avoir le titre. Je vais vous indiquer les genres. Et si nous cliquions sur l'un d'eux, il s'ouvrira. Cela nous donnera un synopsis. Il y aura une version plus grande de l'image. Et si nous voulons y jeter un œil, y jeter un œil plus loin, nous pouvons cliquer sur un lien externe qui s'ouvrira dans notre application par défaut, qui serait votre navigateur Web par défaut si vous êtes sur PC. Et ouvrez la page de l' anime pour cela. Et la première chose que nous allons faire dans cette vidéo est de créer la barre de recherche et le bouton qui vous ont été envoyés. Mais nous allons commencer par mettre un arrière-plan ici parce que c'est un peu ennuyeux, non ? Nous l'ouvrons et nous avons cette image grise et ennuyeuse. Allons-y. Nous avons cette boîte grise ennuyeuse. Ce n'est pas très excitant. Et même si on met une ligne au milieu, ça ne sera pas si attirant que ça. Ça ressemble à un M, non ? Donc, la première chose que je vais faire est créer ma toute nouvelle scène ici. Bien sûr, je l'ai appelé Main. Il s'agit d'une scène d'interface utilisateur. Mon nœud racine est donc un contrôle. Et je vais aller de l'avant et ajouter une texture exacte ici. Je vais le renommer comme arrière-plan. Et pour la texture, je viens de me connecter et j'ai trouvé un fond d'anime parce que c'est un fond d'anime qui conviendrait à un anime. Alors je suis allée de l'avant, j'en ai trouvé un, je l'ai apporté. Maintenant, c'est évidemment bien trop gros pour ma candidature ici. Vous remarquerez donc que si nous saisissons le manche, nous ne pouvons pas le changer, mais nous pouvons l' agrandir, mais nous ne pouvons pas le réduire. Je vais donc passer en mode expansion sur l' inspecteur sur le côté droit et passer de « conserver la taille » à « ignorer la taille », « ajuster par portion », «   ajuster à la hauteur ». Je vais juste opter pour Ignore la taille et la réduire jusqu'à ce que le PS couvre tous nos côtés. Quelque chose comme ça. Ensuite, je vais aller de l'avant et poser ses ancres sur une épave de taureau. Allons-y. Ça va régler. Maintenant, ça va être trop clair pour que nous puissions y afficher quoi que ce soit. Je vais donc entrer dans la section visibilité de Min Spector. Je vais passer au module. En fait, je vais m' auto-moduler sur celui-ci. Dans ce cas, cela n'aurait pas d'importance. Mais si vous utilisez Modulate, cela affectera également tous ses enfants, étant donné que c'est le contexte, il n'y aura aucun enfant Donc, tout ira bien, mais si vous voulez simplement affecter ce nœud, vous allez simplement utiliser l' auto-modulation, et je vais juste l'assombrir parce que le mien est assez brillant Je pense qu' il y aura probablement quelque chose de bon là-bas. Donc, si je continue et que je m'en occupe accord ? C'est ma fenêtre. Ce n'est pas trop mal. Ce n'est pas trop brillant pour en retirer quoi que ce soit, même si nous avons beaucoup de Blancs dans mon cas. C'est bon. Ce sera donc mon parcours. Maintenant, qu'en est-il de la recherche proprement dite ? Eh bien, lors de la recherche proprement dite, nous allons en fait le mettre dans un conteneur. Et cela va être placé dans ce que l' on appelle un conteneur VBox Et c'est un conteneur vertical, non ? Ainsi, tout ce que vous y mettez doit être placé est également espacé verticalement Donc, si je vais juste de l'avant et que j'apporte une texture, disons cette texture ici, non ? Utilisez-le comme exemple. Donc, comme vous le voyez, nous allons simplement continuer comme ça de la manière suivante. Alors voilà. Maintenant, évidemment, nous n'allons pas tous les avoir dedans, mais vous voyez l'idée ici. Et juste pour regarder ici, si nous avions un contrôle là-dedans, cela ne ferait aucune différence. Tout cela resterait le même. Je supprime tous ces go. C'est parce que notre contrôle, par défaut, a une taille de zéro. Mettez-le dans les mises en page. Ça y est. C'est Transform. Vous pouvez donc voir que nos tailles Y sont complètement nulles dans ce cas. Et nous pouvons constater que notre transformation est en fait la plus importante, nous ne pouvons donc pas la contrôler. Donc, ce que nous ferions, c'est avoir notre propre conteneur à l'intérieur du certificat. Donc, dans notre cas, allons-y et même si les conteneurs peuvent être intéressants, je pense que nous allons simplement opter pour une configuration Mrvust, je suppose Passons donc à une ligne pour notre SRT maintenant, je peux voir que mon arrière-plan se cache vraiment, donc je vais juste le modifier Assombrir un peu plus pour que ma ligne ressorte un peu Texte de remplacement, recherchez l'anime ici. Et nous allons également ajouter un bouton avec cela. Et le texte à ce sujet se contentera de dire, monsieur. C'est un peu plus large. Allons-y. Maintenant, vous pouvez voir que nous avons du gris sur du noir. Ça va l'être. C'est un peu difficile à voir. Cependant, la seule chose que nous pouvons réellement faire à ce sujet pour le moment serait d'aller dans la direction opposée et d'adopter une approche plus légère, qui est parfaitement acceptable si c'est ce que vous vouliez faire, quelque chose comme ça, peut-être. Évidemment, cela dépendra de vos antécédents, mais c'est quelque chose qui sera réparable lorsque nous passerons à la section suivante où nous parlerons vraiment de tout personnaliser Rien ne semble donc très normal et tout semble beaucoup plus professionnel, je dirais. Maintenant, comme petit conseil, en ce qui concerne l'interface utilisateur, si vous arrivez vraiment en haut, nous avons deux aimants. L'une d'entre elles va être un jeu d'enfant. Comme vous le voyez, nous avons quelques clichés intelligents en cours, et l'autre va nous donner une belle grille que nous pourrons suivre Et c'est ce qui va aider à rendre les choses belles. Nous voyons que cela remonte jusqu'au milieu. Construisons cela par rapport au sommet central. Et je vais faire la même chose avec mon bouton ici. R : OK. Et maintenant, par rapport à ça, je vais évidemment être un peu trop haut. Comment est-ce que tu vas te sentir ? Voyons si c'est moi qui gère ça. Jetez-y un coup d'œil. OK. J'ai l' impression que je vais peut-être apporter cela et l'étendre afin que nous puissions remplir notre case complète ici. Ensuite, nous abaissons notre bouton de recherche. Aussi petit que possible , peut-être que nous choisirons comme ça avec une boîte entre les deux. Si nous obtenons quelque chose comme ça, je pense que c'est bien pour ce que nous voulons faire ici. Au moins, à mon avis, je ne suis ni interface utilisateur ni expert, mais au moins tout est aligné sur la grille. Nous avons donc pris un bon départ. Maintenant, remarquez que mon bouton et ma ligne sont également à la même hauteur. C'est juste une autre chose qui va le rendre un peu plus cohérent et lui donner l'impression d'être plus beau que ce qu'il est Très bien, je vais donc les nommer, donc je vais appeler ça ma barre de recherche, et ce sera mon bouton de recherche, non ? Ça va prendre le dessus ici. Et y a-t-il autre chose à aborder dans ce livre ? Je vais passer en revue la recherche. Je crois que c'est tout, puis nous aurons nos résultats de recherche. Nous publierons les résultats de notre recherche dans une vidéo séparée. C'est bon. Voici donc notre recherche de base. Nous pouvons maintenant entrer et commencer à taper des choses. Nous en avons un. Attack on Titan est populaire, et nous pouvons appuyer sur notre bouton de recherche. Maintenant, évidemment, cela ne fait rien pour le moment. Mais tu as compris l'idée, non ? Maintenant, assurez-vous que cela soit beau. Nous savons donc où se trouve la ligne médiane. Un, deux, trois, quatre, comme ça, un, deux, trois, quatre, donc vous le remarquerez. Nous sommes à quatre pâtés de maisons vers la gauche et à quatre pâtés de maisons vers la droite, donc nous maintenons en quelque sorte cet équilibre dans l'imagerie également. Je pensais en avoir parlé aussi très rapidement. Nous sommes donc en train de nous développer à partir de la même taille, ce qui nous permet de rester relativement équilibrés. Et mis à part cet espace vide, nous sommes assez équilibrés visuellement des deux côtés. C'est bon. C'est tout pour la recherche. Dans la vidéo suivante, nous allons configurer la section pour afficher nos résultats. 69. Mise en page des résultats: Très bien, nous allons procéder à la configuration de notre zone de résultats de recherche Et je veux juste noter ici quelque chose après. Nous allons également avoir un bouton d'option ici. Et ce sera pour nos genres que nous aurons une sélection déroulante. Et je vais renommer mon bouton d'option genre Optas et vous remarquerez que je déplace simplement ma recherche, mon bouton vers la droite et une ligne un peu plus vers la gauche, et que je dois définir les ancres de mon bouton d' option ici Je crois que c'était centré. C'est comme ça. Maintenant, nous pouvons entrer, je peux le redimensionner et être bon. Tester. Maintenant, si nous le voulons, nous pouvons aller de l'avant et baser entièrement sur le sommet. Ce serait bien aussi. C'est bon. Allons-y donc et créons notre section des résultats. Donc, pour cela, je vais ajouter un conteneur de défilement ici. Et ce que cela va faire, c'est nous permettre ou nous permettre nous permettre ou nous permettre utiliser la molette de notre souris et d' avoir cette barre de défilement sur le côté, comme nous le voyons ici. Hein ? Et ce sera le cas chaque fois que nous aurons quelque chose à l'intérieur qui s'étend plus ou plus loin que la boîte que nous utilisons ici. Donc, pour nous, je pense que nous serons d'accord là-dessus, et ce sera trop pour nous. Là-bas. Maintenant, même cela, je pense que ce sera un peu trop pour les informations que nous allons avoir ici. Mais qui sait ? Peut-être que nous pouvons le faire fonctionner. Je vais donc renommer mon conteneur à parchemins en conteneur de sels Très bien, donc avec notre conteneur de défilement, nous pouvons voir que nous avons ce petit triangle ici. Et si nous devions passer notre souris dessus, cela nous indiquerait simplement qu'un conteneur de défilement est conçu pour fonctionner avec un seul contrôle enfant Ce serait comme une boîte en V ou une boîte en H, etc. Dans notre cas, nous allons utiliser un boîtier en V. Ce sera donc un conteneur vertical. Cela nous permettra de continuer à ajouter des éléments verticalement, et nous pourrons faire défiler la page directement vers le bas lorsque nous le dépasserons. Nous allons donc ajouter ce conteneur VBox ici Et nous ne pouvons vraiment rien faire à partir de là. Donc, ce que nous allons faire, c' est passer à une nouvelle scène. Je vais sélectionner un autre nœud ici afin de pouvoir créer un conteneur H box comme toit. Je vais créer deux blocs I et voyons voir, deux ou six. Nous allons juste faire six points de large pour le moment. Maintenant, tout dépendra de la façon dont vous voulez trier le vôtre, bien sûr. Maintenant, je vais m'aligner depuis le début, ce qui signifie que je vais commencer par la gauche et empiler les piles vers la droite. Si nous commençons par la fin, nos articles commenceront par la fin. Donc, une fois que j'aurai ajouté un rect de texture ici, je lui donnerai l'icône Goto par défaut Donc, vous voyez, en commençant par la fin, cela partira de ce côté. Commencez depuis le début. Je vais commencer par la gauche et par le centre. Je vais construire à partir du milieu. Très bien, donc je vais juste m'en servir pour recommencer depuis le début. De cette façon, notre image de notre anime sera toujours sur la gauche. Et ce sera une miniature d'anime, une image d' anime, une image d'anime Appelez ce résultat d'anime, je suppose, issu de mon conteneur. Et maintenant, je veux que je pense juste à côté de l'image. Je pense que nous voulons avoir le titre en haut, puis juste en dessous, tous nos genres. Donc, si nous allons de l'avant et le faisons, nous aurons évidemment besoin d'un boîtier en V parce que nous devons occuper un emplacement à l'intérieur de notre boîtier H, n'est-ce pas ? Sinon, vous pouvez entrer et nous pouvons ajouter du texte ici et ajouter une autre étiquette, elle sera juste à côté comme ça. Mais nous le voulons juste en dessous, non ? Nous voulons passer à la verticale. Donc, si je laisse cela, par exemple, et que j'ajoute la boîte, vous voyez que lorsque nous ajoutons ces deux étiquettes à l'intérieur de cette VBox, cela devient une pile verticale comme ça Hein ? C'est ce que nous allons faire. Mais nous allons régler l'alignement ici pour qu'il soit au centre. Et nous allons définir que le premier label sera le titre de l'anime. Le deuxième label sera, si je peux le renommer, Anime Genres. Et nous appellerons simplement ce conteneur Anime Info. Maintenant, je n'aime pas la proximité de cette zone, alors je vais monter dans ma boîte H ici. Et à l'intérieur de l'inspecteur, j'irai au Mvides Constance Cochez la case de séparation, et je peux ajouter une quantité personnalisée ici. 20 pixels. 30 pixels, qui sait, non ? Ce sera entièrement à vous d'y jeter un coup d'œil, de le tester et de voir à quoi vous ressemblez. Je vais juste le laisser sur 30 pour le moment. Et je vais enregistrer le résultat de ma scène Anime. C'est très bien Maintenant, lorsque je reviens à la scène principale de notre conteneur de résultats, cliquez sur le conteneur VBox Maintenant, quand j'arriverai, je peux instantanément résultat de mon anime et vous verrez si j'utilise Control D le dupliquer. Nous en avons tout un tas là-bas. Et lorsque nous l'exécutons, il ressemble à cela, et nous pouvons faire défiler tous nos résultats vers le bas grâce au conteneur de défilement. C'est bon. Maintenant, tout comme dans la huitième case, comment pouvons-nous y avoir une séparation personnalisée ? Nous pouvons également avoir une séparation personnalisée avec notre boîtier en V. Cependant, je ne veux pas y toucher avant avoir reçu nos vignettes et cela dedans, et peut-être que je reviendrai le modifier Mais avec cela, nous avons configuré notre écran de résultats. Tout ce que nous avons à faire est de simplement créer un résultat pour chaque résultat que nous avons et de renseigner ses informations. Donc pour l'instant, sélectionnez tous mes résultats ici, et je vais simplement les supprimer. OK. Et cela suffira pour cette portion. Ensuite, nous examinons faire une recherche afin de créer un certificat, nous pourrions également remplir nos ondas dans le suivant 70. Effectuer une recherche: Oh, mon garçon. Très bien, allons-y et jetons un œil à nos résultats Maintenant, pour les résultats, nous allons utiliser cette base de données d'anime. Si vous revenez en arrière et jetez un œil à la section API où nous parlons d'API rapide et de la façon de convertir un script Python en script GD, nous allons utiliser cette base C'est pourquoi je viens de copier le code de cette conférence. Vous ne l'avez donc pas fait, ou vous devez revenir en arrière et jeter un œil pour vous rappeler comment procéder ou pour voir de quelle base de données il s'agit, allez-y et faites-le. Prépare-toi. Je vais juste mettre un script sur mon nœud principal ici. R et je vais juste coller toutes mes variables. Nous avons donc nos en-têtes que nous avons examinés. Comment procéder à la configuration. J'ai mon URL de base ici, et j'ai mes trois accès ici, non ? Cela nous a permis d'obtenir. Je pense que cela nous permet d'en avoir quatre différents . Nous en avons deux, trois, désolée. Nous avons tout obtenu, obtenu les genres et le classement. Maintenant, je pense que nous n'aurons besoin que de tout obtenir pour cela plutôt que de choisir des genres. Mais qui sait, peut-être ? Peut-être que nous pouvons Oh, non, nous allons avoir besoin de nos genres pour remplir notre menu déroulant. Je pense donc que le classement est celui dont nous n'aurons pas besoin. Nous allons juste tout sélectionner et sélectionner les genres. Je vais me débarrasser de celui qui est le plus classé. Ensuite, nous avons le texte de notre barre de recherche ou de recherche ici, genre que nous allons rechercher, et EXT représente l'extension de l'image que nous allons obtenir . Voyons maintenant quoi d'autre aurons-nous besoin ici ? Nous avons besoin d'autre chose par défaut ? Je ne pense pas que nous ayons besoin de quoi que ce soit. Alors allons-y et je suppose que la première chose que nous allons faire est de choisir nos genres et de remplir notre bouton d'option. C'est ce que nous allons faire. Nous allons avoir besoin d' une requête HTTP. Je vais donc en ajouter un à la scène. Et je vais appeler cela ma demande de genre. Juste comme ça. Et en plus de cela, je vais aller avant et connecter mon signal pour cela, le signal terminé de la demande mon script principal ici, processus de suppression. Nous n'en avons pas besoin. Alors maintenant, dans notre fonction Writy ici, je peux continuer et je peux obtenir notre demande de genre, et nous pouvons faire cette requête HTTP, n'est-ce pas ? Et ce sera notre URL ainsi que nos genres et genres. Et nous pouvons transmettre nos en-têtes comme deuxième argument. Maintenant, lorsque nous récupérerons ces données, n'oubliez pas que nous devons les analyser Nous allons donc dire que nous allons créer une nouvelle variable appelée response Nous allons le définir comme étant le corps, chaîne de caractères de TFight et nous verrons ce qui se passe si nous imprimons simplement la réponse, et nous verrons ce que nous obtiendrons en retour OK. Nous pouvons donc voir tous ces petits dictaires individuels composés d'une seule valeur clé, et il semble que tous nos genres soient des valeurs du trait de soulignement clé OK ? Donc, dans notre réponse ici, nous devons réellement avoir ce Jsonifié correctement, car nous n'avons qu' une longue chaîne pour le moment le moment Nous pouvons donc appeler cela nos genres, si je peux épeler une chaîne JSON et la mettre à notre place, n'est-ce pas ? Aucune erreur n'est une bonne chose. Et maintenant, nous pouvons entrer et imprimer la réponse. Nous pouvons dire quatre genres et genres imprimés, et nous voulons nous souvenir de la touche de soulignement, du I minuscule, du D. Donc, si nous jouons ce jeu maintenant, nous devrions avoir Voilà, tout est imprimé pour nous, suspense d'action primé pour Etti Avant garde, sport, surnaturel, fantastique, gastronomique, drame, comédie Nous avons compris. Nous pouvons donc voir tous les genres ici maintenant. Fantastique Alors maintenant, nous devons les ajouter dans le menu d'options que nous avons, n'est-ce pas ? Ou des ventes aux enchères de genre. Nous les avons donc imprimés. Ce que nous devons faire, c'est les ajouter. Ils diront genre, vente aux enchères, nous devons vraiment nous en emparer Options de genre. À l'article. Et maintenant, nous allons ajouter cet identifiant de genre que nous sommes en train d'imprimer. Maintenant que nous y jouons, nous pouvons y jeter un œil, et voici tous nos objets. Maintenant, nous voyons que c'est un peu plus grand que ce qu'il était. Cela se heurte donc en quelque sorte à notre barre de recherche. Donc, dans ce cas, je devrais peut-être y jeter un œil et peut-être glisser dessus maintenant que je sais quelle est sa taille. Comment trouver un équilibre quelque part là-dedans ? Est-ce que ça a l'air ? Je pense que ça a l'air bien. Alors que nous sommes réellement impliqués dans notre projet ce moment. Allons-y. Nous avons maintenant toutes nos options ici. Jetez toujours un œil à toutes nos options. Fantastique Nous avons donc notre propre ensemble de genres, et nous sommes en mesure d'y taper ce que nous voulons. Maintenant, nous voulons avoir un nom souvent en haut. Je vais donc ajouter un article avant même de commencer. Donc, je suis prêt, et je vais juste régler ça sur. Non, j'aime bien ça. Et cela devrait être automatiquement sélectionné par défaut. Je ne me trompe pas ? Voilà. Et au lieu de rien, si vous le vouliez, vous pourriez choisir un genre si vous le vouliez. Le fait est que si nous l' avons sélectionné , nous n'allons introduire aucun genre, n'est-ce pas ? Il sera vide dans notre recherche. Mais nous y voilà. La partie par genre est remplie et nous sommes prêts à créer nos recherches. Et maintenant, nous avons besoin d'une recherche réelle pour obtenir toutes nos informations, n'est-ce pas ? Et vous pouvez voir ici que je reçois une page, mais ma taille est de 1 000 articles par page. Cela pourrait donc être largement suffisant pour remplir n'importe lequel d'entre eux. Nous allons donc utiliser get all dans notre prochaine requête ici. Allons-y et ajoutons une autre requête PTP ici. Et c'est ce que nous allons appeler ça la recherche d'anime. Et nous connecterons également ce signal de demande terminée. Et comme pour les deux premiers, nous allons analyser le corps, d' accord, récupérer la chaîne en UTFA et ensuite nous avons une variable, pas les genres, mais ces Et nous allons maintenant avoir une liste de tous nos animes. Donc, si nous devions les imprimer, et que nous y allions, je suppose que nous pouvons le faire hypothétiquement pour En fait, nous allons configurer notre bouton. Jusqu'à présent, notre bouton de recherche, lorsqu'il est enfoncé, connecte ce signal de presse. Et c'est là que se trouve notre requête Nous allons donc obtenir notre quête de recherche d' anime, et nous aurions l'URL plus G all et nous transmettrions le deuxième argument de notre en-tête Et avant cela, nous devons réellement remplir une partie de la cellule. Nos genres, s'il y en a, nous devons les renseigner. Vous les avez fait construire là-bas. OK. Nous allons donc dire de tout obtenir. Ensuite, je vais mettre entre parenthèses la variable or get all parce que c'est à l'intérieur d'ici nous allons ajouter des espaces réservés, Donc, un pourcentage, puis une paire de crochets. Et cela passe par la recherche du premier, de l' espace réservé et du ou des genres pour le second Très bien, alors allons-y, que devons-nous acheter ? Nous devons obtenir notre texte de recherche. Notre texte de recherche sera donc ce qui se trouve dans notre barre de recherche. Nous allons donc dire que la recherche est égale à notre barre de recherche, le texte. Ensuite, nous viderons notre barre de recherche. Ou en fait, nous n'en avons pas besoin dans ce cas, puisque nous effectuons une véritable recherche de recherche. Et nous allons vérifier si la recherche n'est pas égale à une chaîne vide. De cette façon, vous devez effectuer une recherche réelle, et de cette façon, nous obtenons des résultats quoi qu'il arrive. Peu importe si nous n'avons pas de genre. Cela n'a d'importance que si nous faisons une recherche. Nous n'avons pas encore défini les catégories de genre, mais allons-y et veillons à ce que nous puissions obtenir des résultats ici. Nous allons donc venir ici et nous allons dire bonjour à Titan Search. Et nous y voilà. Nous avons beaucoup d'informations, et comme vous le voyez, les sorties débordent, imprimez moins de texte Nous avons donc bien plus d'informations que ce que le résultat veut nous permettre, ce qui est parfaitement normal. Mais nous pouvons voir que l' important, c'est que nous pouvons obtenir toutes ces informations grâce à notre recherche afin de savoir que notre recherche fonctionne au moins. C'est bon. Alors, qu' en est-il de nos options ici ? Eh bien, pour les options de genre, nous sélectionnons notre menu d'options. Nous allons connecter l'élément de signal sélectionné. Connectez cela à notre script principal ici. Et nous allons créer une variable temporaire ici. Et nous allons appeler ce genre « texte », puis «   options de genre », notre barre d'options. Pourtant, le texte de l'élément, et nous transmettons l'index qui est automatiquement transmis notre fonction avec notre signal, n'est-ce pas ? Nous obtenons donc notre index. Lorsque nous cliquons sur quelque chose dans notre barre déroulante, nous obtenons le texte de cet élément, qui sera défini sur notre texte de genre ici. Et maintenant, nous allons dire, en termes simples, que nous pouvons simplement utiliser une allumette ici si nous le voulons. Dites « correspondre au genre de texte ». Et si cela correspond à ce que nous avons présenté, que nous utilisons, sélectionnez le genre. Maintenant, si vous n'en utilisez aucune, vous n'en mettrez aucune dedans. S'il correspond à cela, les genres sont égaux à une chaîne vide. Et nous utiliserons ce trait de soulignement comme un joker. Donc, s'il ne s'agit pas de sélectionner des genres, nous dirons simplement que les genres sont égaux au texte du genre. C'est vrai. Maintenant, si nous voulons tester cela, nous pouvons continuer et revenir en arrière et simplement imprimer les genres chaque fois que nous sélectionnons une nouvelle option. Nous verrons donc une baisse de notre production chaque fois que nous sélectionnerons quelque chose, sport, comédie. Nous voyons donc que tout fonctionne bien. Et si nous sélectionnons le genre ici en haut, rien n'est imprimé car il s'agit d'une chaîne vide. Alors voilà. Nos genres fonctionnent, et nous avons notre texte de recherche. Maintenant, la dernière chose à faire lorsque nous obtenons notre résultat est savoir combien de résultats nous avons. Et sur cette base, nous pouvons ajouter nos éléments de résultat, n'est-ce pas ? Donc, si nous venons ici, nous effectuons une recherche ici. En fait, je veux que cela soit un peu plus agréable à regarder Je vais donc utiliser les animes Spring Pi au format JSON. De cette façon, il serait un peu plus facile de savoir ce que nous cherchons. Je vais refaire Attack on Titan, faire une recherche, et oui, je ne vais pas l'imprimer. Allons-y. Très bien, donc je fais appel à Titan pour avoir une meilleure idée de ce que nous voyons ici Ce n'est pas ainsi que je voulais que nous atteignions le sommet. Nous voyons donc que tout va se trouver dans les données. OK. Nous allons donc imprimer des animes et entrer dans la section des données Et nous allons vérifier cela. De retour sur Titan, lancez une recherche. Et non valide get index the. OK ? Qu'est-ce que j'ai fait de mal ici ? Pense juste, oh, ça ne nous donnera rien. Cela nous a en fait apporté certaines choses. C'est intéressant. Oh, c'est un D minuscule, c'est pourquoi. J'ai eu un problème de capitalisation du capital. Passons aux données. Formez la recherche, jetez un œil. Et je vais juste faire défiler la page jusqu'en haut. OK. Alors maintenant, nous avons tout cela. Donc, pour chaque résultat contenu dans les données, nous pouvons créer quelque chose de nouveau, n'est-ce pas ? Nous pouvons donc dire que nous pourrions à nouveau définir nos animes, donc nous dirons que les animes sont égaux aux données des animes De cette façon, il ne contient plus que les données au lieu d'avoir à passer par cette clé supplémentaire sans raison. Maintenant, nous pouvons continuer et vérifier. On peut dire quatre anime et animes. Anim va écrire ici pendant une seconde, nous n'avons pas d'instance ou nous n'avons rien chargé à partir duquel créer une instance Je vais donc dire que le résultat de la barre est égal au résultat de l'anime ici. Et nous allons charger ce G. Et revenir aux anime et aux animes. Nous allons faire RI for result instance result, instanciate Oh, parce que nous sommes en train de le faire adopter là-dedans. C'est bon. Alors disons le résultat de l'anime. Oui, loin de là parce qu' il y a une confusion ici. Il essaie de le récupérer à partir de la fonction ici, donc il pense qu'il s'agit plutôt d'un entier. Allons-y et appelons ce changement ce point de résultat d'anime instanciation C'est bon. Nous allons maintenant obtenir une VBox qui se trouve à l'intérieur de notre conteneur de résultats Et un enfant. Et nous sommes au RI, non ? Alors maintenant, si nous lançons ceci et que nous effectuons une recherche qui devrait compléter complètement notre recherche sur Attack on Titan. Allons-y. Et regardez le nombre de résultats de recherche que nous avons pour Attack on Titan. C'est ici, une recherche dans un lycée. Et nous avons bien plus encore. Donc, ce que nous devons faire, c'est clarifier cela, car même si vous ne pouviez pas le voir, nos résultats s' empilent les uns sur les autres, ajoutant nos nouveaux résultats aux anciens. Donc, avant de les rechercher, nous devons accéder à notre conteneur VBox Et voyons voir. Avons-nous un accord clair ou quoi que ce soit d'autre ? Je ne vois aucun moyen de simplement l'effacer, afin que nous puissions également suivre une autre boucle avant de nous lancer là-dedans. Nous pouvons donc faire une boucle while ou for. Alors, que voulons-nous dire alors que le conteneur R VBox est pointé sur Children Est-ce que cela va nous donner un entier en retour ? Les parents dans un éventail de références. OK, on va y arriver. Nous voulons donc compter le nombre d'enfants. Le nombre de Wilchild est donc supérieur à zéro. Nous allons obtenir notre conteneur VBox, et pourtant l'indice Child est zéro , même si nous avons un enfant qui aura toujours un indice de zéro Nous allons donc supprimer constamment le meilleur enfant jusqu'à ce qu'il ne nous reste plus rien. Mettez-y une petite entretoise. Maintenant, vous voyez si nous entrons, tapez Piton Search, nous avons rempli le L. Et si nous devions regarder le conteneur Rsults distant ou VBox, nous les avons tous ici Donc, pour ce qui est du moment, ce que nous allons faire lorsque nous effectuerons une autre recherche, nous allons récupérer la première recherche, la supprimer. Ça va vérifier. Oui, nous avons toujours au moins un enfant ici. Prenez le suivant, qui sera déplacé ici, supprimez-le, etc. Si j'entre maintenant et si vous gardez un œil sur le côté, si vous vous souvenez à quel point c'est devenu petit, vous entrez, faites la même recherche, celle lycée, et nous verrons que cela n'a pas beaucoup diminué lorsque nous l'avons fait Cependant, il faudra un peu pour les parcourir et les supprimer toutes, ce qui pose un petit problème. Il pourrait donc être plus facile de supprimer complètement la VBox dans son intégralité OK, essayons donc de supprimer l'intégralité de la VBox et d'en créer une nouvelle quand nous en avons besoin Nous allons donc dire que nous allons obtenir notre conteneur VBox u three Ensuite, nous en ajouterons un autre. S V NubX est égal à un conteneur VBox, NuGet à notre conteneur de résultats, ajoutez un enfant Neubox, n' est-ce pas ? Nous allons donc voir comment cela fonctionne maintenant. Cela devrait, espérons-le, être beaucoup plus rapide, étant donné que nous n'avons pas atteint potentiellement 1 000 résultats pour le moment. Donc pareil, Attack Titan Search. D'accord. Nous avions une option à valeur nulle, alors nous entrons et disons ce qui s'est passé ici. Conteneur des résultats, et nous dirons simplement « get child child zero BRVBx Très bien, essayons ça. Très bien, nous résolvons donc le problème en modifiant plutôt que d'obtenir directement la VBox, car elle change constamment et porte un nom différent Bien sûr, nous aurions pu simplement l'appeler notre nouvelle boîte ici, et cela aurait probablement également résolu le problème. Mais au lieu de cela, nous allons simplement le changer en yet Child Zero. Et c'est ce que nous faisons aussi ici quand nous n'avons pas de temps libre. Et comme il semble que nous essayions faire les deux choses en même temps, supprimer et ajouter, j'ai simplement appelé et j'ai attendu 0,1 seconde, ce qui est très bien. C'est un dixième de seconde. Ça ne va pas te tuer. Donc, si nous le lançons maintenant, nous pouvons lancer une attaque contre Titan Search. Donne-lui une seconde. Voilà. Nous voyons la taille de notre bar sur le côté. Lorsque nous tapons au lycée ou dans n'importe quel anime qui apparaît avec ça, et que nous effectuons une recherche, nous remarquons que la barre devient plus petite parce qu' il y aura plus de résultats Et nous remarquons que le tout va juste clignoter, ce qui est complètement effacé. Voilà. Et vous voyez, nous avons une petite aubaine. Ensuite, pour vous montrer que cela ne donne pas de résultats cumulables, nous pouvons revenir à cette attaque Maintenant , nous devrions obtenir notre plus grosse offre. Voilà. Très bien, dans la vidéo suivante, nous allons continuer et voyons voir Vignette Nous allons créer nos miniatures et Donc les titres et les genres. Nous compléterons ces informations ensuite. 71. Vignettes, titres, genres: Très bien, allons-y et remplissons ces vignettes, titres et genres ici Il suffit de l' espacer un peu, pour rendre les choses un peu plus agréables à voir ici Va. D'accord ? Donc, cela fera évidemment partie de notre anime ici. Nous allons donc ajouter que c'est bon. Et voyons voir. Nous devons obtenir notre . Allons-y et commençons par examiner notre résultat. Tu vois, nous devons passer à l' animation Info, puis au titre de l'anime Nous allons donc dire RI et nous pouvons dire get child, get node. Bien. Nous allons simplement utiliser get node ici. Et à partir de là, nous pouvons voir que nous descendons pour animer Info. Dans mon étui, et puis à l'intérieur, nous pouvons obtenir le texte du titre de l'anime. Et nous pouvons le mettre en anime. Je pense que c'est ce qu'on appelle le titre dans nos résultats. Découvrez-le très rapidement, en testant simplement notre scène principale et en effectuant une recherche sur Titan, recherchez Et ce n'est pas une fonction inexistante, elle est annulée. Je me trompe, Typo, très bien, alors maintenant nous avons tous nos titres configurés La question qui se pose maintenant est où se situent ces genres. Et honnêtement, je sais pas du fond de ma tête. Mais ce que je vais faire, c'est imprimer du JSON, des stringify, des animes et obtenir J'aimerais que cela soit plus facile à regarder. Je vais donc ajouter un espace ici comme deuxième résultat à la chaîne de Pi, et je vais simplement l'exécuter à nouveau. Et ça va être beaucoup plus propre à regarder ici. Synopsis du classement des statuts. Vraiment, le genre n'est rien. Il n'en a aucune. C'est très intéressant. Oui, on dirait que ça s'appelle simplement genres. C'est un peu comme le titre. Nous allons obtenir notre nœud et obtenir sa propriété de texte. Et celui-ci s'appelait genres d'anime. Et c'est équivalent aux genres d'anime ? Oui C'est bon. Donc, si nous y jetons un coup d'œil maintenant, voyons le tag sur Titan SERT. Et non Invalide ? Ouais. Oh, parce qu'il a obtenu un tableau en conséquence. OK, il va donc falloir en faire une chaîne. Jetons un coup d'œil. Donc, si nous allons dans l'aide à la recherche et que nous allons dans Array, nous y jetons un œil ? Voyons voir. Le tableau comporte-t-il deux chaînes ? Je ne crois pas. Non, ça n'en a pas l'air. Donc c'est bon. Nous pouvons simplement le convertir en chaîne, ajouter STR et l'envelopper avec une paire de parenthèses, comme ceci Cependant, je pense que nous n'allons pas obtenir le résultat souhaité ici. Donc, si nous poursuivons et terminons cette recherche, vous verrez que nous avons ces crochets et que cela reste impliqué. Donc, ce que nous devrions plutôt faire, c'est faire une boucle ici. Je dirais quatre genres dans les genres d'anime. Donc, disons que le texte plus est égal genre, plus je vais mettre une virgule avec l'espace. Tu sais quoi ? Je pense que nous allons le faire séparément pour éviter tout problème. Nous allons donc avoir deux lignes ici. Donc, si nous avons plus de genres, nous ajouterons une virgule avec un espace, puis nous ajouterons le genre De cette façon, nous ne nous retrouvons pas avec une virgule à la toute fin de notre liste Maintenant, nous n'ajoutons des genres lorsque nous avons des genres à ajouter. Notre premier résultat ne sera donc pas simplement une paire de crochets. Il va être vide. Oh, eh bien, dans ce cas, ce sera complètement notre truc par défaut, mais nous pouvons voir un drame d'action, un film d' action primé, de la batterie, du suspense, de la batterie d'action, du suspense Beaucoup de drames d'action. Certains d'entre eux, allons-y. Comédie d'aventure fantastique. Notre taxe par défaut doit être supprimée de là. Je vais tellement bien. Nous pouvons juste clarifier cela ici, non ? Ou nous pouvons simplement aller de l'avant et clarifier les choses ici. Dans les deux cas, c'est parfaitement bien. Et je pense que je vais juste effacer le mien ici. Pas de problème Donc, si nous le gérons maintenant, nous devrions être prêts à partir. Et voilà bien que nous ayons le com au début, c'est un peu dommage. Ça devrait être une solution facile. Je devrais être une solution rapide. Pas de problème Une fois qu'on en aura fini avec tout ça, je devrais pouvoir appeler Oups En fait, oui, texte à points. C'est bon. Nous en avons donc simplement supprimé le préfixe. Donc, en dehors de notre boucle avant, lorsque nous avons terminé, nous avons saisi la propriété de notre texte et nous l'avons définie comme étant égale au texte figurant sur notre stèle de genre Et nous appelons le préfixe trim, et nous réduisons simplement cet espace de virgule C'est bon. Alors voilà. Cela devrait complètement régler ce problème. Donc, si nous procédons à une recherche maintenant, nous intensifierons la recherche. Allons-y. Nous voyons tout ce que Justin devrait voir apparaître. C'est génial. Maintenant, nous devons regarder notre image. Comment obtenir cette image pour chacune de nos affaires ? Eh bien, nous allons avoir besoin d'un autre HTTP ici. Et nous allons appeler cela une quête d'images. Et vous l'avez deviné, nous allons connecter le signal de fin de la demande à notre script principal ici Et je vais passer à autre chose. Et je pense que je vais le mettre ici avec le reste de nos affaires et les espacer. D'accord. Alors maintenant, lorsque nous l'obtenons, nous avons ce que nous aurions sous forme d'images ici. Nous devrions donc effectuer notre recherche ici. Nous en recevons beaucoup. Donc, dans notre demande de recherche d'anime, au-dessus de notre boucle for, nous voulons le faire ci-dessus. Voyons voir. Faisons-le ici. Une fois que nous aurons les données de nos anime, nous ferons notre demande. Ils diront image, point de quête. Quête. Et nous allons placer notre URL, qui sera des animes. Et je crois que ça s'appelle simplement Image Et pour vérifier cela, nous pouvons continuer et nous allons simplement imprimer Gotcha, bien sûr Et nous n'avons pas besoin de notre information sur les cinq JC, nous pouvons la vérifier ici avant de commencer à l'imprimer Oui, l'image est exactement ce dont nous avons besoin. Parfait. Tu vois, maintenant on fait une recherche. Oh, Get Image on Base array non valide. C'est une petite ville, non ? Comment ça se passe sur une matrice Bs ? Voyons voir. Très bien, nous allons donc demander une image d'anime. Et puis à l'intérieur de notre boucle avant. Non, c'est ici que nous recevons notre demande. Nous pouvons le faire, créer notre technologie, enregistrer une nouvelle image. Et nous pouvons faire correspondre ici en fonction du type d'extension dont il s'agit. Nous allons donc associer EXT à l'extension. Est-ce que cela va nous débarrasser de notre erreur pour le moment ? OK. Nous devrons donc obtenir notre extension ici avant de pouvoir faire quoi que ce soit. Alors disons, XT juste avant que nous obtenions notre résultat. EXT est égal à l'image de l'anime. Pourtant, extension. Et cela va nous donner la fin de l'URL, cela va nous donner les formats PNG, JPEG, Web P, TGA Et de cette façon, lorsque nous associons l'extension, nous pouvons faire correspondre EG. Nous pouvons faire correspondre le JPEG ou le JPEG. Nous pouvons correspondre au Web P ou au TGA Et comme d'habitude, rien de tout cela ne correspond Nous allons ajouter un joker et simplement imprimer les systèmes en disant « Impossible d'imager Et dans le cadre de tout cela, nous allons aller de l'avant. Nous allons faire l'image, charger, et nous allons charger depuis la mémoire tampon, donc chargez E et G depuis la mémoire tampon. Et ce sera notre corps. C'est notre corps, et nous faisons la même chose chez Ali, juste des types différents. Chargez depuis JPEG depuis la mémoire tampon, chargez P depuis la mémoire tampon et chargez TGA depuis la mémoire tampon C'est bon. Cela va donc nous donner notre image. Nous pouvons aller de l'avant et ensuite je veux faire Du. C'est bon. Nous allons donc aller de l'avant et obtenir une nouvelle variable, texture Image, texture new. Nous faisons une image à points de texture. Et nous passons What do you Oh, parce que nous sommes toujours à l'intérieur de la batterie. Ce shift et cet onglet. Ouais. Donc, définissez l'image, et ce que nous allons y définir sera notre image variable. Ensuite, nous allons nous redonner de la texture. De cette façon, nous pouvons l'utiliser ailleurs, ce qui signifie que lorsque nous faisons notre demande ici, exemple, notre miniature est égale à la valeur renvoyée par notre demande Je sais épeler correctement. ce moment, à l'intérieur d' ici, bien sûr , avant de terminer, nous En ce moment, à l'intérieur d' ici, bien sûr, avant de terminer, nous devons obtenir notre miniature, qui est notre image d'anime Dot get node, Anime. Allons-nous ajouter Manfo ? Non Nous ne le faisons pas. C'est bon. Alors, quels trucs. Voici une image d' anime avec API, je crois. Image d'anime. Fais. La texture est égale à la texture. En fait, miniature. Comment ça se passe ici ? D'accord, et il semblerait que je signale un vide ici, donc nous devons finir de le réparer. Peut-être revenir dans la texture de l'image. Et ce n'est que si vous avez les flèches pointées, n'est-ce pas ? Donc, si vous avez ces flèches pointant vers void, indiquant que votre requête HTTP renvoie void pour la demande d'image, vous devez vous y rendre et la remplacer par une texture d'image. Nous le pointons parce que c'est là vous vous tournez ici, vers la fin. Et je voudrais vous montrer que cela fonctionne maintenant, mais j'utilise en fait toutes mes demandes par jour. Je vais donc devoir le mettre en pause et soit le mettre juste à la fin de cette vidéo soit y revenir la prochaine fois et vous montrer que cela fonctionne. Je suppose que cela suffira pour le moment puisque je n'ai plus de demandes EPI J'ai atteint ma limite quotidienne. C'est ce que je vais faire ici et je vous verrai dans la section suivante. D'accord, je n'ai donc pas eu besoin de faire un petit changement. J'ai déplacé les informations que nous avions en haut de notre demande de recherche Animate pour terminer Je les ai, j'ai déplacé ces trois lignes vers le bas et les ai ajoutées en attendant. Nous attribuons donc notre extension juste après la boucle à quatre pour, bien sûr, animate, puis image dote, afin de savoir de quel type d'image il s'agit Nous recevons ensuite notre demande d'image et exécutons la demande d'URL, n'est-ce pas ? Image d'anime. Et nous devrions probablement également y inclure nos en-têtes . Nous attendons ensuite. Et cette fois par le passé, nous avons toujours créé un chronomètre pour attendre un certain temps. Cette fois, nous utilisons un signal d'attente pour attendre notre demande d'image, demande terminée. Nous attendons donc d'avoir déjà obtenu les informations dont nous avons besoin. Ensuite, nous réglons la texture de notre image d'anime sur notre texture variable, et c'est là que j'ai apporté un léger ajustement J'ai changé la texture pour qu'elle soit simplement une variable globale ici. Eh bien, mondial sous la forme d'être au sommet de notre script. Et si je fais défiler l'écran vers le bas, où est-il ici, je continue et nous faisons la même chose ici. Nous ne renvoyons tout simplement pas de texture. Je viens de créer une texture en tant que variable extérieure, ce qui signifie que j'ai dû revenir ici et coller une texture manquante vers le vide. Maintenant, la raison pour laquelle je l'ai fait est que pour une raison ou une autre, cela revenait sous forme d'entier plutôt que de données. Je l'ai donc simplement changé cette façon pour que nous définissions les données ici, ici, mais la variable existe en dehors de cette fonction. C'est pourquoi nous n'avons pas à y retourner. Et aussi pour éviter les problèmes, je pose vraiment des problèmes, mais l'API est limitée ici. Je suis allée de l'avant et j'ai réduit ma taille à trois, de sorte que je n' obtiens que trois résultats, car nous faisons un appel d'API pour chaque résultat que nous obtenons, n'est-ce pas ? Ou ce n'est pas vraiment un appel d'API, mais nous faisons un appel UR, c'est pourquoi nous n'avons pas besoin des en-têtes ici. À quoi est-ce que je pense ? Pas pour l'image ? Donc, si vous vouliez garder ce chiffre plus élevé, vous le pourriez. Ça ne va faire de mal à rien. C'est juste trois, ça va être beaucoup plus rapide. Si nous adoptons la valeur par défaut, qui est 100, et que nous ouvrons celle qui est déjà capturée, nous disons déjà Attack on Titan, ancien SERT. C'est ce que nous devrions examiner ici. Et nous voyons que nous avons notre nom, que nous avons notre anime et que nous avons tous nos genres en dessous. Hein ? Alors voilà. Blabla, bla, Sam, et on SERT, boum. Allons-y. Nous voyons que tout fonctionne parfaitement bien. Et si vous le vouliez, si vous en faisiez 1 000, comme ce que j'ai fait là-haut, cela prendra juste un peu plus de temps. Je ne sais pas pourquoi j'ai pensé que j'allais utiliser mes appels d'API supplémentaires là-bas, mais j'imagine que j'ai légèrement perdu la tête. Nous pouvons entrer et vous pouvez voir que nous arrivons où, je pense, le lycée a obtenu encore plus de résultats, n'est-ce pas ? On entre, on y va comme ça, et tu peux voir, regarder ce bar. Continuez tout petit, continuez, continuez parce que nous devons récupérer toutes ces images, et ça s'est finalement arrêté. Et vous pouvez voir que nous avons toutes les images, toutes celles-ci. Rien ne manque. Mais voilà. Donc ça marche. Nous avons simplement dû déplacer notre variable de texture pour qu'elle se trouve en haut de notre script au lieu de la renvoyer. Et je peux décommenter ceux que nous pouvons choisir dans nos genres maintenant. Et en gros, nous avons déplacé notre demande d'extension et d'image vers le bas après notre Ce sont les seules modifications que j'y ai apportées, n'est-ce pas ? Avant de passer à autre chose et d'en ajouter trop parce que je pense que je vais juste l'ajouter à la vidéo précédente. C'est bon, voilà. Cela fonctionne donc parfaitement bien. Ensuite, nous verrons comment ouvrir notre page avec le synopsis de l' histoire et toutes les autres informations comme le lien externe et tout ça 72. AnimePage: C'est bon. Allons-y et montrons notre panneau qui va apparaître avec les détails de notre émission, tels que notre synopsis, et nous aurons une vue claire de notre miniature Et si nous le voulons, nous pouvons également y mettre le titre et les tags si nous le voulons. Maintenant, ce que j'ai fait, c'est que je suis passé à mes résultats, et j'ai juste ajouté un bouton indiquant Afficher. Maintenant, vous pouvez procéder de différentes manières, mais j'en ai juste une qui dit « point de vue ». Et sur ma scène principale, j'ai ajouté une fenêtre. J'ai juste un texto directement à l'intérieur. Et notez que vous ne pouvez pas déplacer la fenêtre elle-même car vous ne pouvez pas la saisir Vous devrez donc entrer dans l'inspecteur, passer à la mise en page et transformer. Il est là, à la fenêtre et à la position. Et puis, lorsque vous voulez déplacer les éléments intérieurs qui en sont les enfants, comme ma miniature, qui n'est qu'une texture, n'est-ce pas Je dois passer à la mise en page Transform et jouer avec mes chiffres ici pour faire bouger les choses. Par exemple, pour la position ici, si je veux la déplacer, je dois procéder comme ça pour la placer. Mais je garde à l'esprit que c' est sur le côté gauche de ma miniature Je vais également ajouter une étiquette, et ce sera la fin d'un titre pour moi. Je vais mettre quelques mots ici juste pour avoir une idée de l'endroit où cette étiquette est placée. Je vais passer à Layout Transform, et je trouverai un bon endroit pour le positionner, disons : Et si on passait à 300 ? C'est peut-être un peu trop excessif, 203 20. Oh, c'est vrai. Nous sommes au centre. J'y crois. Voyons voir. Je l'ai fixé à 200, ce qui serait bien plus haut, en fait. C'est intéressant. Je voudrais donc peut-être le sauvegarder un peu plus, en baisser 50. Très bien, je vais choisir 160 et peut-être le baisser de dix. Je peux donc l' éloigner du bord. Ce sera donc notre titre. Et je vais continuer et le dupliquer juste avec Anime Title Selectic D. Appelez ça nos tags d' anime, non ? Et c'est là que nous allons avoir du drame, l'action, de la fantasy, etc. Cela va donc être faible. Notre titre. Alors venez ici, mettez en page, transformez, et nous abaisserons RY à 30, 30 pourrait être à peu près juste. Peut-être 40. Juste pour clarifier un peu les choses. Et maintenant nous avons besoin de quelque chose pour le texte. Alors, que voulons-nous y mettre ? Nous pourrions faire en sorte que l' étiquette soit un peu verbeuse. Nous pourrions créer une étiquette en texte enrichi. Eh bien, je pense que c'est ce que nous allons faire. J'avais une étiquette écrite, comme vous le voyez ici, à côté. Maintenant, l'inconvénient, c'est que nous ne pouvons vraiment rien voir. Je vais juste y mettre un tas de texte juste pour que nous puissions avoir une bonne idée de notre taille, pour simplement envoyer du spam, passer à notre mise en page, transformer. Taille. Ça fait 100. Je pense que 300, c'est probablement une bonne chose là-bas. Peut-être 400 là-bas. Et voyons voir ce poste. Maintenant, où est-ce que je vais le vouloir exactement ? Le voulons-nous directement ci-dessous. C'est peut-être la meilleure option pour cela. Dans ce cas, quels sont les X pour ceux-ci ? 179. Avez-vous des oups C'est la taille. Position W 160. Ensuite, je vais le réduire d'environ 100, et voici notre histoire. Où se trouve un synopsis. Nous dirons donc un synopsis d'anime Très bien, voilà à quoi ressemblera ma fenêtre. Il se peut que je doive ajuster cela après avoir vu la miniature être insérée Mais pour le moment, je vais m'en contenter. Et je vais revenir au résultat de mon anime. Je vais ajouter un script au résultat de mon anime, et je vais connecter le signal pressé. Je vais le reconnecter ici. Déconnectez, reconnectez-le. C'est bon. Et nous allons avoir besoin de quelques éléments personnalisés en haut de la page. Nous allons donc avoir un signal personnalisé ici et il va afficher les détails. Et nous allons avoir ici une variable personnalisée appelée synopsis, qui sera juste une chaîne Et nous aurons notre fonction prête ici. Et une fois que nous serons prêts à charger cet objet dans notre scène, nous allons le connecter avec notre signal personnalisé à notre nœud principal ici avec son script dessus. Nous allons donc faire une connexion automatique par points, afficher les détails appelables et nous rappeler que le premier argument est celui auquel vous voulez le connecter. Nous voulons donc placer trois parents en haut, dire get node, Nous voulons donc placer trois parents en haut dire get node et faire point point slash point point point slash point point slash point point slash point point slash point point slash point point slash Cela nous permettra d' élever trois parents. Et le deuxième argument sera le nom de la fonction. Je vais donc l'appeler Show Window. Et je le place à l'intérieur du nœud G plutôt qu'à l'extérieur. Allons-y. Et je vais continuer et créer cette fonction avant oublier dans la fenêtre d'affichage de mon script principal. Maintenant, lorsque nous appuyons sur notre bouton, nous allons émettre le signal, émettre notre signal personnalisé, afficher les détails. Et nous allons faire une virgule parce que nous allons transmettre des détails supplémentaires ou informations supplémentaires, n'est-ce pas Nous allons donc passer une texture, je vais donc créer un nouveau tri de variables. Donc, miniature, ça va égaler la texture de notre image d'anime Ce sera donc la miniature cet objet spécifique Et nous prenons cette texture et nous allons l'envoyer avec nos signaux. Nous allons envoyer ces données, et nous devrons également envoyer notre synopsis Notre titre et nos genres. Cela représente beaucoup d' informations ici. Et il va falloir le faire aussi. Alors voyons voir. En bas, voyons si notre titre est égal à. Et cela se trouve dans le titre de l' anime ici. Titre de l'anime. Et c'est tout ce que nous avons déjà défini comme texte. Et cela va nous dire que les genres ne sont pas définis. Les genres sont égaux au texte des genres d'anime. Et le synopsis est déjà défini en haut. Génial C'est bon. Nous envoyons donc maintenant toutes nos informations. Maintenant, je vais juste copier tous ces arguments pour les mettre dans le bon ordre. Retournez à mon script principal, ma fonction d'affichage de fenêtre, et je vais y coller mes arguments. Donc, ce que nous allons faire avec ça, c'est , tout d'abord, nous devons réellement montrer notre fenêtre. Je vais donc placer ma fenêtre là-bas, et je vais appeler Pop up Centered pour qu'il apparaisse directement sur l'écran central. Je vais ensuite obtenir ma miniature ici, la texture détruite à l' intérieur de la fenêtre et définir sa texture sur miniature, les données Nous devons définir le titre de l'anime. Le texte du titre de l'anime est égal au titre, les livres d' anime, les tags, le texte est égal aux genres, puis nous avons besoin d'un synopsis Les synopsis de l'anime le font. Texte. Ajoutez du texte avec une étiquette de texte enrichi, ajoutez du texte et un synopsis Pour le moment, nous n'avons transmis aucun synopsis à nos objets Nous allons donc devoir y jeter un œil et voir comment cela est structuré. Je vais donc décommenter mon fichier Stringify JCN ici. De cette façon, je pourrai voir quel est le titre du synopsis Je suis sûr que ça s'appelle juste synopsis, mais je veux m'en assurer Je vais juste procéder , exécuter ceci et effectuer une recherche. Ils attaquent à nouveau Titan. Et oui, oui, oui, c'est bon. Cela n'a pas besoin d'être là. Vous ne devriez pas avoir ça là-dedans. J'ai oublié de le supprimer tout à l'heure. Mais nous avons obtenu le résultat, et c'est la principale chose que je recherchais. Et oui, ça s' appelle simplement des synops. C'est bon. Alors voyons voir. Lorsque nous saisissons un texte dans l'extension et dans la miniature, nous définissons nos genres Nous définissons la texture, nous définissons le texte. Et juste avant de l'ajouter, d'ajouter notre objet, droite, notre instance de résultat, nous allons continuer et nous devons définir le synopsis Donc je ne parle pas de Synopsis. Bien sûr, je l'ai bien orthographié. Oui, oui, toutes les minuscules sont égales au synopsis de l'anime. D'accord. Je vais y aller et recommencer. Disons Attack on Titan Search. Je vais passer par là. Nous n'avons aucun problème. Fantastique Maintenant, notre point de vue est un peu partout, ce qui est un peu dommage. Mais je suis sûr que nous pouvons résoudre ce problème simplement en réglant manuellement la taille. Mais je vais continuer et cliquer simplement sur Afficher, nous devrions donc obtenir cette miniature Eh bien, prenons-en un avec deux tags et deux genres. Et comme vous pouvez le voir, je dois tout déplacer vers la droite. Et c'est à cela que servent ces tests, non ? Voyons donc l'inspecteur des titres, donc je vais juste le laisser fonctionner ici. Et essayons que 2025250 soit plus beau. Et je vais faire la même chose avec nos tags, 250, et notre synopsis 250, non Tout a donc été modifié. Et voyons voir, nous pouvons faire défiler notre synopsis vers le bas si nécessaire C'est bon. Le régl. Nous avons cette configuration. Maintenant, nous ne pouvons pas vraiment fermer notre fenêtre, nous devons donc réparer cela nous-mêmes ici. Nous allons donc aller de l'avant et clôturer cela. Et pour cela, nous allons devoir aller à notre fenêtre et connecter le signal fermé demandé. Nous allons nous connecter à notre réseau principal, et je vais juste passer à la vitesse supérieure. Va. Ainsi, lorsque nous recevons une demande de fermeture, c'est chaque fois que nous cliquons sur le X dans le coin. Tout ce que nous allons faire, c'est cacher la fenêtre. Nous allons donc ouvrir notre fenêtre, et nous allons simplement appeler Hide. C'est aussi simple que ça. Et voyons voir. Que pouvons-nous faire à propos de notre boîte ici ? Eh bien, nous pourrions l'élargir. Qu'en est-il de notre titre d'anime ? Je pense que nous pouvons simplement le configurer pour qu'il clique. C'est bon. Maintenant, quels sont spécifiquement ces modes d'encapsulation automatique ? Comme ce n'était pas de la force des herbes, disons qu'il enroule le texte de manière arbitraire dans le rectangle qui délimite le nez, laissant place à des lignes de rupture. D'accord, celui-là sonne bien. Rupture douce, non. Très bien, je vais donc utiliser Word Smart Oh. Peut-être que nous ne l'utiliserons pas. Cela l'a complètement détruit là-bas. Arbitraire. Un mot peut aller avec un mot, mais ça ne va tout simplement pas là. Donc, d'accord, ce que je vais faire, c'est appuyer sur Clip Text. Je n'aime pas le fait que cela soit un peu réduit à une seule taille. Tu n'es pas comme ça. Alors, que pouvons-nous faire ici ? Donc, ce que je vais faire pour résoudre ce problème, je veux juste que mon bouton se trouve dans ma boîte d'information animée ici De cette façon, cela correspond juste à notre genre de titre puis à notre bouton. Et j'ai réglé mon bouton sur Je ne suis pas un bouton. J'ai mis ma boîte d'information sur l'anime ici. Je règle l'horizontale pour qu'elle se remplisse et je la tourne pour la développer. Et maintenant, ce que je vais faire, c'est définir le titre de l'anime, l' alignement horizontal au centre et le centre vertical. Et je vais faire la même chose avec les genres ici, au centre. Ensuite, pour le texte du bouton, le texte du bouton doit être centré, mais cela devrait être une bonne chose. Alors allons-y, ouvrons-le, voyons à quoi cela ressemble maintenant. Disons que l'attaque de Piton est d' accord, alors c'est parti. Il s'étend donc sur toute la longueur. Oh, celui-là est allé un peu trop loin. Mais c'est peut-être un problème pour moi. Ça pourrait provoquer quelque chose en déconnant. C'était peut-être ça là-bas. Essayons encore une fois et assurons-nous que c' juste quelque chose que j'ai laissé dans Okay, donc ça s'étend sur toute la longueur parce que nous avons un titre ou quelque chose qui nous attend. C'est bon. Eh bien, vous pouvez voir, il suffit de jouer avec ce genre de choses maintenant et d'obtenir quelque chose que vous aimez. Alors peut-être que je vais juste revenir aux informations sur mon anime, et peut-être que je vais simplement les désactiver. Peut-être que je vais juste éteindre Phil. Je me contente de revenir en arrière et d'y jeter un coup d'œil. Tu vois, ça a l'air bien maintenant. Encore une fois, nos boutons n'ont tout simplement pas la même taille, il suffit donc de jouer avec eux et de trouver quelque chose qui vous plaît visuellement par la suite. Mais l' important, c'est que nous pouvons descendre et en choisir un, boum, et voilà, malheureusement, nous en avons choisi un sans étiquette auprès de la SEC. Même si nous en avons déjà sélectionné un, nous pouvons en sélectionner un autre, et cela n'affectera rien. Nous avons toujours les balises de titre, et je peux y voir tout ce texte par défaut. Nous devons clarifier cela . Alors voyons voir. Cela figurera dans notre script principal. Voyons voir avant de définir ce texte. C'est où ? Eh bien, si je l'efface par erreur, nous en aurons toujours ? C'est la question. Voyons voir. Synopsis, supprimez tout ça Et voyons si cela fonctionne, ou si nous avons toujours un vieux synopsis dedans Bien et allons-y encore une fois. C'est marrant, je ne l'ai jamais vraiment regardé. Alors voyons voir. Lors de son premier jour de collège. Lors de son premier jour de Junior. OK, donc, oui, nous avons toujours un vieux texte là-dedans. Nous devons donc nous assurer d'effacer cela lorsque nous définissons le titre, le synopsis, juste à côté d'un texte Donc avant cela, allons-y et mettons un point sur le synopsis de notre anime L'étiquette en gros texte a une fonction claire. Et je devrais résoudre ça. Maintenant, on y jette un coup d'œil. Le premier le premier jour du collège, le second, Gabby Braun et Falko Le suivant, Aaron Yeager. J'ai probablement mal prononcé celui-ci. Il y a des siècles Van Gind Slaughter. Ne soyez pas menacé par les Titans. Voilà. Nous l'avons donc complètement mis à jour maintenant et il contient le bon texte. C'est bon. C'est donc à vous de décider comment vous voulez donner à cela un aspect visuel. Mais c'est ce que nous voulons. C'est ainsi que nous procédons et c'est ce que nous avons fait. Alternativement, si tu le souhaites. Je vais vous montrer une autre façon procéder si vous ne voulez pas utiliser un bouton. Et pour conserver cela, au lieu d' utiliser une épave de texture ici, nous pourrions entrer et je vais simplement cliquer avec le bouton droit de la souris, appuyer Changer de type et le remplacer par un bouton de texture Ensuite, je peux simplement le faire glisser comme d'habitude. Et maintenant, nous avons ce bouton. Voyons si nous devons modifier un texte. Je ne pense pas que nous le ferions, mais en fait, nous pourrions avoir le texte, nous devrons peut-être préciser qu'il revient à la normale. Allons-y avec Narrato cette fois. Et oui, d'accord. Donc ça le casserait. Il faudrait donc préciser que c' était normal. Je vais jeter un œil ici. Informations sur l'anime. Ça. Et ce sera de la texture, du soulignement, de la normale. OK. Ce ne serait donc qu' un petit âge. Donc, lorsque nous définissons la texture de notre image animée, nous utilisons la texture des points, le soulignement, normal, comme ça Et cela ne devrait être qu'un changement de ligne. Et cela fonctionne correctement, non ? Nous y avons mis nos vignettes et elles avaient exactement la même apparence Et comme il s'agit maintenant d'un bouton qui a notre texture, nous pourrions le configurer, de telle sorte que lorsque nous cliquons dessus au lieu de cliquer sur ce bouton d'affichage, n'est-ce pas ? Nous pouvons donc y prendre l'image animée. Je vais copier le même exemplaire. Donc, sur notre image animée, je vais cliquer sur Appuyez, et je vais m' assurer qu'ils accèdent à la même fonction Et maintenant, vous allez voir W nous rejoindre ? Je peux cliquer sur la miniature, obtenir notre fenêtre et souligner Changement. Mais ce sont deux lignes de texture que nous avons dû modifier. Si vous vouliez suivre cette voie, le bouton, alors on peut cliquer dessus, c'est parti. Et cela peut être un peu plus naturel ou un peu mieux pour vous, puis vous pouvez simplement supprimer complètement ce bouton ensemble. Je vais donc juste le cacher pour que vous puissiez le voir de cette façon. Et puis tu pourras y avoir. Alors voilà. Voici comment vous pouvez le faire avec nos boutons dedans. Et puis, si vous voulez vous en débarrasser, il suffit de rendre la miniature cliquable correspondante pour faire apparaître notre fenêtre C'est tout ce que tu as à faire. Connectez un signal de presse, passez d'un bouton de texture à un bouton de texture, puis modifiez l'ensemble de notre texture de points d'image animée pour un soulignement de la texture des points d'image normal Et voilà. Nous avons donc tout réglé, je vais juste faire remarquer que c'est à nouveau imprimé ici. Encore une fois, nous n'en avons plus besoin. Allons-y. Nous pouvons donc maintenant rechercher des animes, obtenir un synopsis, voir les tags, obtenir des titres, et nous pouvons parcourir une longue liste de 1 000 ou 2 000 , ou le nombre que nous voulons Et il y aura un appel d'API par recherche. Hum, en fait, il y aura deux API au départ, parce que nous devons y ajouter nos genres. Je vais juste le décommenter. Remets-le là-dedans. Vous n'auriez pas dû vous faire commenter ça. Je l'ai juste désactivé juste pour économiser sur certains appels d'API pendant que je testais certaines choses, n'est-ce pas ? Alors maintenant, nous pouvons entrer et faire, par exemple, des recherches surnaturelles et figées. Pas congelé. Il fait froid, c'est ce que je cherchais. Congélateur. Ne recherchez rien de surnaturel. Que diriez-vous de la fantaisie ? Intéressant Nous n'y arrivons donc rien. Si on passe à Aucun genre, il y a de la brise. Science-fiction. C'est peut-être ce que je recherchais. Action Di Pi. Vibration brusque Je le ferais. J'ai donc complètement oublié mon secret, juste pour m' assurer que cela fonctionne, non ? Nous allons passer à la recherche d'action. Et voilà. Nous n'avons obtenu qu'une seule action. Donc, si nous avons tout cela, si nous passons au théâtre, nous en aurons encore moins. Nous pouvons voir que nous pouvons le filtrer de plus en plus si nous voulons utiliser les genres. Nous devons effectuer une recherche, mais les genres sont mis aux enchères. Très bien, alors voilà. Voilà. Nous avons nos petits pop-ups. Nous avons nos informations. Nous avons nos recherches. Alors voilà. Vous avez maintenant une application de bureau que vous pouvez utiliser pour peut-être vous retrouver samatam Trouvez peut-être quelque chose à regarder lorsque vous vous ennuyez. Et je vous encourage à aller de l'avant et à ajouter d'autres fonctionnalités à cela. Ajoutez peut-être une liste de favoris si vous le souhaitez, ou une liste de surveillance ou quelque chose comme ça. De cette façon, vous avez quelque chose que vous pouvez suivre. D'accord. C'est tout pour cette section. Et nous allons passer à la semaine prochaine où nous allons parler de certaines des personnalisations les plus avancées pour vraiment donner à vos programmes un aspect plus unique et plus professionnel 73. les polices de caractères: D'accord, alors une des choses que nous pouvons faire pour que notre application ou nos jeux se démarquent et soient plus uniques ou plus professionnels ? Eh bien, l'une de ces choses sont les polices de caractères. Maintenant, les polices peuvent être beaucoup examinées, en particulier par les nouveaux développeurs, mais les polices peuvent changer tout le domaine de votre jeu ou de votre logiciel. Et c'est comme lorsque vous avez une police de caractères pour, par exemple, un restaurant, n'est-ce pas ? Si vous avez une police légèrement inclinée vers la droite et ses caractères, alors nous avons l'impression, que légèrement inclinée vers la droite et ses caractères, alors nous avons l'impression, nous nous en rendions compte ou non, compte ou non que c'est quelque chose de gros, n'est-ce Nous avons l'impression que ces lettres se déplacent rapidement lorsqu'elles sont penchées comme ça, surtout si elles sont penchées vers la droite. Avec cette impression, nous pouvons donc supposer en interne qu'il s' agit d'un établissement de restauration rapide. Et nous avons tout cela sans même connaître le nom de l'endroit ou de quel type d'endroit il s'agit, quelle est sa taille, quel type de nourriture il sert. Nous ne savons rien si ce n'est que les lettres de son panneau sont inclinées. C'est à quel point les polices peuvent être puissantes. Imaginez si vous jouiez à Say Dead So Oh, pas à Dead Souls. Dark Souls. Dead Souls est complètement différent, mais imaginez que vous jouiez Dark Souls et que nous avions cette police de caractères pétillante. Il y en a partout. Ce n'est pas le cas, cela ne rentrerait pas parce qu'il n'y aurait pas la même ambiance Hein ? Je me sentirais mal placé Cela vous détournerait de l'ambiance du jeu, ou cela vous ôterait le sérieux du jeu et ton sérieux qu'il dégage Les polices peuvent donc être très puissantes lorsqu'elles sont utilisées. Il est donc important de ne pas négliger ces points. Je vais donc passer aux résultats de nos anime, et je vais utiliser notre titre ici afin que nous puissions en avoir une bonne idée. Maintenant, sans toucher à de véritables personnalisations, je vais simplement entrer et aller dans la section themoide de l' inspecteur avec mon Et vous pouvez déjà voir que nous avons des couleurs pour la police, l'ombre et le contour. Donc, si je mets la police sur le blanc, mets peut-être l'ombre sur un peu plus transparente. D'accord ? Il y a quelque chose qui se passe ici. Nous pouvons passer à la section suivante , qui est constituée de constantes. Nous pouvons donner un décalage à l'ombre. D'accord. Maintenant, nous avons le texte qui sort de la page. Nous pouvons lui donner une taille de contour qui peut vraiment rendre notre texte beaucoup plus visible. Ombre jusqu'au contour. Nous pourrions le faire également. Cela va vraiment améliorer nos ombres là-bas. Et nous pourrions ajouter un interligne. Nous pouvons descendre à la taille des polices, et nous pourrions, allons jusqu'à 23. Et dans ce cas, toutes les options que nous avons vraiment ici, mais allons-y, augmentons ce sont toutes les options que nous avons vraiment ici, mais allons-y, augmentons un peu plus le décalage, et peut-être que nous changerons l'ombre pour soit un peu plus violette. D'accord, nous pouvons avoir plus de ces tons froids dedans Et maintenant allons-y et si nous lançons notre scène principale, je vais y aller. Nous allons lancer notre attaque habituelle contre HTonfmersearch. Et vous pouvez déjà constater que même si nous n'avons pas fait grand-chose, en fait, simple fait d'ajouter ce plan à ce texte par défaut ici a déjà fait ressortir ce texte et vous sauter encore plus aux yeux. Et nous n'avons presque rien fait. Ainsi, vous pouvez voir à quel point les petites modifications apportées à vos polices peuvent être importantes à vos polices peuvent être Maintenant, vous êtes bien sûr limité à ces polices par défaut. Parce que nous pouvons réellement utiliser certaines polices personnalisées. Allez-y et désactivez-les tous. Si nous nous dirigeons vers la section des polices, nous pouvons utiliser une police personnalisée ici. ne veut pas s' éteindre là. C'est très bien Je vais simplement ouvrir le menu déroulant ici et sélectionner un nouveau fichier de police. C'est bon. Et je vais l'ouvrir sans pouvoir prévisualiser la police. Oups. D'accord. Il apparaît en quatre points. Nous n'avons pas besoin de sélectionner d'options comme nous le faisions auparavant en trois points X. Je viens donc de télécharger un fichier de police ici. Elle est au format TTF, et je vais simplement faire glisser dans la section des polices, et vous pouvez voir, juste comme ça, que nous avons une nouvelle police Maintenant, nous n'avons pas beaucoup d'options définies, mais comme vous pouvez le constater, nous pouvons toujours revenir ici, modifier nos côtés et tout ce qui se trouve à l'extérieur conservant les mêmes commandes qu'avant Et comme je l'ai dit, il suffit de donner un aperçu. Ça. Même en dressant un plan, cela se démarquera vraiment. Il suffit d'ajouter ce petit facteur. C'est bon. Maintenant, dans Goto 4, il semble que nous puissions ajouter des variantes complètes Nous pouvons donc avoir notre lien de base. Vous pouvez créer des obligations de repli au cas où. Et vous pouvez définir différentes fonctionnalités : doublure, figurines de style ancien, ensembles stylistiques, alternatives Vous pouvez donc vraiment entrer ici et commencer à personnaliser des polices de caractères très spécifiques Vous pouvez donc y aller presque aussi en détail que vous le souhaitez. Mais ce qui est génial, c' que nous pouvons contrôler la taille de la police, même si nous n' avons pas de police personnalisée dans bind pour le moment. Cela nous permet au moins d' avoir un peu plus de contrôle sur l'apparence générale que nous voulons lui donner, et nous pouvons toujours choisir une police plus tard, ce qui, encore une fois, est idéal pour le prototypage, afin que nous puissions rapidement en tirer quelque chose Mais nous y voilà. Si nous pouvons utiliser des polices personnalisées et que vous verrez si je les réinitialise, oh, la police a disparu. Allons-y. Voilà, tu vois. Vous pouvez avoir des polices complètement nouvelles simplement en faisant simplement glisser notre fichier. Il utilise le TTF, et je crois que vous pouvez également l'utiliser dans un fichier OTF Mais c'est aussi simple que faire glisser le fichier dans la section des polices des thmovides Et nous pouvons voir si nous continuons, et encore une fois, nous allons recommencer très rapidement et nous dirons « Resserrer la recherche ». Et voilà, vous pouvez y jeter un œil. Magnifique. C' est évidemment un peu trop grand pour certains de nos titres ici, mais vous voyez l'idée. Maintenant, vous devez entrer et modifier chaque élément de votre interface utilisateur, ce qui peut devenir extrêmement ennuyeux ou prendre beaucoup de temps. Et il y a un moyen rapide, il y aurait un moyen plus rapide d'aller de l'avant et de faire quelque chose comme ça. Et pour ce faire, nous passerons la vidéo suivante où nous commencerons à parler de thèmes. H. 74. Thèmes personnalisés: D'accord. Maintenant, je vous ai dit qu'il y aurait un moyen plus simple appliquer votre police à tout, et que ce moyen le plus simple serait plutôt d' utiliser ce que nous appelons des polices ou des thèmes. Nous pouvons donc entrer et je vais juste zoomer ici, et un thème s'appliquera aux nœuds activés, ainsi qu'à tout ce qui en a un enfant. Donc, si nous le plaçons sur notre nœud principal ici, à tout ce qui se trouve dans notre scène thème sera appliqué à tout ce qui se trouve dans notre scène. Voici donc comment vous créeriez un thème sombre et un thème clair. Pour deux exemples, vous pouvez simplement échanger le fichier de thème et tout changera. Donc, si nous venons ici avec notre nœud principal sélectionné, qui est le nœud de contrôle de notre scène, rendez-vous dans notre inspecteur, passez au thème, puis allez dans le menu déroulant et sélectionnez un nouveau thème. Et vous remarquerez qu' en bas, nous avons maintenant cet onglet de thème, et nous l'ouvrons vers le haut, nous pouvons voir toutes nos options. Et voici nos aperçus de tous nos boutons, curseurs, comme vous le voyez ici Nous pouvons donc jouer et voir à quoi tout va ressembler, même si nous n'avons aucun élément dans la scène. D'accord, donc cet aperçu est fantastique pour nous ici. Maintenant, nous avons un nouveau thème, et nous pouvons y intégrer notre police. Je vais juste récupérer notre police, et comme vous le voyez sur le côté droit, nous avons une police par défaut. Si je le fais simplement glisser, maintenant tout partage cette police aussi rapidement. Tout est partagé. Ce qui est fantastique, bien sûr. Mais qu'en est-il de tout le reste, non ? Et si nous voulions rendre les choses plus uniques, plus spéciales ? Eh bien, nous pouvons continuer et passer à la gestion des objets. Cela ouvrira ainsi une nouvelle scène que j' espère pouvoir capturer ici. Cela n'a pas été capturé. Un moment. Essayez Windows 7. Nous y voilà. Très bien, notre responsable est là, et je vais juste passer à Importer des articles. Et dans le thème de l'éditeur, je vais simplement appuyer sur Tout sélectionner en bas . Importer sélectionné. Et nous y voilà. Je pourrai y aller et repartir d'ici une fois que tout sera fait. Maintenant, j'ai tous mes articles. Maintenant, je peux tout contrôler depuis l'inspecteur. Vous pouvez voir toutes les choses , comme la boîte de rotation, barres de progression, toutes mes fenêtres contextuelles, mes panneaux, le bouton d'option, les boutons de menu, étiquettes, les modifications de ligne, la droite, mes curseurs, les conteneurs et des tonnes et des tonnes de choses que nous n'avons pas cochées Tout peut être modifié ici, sur le côté droit, non ? Nous pouvons donc définir les couleurs de nos boutons ici, non ? Et nous voyons qu'une couleur de police est blanche, et vous pouvez voir qu'elle est passée au blanc dans notre scène, ainsi que dans notre aperçu. Nous pouvons dire focus sur la police ou couleur de survol de la police, non ? C'est peut-être plus rouge. Donc quelque chose comme ça. Génial. Maintenant, lorsque je passe le pointeur sur le bouton , vous pouvez voir que nous pouvons maintenant visuellement quand notre souris passe dessus Depuis notre aperçu, car évidemment, nous ne pouvons pas le faire ici car il ne fonctionne pas, mais nous pouvons le tester dans notre aperçu ici. Et comme je l'ai dit, si vous ne voulez pas tout parcourir dans l'inspecteur, vous pouvez le faire ici, dans section du gestionnaire de thèmes, ici l'onglet. Nous sommes donc en train de modifier notre bouton, donc je vais juste l' ouvrir, et vous verrez une énorme liste ici. Et donne-moi un moment pour ça. Je vais te le montrer. D'accord. Donc, comme je le disais, tout ce que vous voyez sur le côté sera affiché lorsque nous l'ouvrirons, afin que vous puissiez tout voir ici, toutes les parties que nous avons ajoutées pour les modifier. Nous étions donc en train de modifier le bouton. Donc, si je l'ouvre, nous pouvons voir que toutes les mêmes propriétés se trouvent ici, mais pas seulement, elles sont également organisées comme vous pourriez les imaginer. Et vous pouvez également venir ici et les renommer. Si vous n'aimez pas la taille du contour, vous pouvez la renommer comme bon vous semble Voici toutes nos couleurs. Il est donc très facile pour nous de nous déplacer. Nous arrivons en police de caractères. Non, j'ai cette taille de contour, cette taille de police, ça. Jetons donc un coup d'œil à ces petits thèmes, pas aux thèmes, mais au style. Alors revenons à la normale, une normalité, mais voilà. Je vais adopter un style de boîte plate. Donne-lui juste une seconde. Les thèmes semblent avoir ce petit hic . Mais c'est bon. Ouvre ça. Et comme vous voyez cela s'ouvrir ici dans l'inspecteur, vous voudrez peut-être utiliser l'inspecteur de toute façon, mais ce n'est pas obligatoire. Et vous voyez, maintenant entrez, je peux ajouter des bordures ici. Nous pouvons donc ajouter cette largeur de bordure sur nos boutons, ainsi que, bien sûr, sélectionner la couleur de nos bordures. Nous pouvons passer en vert vif et commencer à les ajouter. Nous pouvons donc faire quelque chose comme ça si nous le voulions. Mais ce que nous pouvons faire, c'est venir ici et nous pouvons simplement ajouter des coins. Nous pouvons arrondir nos angles. Et maintenant, sans avoir à faire quoi que ce soit de compliqué, nous avons ces jolis boutons arrondis, et comme des éléments tels que le bouton d'option proviennent tous du bouton de base, proviennent tous du bouton de base, ils sont également arrondis. Et si vous vouliez être beaucoup plus extrême, par exemple, c'est comme ça. Nous nous rapprochons de la création d' un bouton de plus en plus rond ici et nous nous rapprochons création d' un simple bouton circulaire Vous voyez, cela ne nous permettra pas d'aller plus loin sur ces boutons, alors gardez cela à l'esprit. Mais tout de même, nous avons au moins, à mon avis, de beaux boutons qui sont plus beaux que ces rectangles carrés pointus. Les coins arrondis me semblent toujours plus beaux. Peut-être que tu préfères les pointes, mais je préfère toujours les coins légèrement arrondis, non ? Donc même si on arrive avec, genre, un trois, non ? nos virages, je trouve que cela serait au moins un peu plus agréable que d'avoir ces points Mais tu peux venir ici et tu peux les changer complètement autant que tu le souhaites. Et puis, chaque fois que vous êtes satisfait de modifier tous les aspects de votre thème, vous pouvez simplement aller dans le menu déroulant ici et enregistrer votre thème. Et vous pouvez le faire plusieurs fois et chaque fois que vous êtes prêt à le faire, chaque fois que vous souhaitez avoir la possibilité de changer de thème, vous suffit de charger votre thème il vous suffit de charger votre thème et de le placer dans la propriété du thème ici. Et vous pouvez le faire en code, non ? Accédez simplement à la propriété du thème et chargez-y votre fichier de thème. Et voilà. Vous avez appliqué votre thème. Vous avez intégré différentes options de thème. Bien, donc si vous le souhaitez une fois que vous avez configuré quelques thèmes, vous pouvez évidemment le configurer avec un bouton de bascule clair et foncé Donc, si je devais revenir sur Hootie pendant une seconde. Si nous allons de l'avant et réglons cela sur « voyons voir ». Ce n'est pas un bouton à bascule. Il s'agit d'un bouton de vérification du bouton d'entrée et de recherche. C'est comme ça qu'on les appelle ici. Je vais y aller et juste apporter ça. Cela n'aura pas vraiment d'importance. Et le style est la raison pour laquelle nous avons cette expérience. C'est bon pour le moment. Supposons donc que nous ayons ce bouton de vérification. Je vais appuyer sur le signal de presse activé, joindre à mon script principal Et tout ce que je vais faire, c' est parce que cela a pris de l' ampleur parce que je ne sais pas, les thèmes semblent faire en sorte thèmes semblent faire les choses s'arrêtent, du moins de mon côté, tout le temps. Donc, si je viens ici et qu'en fonction du fait que l'on appuie ou non, accord, nous pouvons charger différents thèmes. Je vais donc dire si on appuie sur le bouton parce que c'est l'argument qui est transmis, juste au moment où on le bascule, si on appuie sur le bouton Donc, si c'est vrai, il est activé, nous le réglerons sur le thème deux. Sinon, nous allons entrer et le définir sur le thème 1, sauf cela. Et tout ce que nous faisons, c'est obtenir le nœud sur lequel il se trouve, n'est-ce pas ? Nous n'avons donc pas besoin de taper self, mais j'aime le faire quand même, en obtenant la propriété du thème, et nous chargeons simplement notre fichier de thème. C'est tout ce que nous faisons. C'est maintenant que je le lance. Je peux simplement cliquer sur ce bouton. Et juste comme ça, nous pouvons passer d'un mode clair à un mode sombre. C'est donc aussi simple que cela lorsque vous souhaitez échanger des thèmes, cela vous prendra du temps pour et créer créer et créer tous les différents thèmes que vous souhaitez avoir. Mais l'avantage, c' est que si vous voulez simplement avoir un thème clair et foncé , et bien sûr, si vous voulez créer un tas d'autres thèmes également, vous pouvez conserver ces fichiers puisque nous les enregistrons en tant que thème, n'est-ce pas ? Vous pouvez les intégrer d'autres projets à l'avenir, et vous pouvez simplement postuler, et maintenant vous avez juste un thème clair et foncé prêt à tout, n'est-ce pas ? Tous vos futurs projets. Mais c'est aussi simple que cela. Il suffit d'une ligne de code pour changer de thème. C'est aussi simple que cela. Définissez la propriété du thème de manière à charger votre fichier de thème. C'est bon. Les thèmes sont donc puissants. Ils peuvent l'être même si vous souhaitez simplement définir votre police pour tous vos différents types de nœuds. Au lieu de perdre du temps, il vous suffit de créer un thème, d'y ajouter votre police et le tour est joué. D'accord. Maintenant, je vais faire une dernière remarque ici si vous souhaitez supprimer quelque chose de votre thème. Donnez ce moment, car évidemment, cela va se bloquer pendant une seconde à cause des thèmes pour une raison ou une autre, n'est-ce pas ? Supposons donc que nous voulions supprimer quelque chose de notre thème parce que nous n'en avons peut-être pas besoin ou parce que cela n' affecte pas notre projet, peu importe. C'est bon. Nous pouvons simplement aller sur le bouton Gérer les articles ici et simplement l'ouvrir, à nouveau dessus, n'est-ce pas ? Nous pouvons simplement aller modifier les éléments. Nous pouvons trouver quelque chose comme un éditeur, fenêtre contextuelle d'éditeur de troll, préréglage de couleurs mais, éditez la ceinture, juste les fils là, l'aide sur le Donc toutes ces choses qui sont là-haut n'ont pas d'importance. Ils ne nous affectent pas, nous pouvons donc venir ici et nous pouvons simplement commencer à supprimer toutes ces choses qui n'ont pas d'importance. De cette façon, il commence à avoir l' air un peu plus propre. Bien sûr, vous n' étiez pas obligé de les introduire au départ. Vous ne pouvez apporter certains articles que si vous le souhaitez. Mais si vous voulez créer un thème, je trouve qu' il vaut mieux le faire pour tous de toute façon. De cette façon, comme je l'ai dit, vous pouvez simplement intégrer le thème à n'importe quel projet et être prêt à vous lancer. Voilà. Voici comment vous pouvez supprimer des éléments que vous ne voulez peut-être plus intégrer à votre thème. Voilà. Des thèmes très puissants, très utiles, donnent à votre programme un aspect plus professionnel, font paraître moins défaillant, en particulier chez les autres développeurs Goto et vous permettent d'avoir plus de personnalisation pour vos utilisateurs, clients, clients, Maintenant, évidemment, cela va voler un peu plus vite ou c'est voler un peu plus vite ou c' du côté logiciel que du côté du jeu deb, mais peut-être pouvez-vous penser quelque chose d'unique que vous pouvez faire du côté du gameplay. D'accord, ça suffira pour celui-ci. Ensuite, nous allons parler de la façon de faire en sorte que nos fenêtres apparaissent réellement et soient contrôlées par le système d'exploitation. Ce que je veux dire par là, c'est que lorsque nous arrivons, je sais que c'est difficile à voir pour nous maintenant parce que nous abordons les thèmes. Je vais m'en débarrasser par défaut, ici. Cette fenêtre que nous avons complètement foirée en ce moment On ne peut pas le déplacer, non ? Par exemple, il va rester coincé à l'intérieur de cette fenêtre. Nous allons donc l'intégrer dans sa propre fenêtre et le contrôler par le système d'exploitation. 75. Fenêtres multiples: Bien, parlons du fait Windows soit contrôlé par le système d'exploitation Et ce que je veux dire par là, c'est que vous voyez comment cette fenêtre est sa propre fenêtre contrôlée par le système d'exploitation. Nous ne pouvons pas le déplacer Nous ne le déplaçons pas nécessairement n'importe où. C'est juste un peu là. Tiens bon. Ce sera beaucoup plus facile. Un moment. Très bien, si j'en viens au mode d'affichage ici et que nous y jetons un œil Nous pouvons voir qu'il s'agit de sa propre fenêtre autoportante qui peut être déplacée en tout point. Ce n'est pas piégé dans l'éditeur principal ici, n'est-ce pas ? Cependant, oh, c'est un peu trop gros. Cependant, si nous devions entrer et, encore une fois, effectuer notre recherche, disons que Titan. Cela a toujours été une habitude. Bien, descendez, chaque fois que nous trouvons une émission, cliquez dessus. Et maintenant, sur nos fenêtres, vous pouvez voir comment c'est coincé ici, non ? Ce n'est pas gratuit. Et la raison en est qu'il est intégré à notre fenêtre principale ici. Donc ça ne va pas être le cas, ce n'est pas gratuit, non ? Il n'est pas contrôlé par notre système d'exploitation. C'est donc ce que je vais vous montrer comment faire. Ainsi, vous pouvez avoir votre propre fenêtre. Ainsi, par exemple, vous ouvrez une fenêtre de paramètres, un panneau de paramètres, un panneau de préférences lorsque vous créez un logiciel. Vous pouvez le prendre et déplacer cette fenêtre. Il n'est pas nécessaire qu'il soit coincé dans une application quelconque. Courir. Et c'est à peu près normal. Il serait donc bon que nous sachions comment procéder. Donc, si nous le désactivons très rapidement, il suffit de passer à notre script, et nous pouvons résoudre ce problème avec une seule ligne de code, et c'est tout. Nous obtenons donc une fenêtre d'affichage, et cela va obtenir la fenêtre d'affichage de notre fenêtre actuelle, La fenêtre principale de notre programme. Et tout ce que nous allons faire, c'est intégrer des sous-fenêtres et définir cette propriété C'est ça. Maintenant, si nous l' exécutons, nous pouvons voir que cela fonctionne toujours exactement de la même manière. Et si nous poursuivons nos recherches. Plastic Attack Titan, peu importe, nous faisons défiler nos résultats. Peu importe. Bla. Choisissons-le ? Maintenant , c'est sa propre fenêtre. Nous pouvons le déplacer, avoir son propre titre de fenêtre, et il est créé et géré par le système d'exploitation lui-même. Trois tailles et nous pouvons faire tout ce que nous pouvons, comme nos autres fenêtres. C'est donc aussi simple que cela d'y ajouter cette petite fonctionnalité. Ce serait très utile. Un autre exemple est si vous vouliez avoir un onglet comme celui-ci, pour pouvoir annuler les points comme vous pouvez le faire ici Nous le retirons simplement. C'est bon. Allons-y. Nous ouvrons donc le paramètre ici, et nous pouvons simplement dire make floating. Et maintenant, c'est sa propre fenêtre, non ? Et c'est géré par l'exploitation. Cela fonctionne donc de la même manière que ce que nous venons de faire avec les sous-marins Dewey Embed ? Ce que nous devons faire, c'est le fermer et cela peut y revenir. Et tu peux le faire avec n'importe lequel ici. Ainsi, par exemple, vous pouvez le faire avec le script ici. Vous pouvez simplement cliquer sur ce bouton ici, et maintenant la fenêtre de script est indépendante. Et si vous avez deux moniteurs, vous pouvez maintenant simplement le coller seul sur le deuxième moniteur, et vous pouvez vous concentrer sur la scène réelle sur un écran et votre code sur le. Vous pouvez donc voir à quel point il serait utile de créer de telles fenêtres flottantes uniquement développement et, en fonction de votre application pendant le développement et, en fonction de votre application, d' être plus productif pour l'utilisateur final, ce qui , bien sûr, signifie que votre produit sera davantage apprécié, il deviendra une préférence, qu'il deviendra une préférence, et cette petite fonctionnalité, cette ligne de code pourrait augmentez la base d'utilisateurs de votre programme, de votre application. Bien sûr, votre programme doit être bon pour commencer, mais oui. Et voilà. C'est tout ce que nous avons à faire pour créer ces fenêtres flottantes et faire en sorte que nos fenêtres contrôlées par notre système d'exploitation au lieu de rester coincées dans notre fenêtre principale. 76. Barres de menu: Alors allons-y et parlons de la façon dont nous pouvons créer une barre de menu. Maintenant, par barres de menu, je fais référence à ce que vous voyez en haut de la plupart des applications avec des éléments tels que le fichier, édition, l'affichage, peut-être les effets de calque, etc. C'est bon. Maintenant, comment pouvons-nous aller de l'avant et faire cela ? Eh bien, j'ai une nouvelle scène ici qui utilise une barre de menu comme nœud racine ici. Et je place simplement un rectangle de couleur en arrière-plan parce que sans lui, vous n'avez rien là-dedans, et vous ne pouvez pas vraiment le distinguer ou le différencier du reste de votre programme. Maintenant, en fonction de votre design et de l'apparence que vous souhaitez donner à vos objets, c'est peut-être ce que vous voulez. D'autres fois, vous voudrez peut-être quelque chose de différent, même s'il s'agit simplement d'une teinte légèrement différente de l'arrière-plan standard de l'objet avec lequel vous travaillez. Donc, pour moi, je veux juste opter pour ce rouge foncé, une sorte de couleur marron. Et si vous êtes curieux, la couleur hexadécimale est 391715 OK. Maintenant, que pouvons-nous faire ? Comment ajouter des barres et des boucles d'oreilles ? Si nous y jouons, je vais devoir vous l'expliquer dans un instant. Oh, non, ça capture automatiquement. Fantastique. C'est un peu gros. Je vais donc le réduire un peu. Mais comme vous pouvez le constater, il n'y a bien sûr rien sur lequel cliquer. Ce n'est qu'un bar. Rien ne se passe. Ce n'est donc pas très intéressant. Donc, comment ajouter des éléments dans ces barres de menu, bien sûr, nous pouvons le faire par le biais du code. Mais nous pouvons nous en sortir en partie en utilisant un autre nœud. Et si vous le souhaitez vraiment , si vous n'avez que des éléments de menu simples, ce serait également le moyen le plus rapide de procéder Très bien, nous allons donc aller dans la barre de menu, et si nous cherchons simplement le menu à l'intérieur du menu de création d'un nouveau nœud, ce qui, au cas où cela ferait longtemps, et que vous ne l'auriez pas vu pour une quelconque raison, allez-y et réapparaissez, juste là Passons au menu de recherche, et nous avons la barre de menu, mais ce que nous voulons, c'est le bouton de menu à ce stade. Et maintenant, avec ce bouton de menu, nous pouvons continuer et nous pouvons l' appeler le bouton Bo, par exemple, lui donner un bon nom comme ça. Le texte, bien sûr, serait File, Bio et non Bilk. C'est bon, allons-y. Et je vais juste m' assurer que c'est de la bonne taille, à remplir. Et c'est à ce stade que nous pouvons maintenant entrer, ouvrir notre scène et la lancer. Et vous verrez si on clique dessus. Nous avons en quelque sorte cette petite fenêtre contextuelle ici, mais il n'y a rien à l'intérieur. Maintenant, le moyen le plus simple d'y ajouter des éléments serait d'utiliser notre bouton de menu. Nous avons cette section intitulée articles. Nous pouvons dire Ajouter un élément, non ? Ensuite, nous pouvons dire comme nouveau fichier, ajouter un élément ouvert, ajouter un nouveau. Peut-être que nous avons une sauvegarde, et ajoutons-en une autre rapidement. Et tout est là, chez l'inspecteur. Donc, si c'est tout ce dont vous avez besoin pour chacun de vos boutons de menu, boum, et voilà. Tu l'as. Maintenant, vous pouvez cliquer dessus, et il vous suffit de fournir un petit code pour les créer. Bien entendu, cela signifie également que nous pouvons simplement dupliquer notre bouton, le glisser dessus, bien sûr, modifier les options que vous souhaitez et nous avons un deuxième bouton de menu. Maintenant, je vais juste en faire installer un ici, juste pour vous le montrer. Mais si vous avez juste besoin menus simples comme celui-ci, c'est tout ce que vous avez à faire. Maintenant, si vous voulez avoir un menu qui ressorte un peu, si vous le survolez, droite, et qu'il ouvre un autre menu, si vous voulez faire quelque chose comme ça, alors nous allons devoir entrer dans le code pour y accéder Maintenant, mon script se trouve juste dans ma barre de menu. Vous pouvez les définir sur les boutons de votre menu si vous le souhaitez. De cette façon, chaque bouton peut se contrôler lui-même, ce qui serait probablement la meilleure et la plus intelligente façon procéder si vous créez un produit réel. Donc, pour moi, comme je n'ai qu'un seul bouton de menu ici, ce n'est pas si grave. Mais encore une fois, si vous aviez peut-être cinq boutons différents, peut-être que certains d'entre eux avaient plusieurs menus différents, alors vous voudrez probablement au moins le décomposer en chaque bouton de cette façon. D'accord. Donc, la première chose que je vais faire est vous montrer comment nous pouvons ajouter ces boutons. Avec ce bouton de menu, je vais supprimer un nouveau fichier, ouvrir, l'enregistrer et le quitter. Je n'ai donc aucun élément ici dans l'inspecteur, et je vais vous montrer comment nous pouvons les ajouter via Code. Très bien, je vais donc créer une variable. Nous allons le préparer. Bar, disons-le, bouton Bile. Et ce sera, bien sûr, notre bouton de fichier. La classe dans laquelle nous pouvons le définir est un bouton de menu. C'est bon. Nous en avons donc la main Maintenant, nous pouvons passer à Flebuton Dot. Et nous disons simplement ajouter un élément, je crois que c'est pour nous ici. Oh, non, c'est mon erreur. Nous devons en fait nous emparer de la fenêtre contextuelle car c'est un menu contextuel qui s'affiche tout seul. Nous voulons donc créer une fenêtre contextuelle. Nous pouvons maintenant créer une variable ici, par exemple, nous pouvons dire fichier, nous pouvons l' appeler le menu Fichier, qui est, bien sûr, un menu contextuel. Nous y voilà. Nous pouvons maintenant le définir comme égal au bouton de fichier point Get pop up. Et il ne nous reste plus qu' à bilemnu point, et nous pouvons ajouter un message instantané Et nous pouvons voir un élément d'icône publicitaire, ce qui signifie qu'une image peut y être affichée. Donc, si vous voulez qu'une petite disquette apparaisse à côté de votre bouton Enregistrer, vous pouvez le faire Nous avons également des chèques. Donc, si vous voulez être quelque chose que vous pouvez simplement cocher et désactiver, vous pouvez le faire de cette façon. Le contrôle radio, qui n'est qu'un bouton circulaire. Et puis nous avons la case à cocher, la case à cocher et la case radio , et tout ça sans les icônes, et le sous-menu dans lequel nous reviendrons dans un instant. Et quel est cet article multi-états ? Eh bien, jetons-y un coup d'œil. Je vais maintenir le bouton Ctrl enfoncé. Et il ajoute un nouvel élément multi-états avec une étiquette de texte. L'étiquette est une chaîne, puis maxmun of state, l'état par défaut, ND, Excel, voyons voir Contrairement aux éléments binaires normaux, les multistatoms peuvent avoir plus de deux états tels que définis par Chaque pression active l'objet, mais augmente son état d'une unité. La valeur par défaut est définie par les états par défaut. Il semble donc que nous obtenions une augmentation ou que nous puissions avoir plusieurs États. Donc, chaque fois que nous cliquons sur le bouton, il change peut-être de mode. Jetons un coup d'œil à ça. Modifions-le pour mettre l'état en mode, et nous fixerons le maximum d'états à trois. Très bien, alors allons-y et exécutons-le. Jetons un coup d'œil à ce multi-état. On clique dessus ? Eh bien, on peut cliquer dessus, et on ne voit rien se passer. Mais si nous devions y jeter un œil, si nous devions examiner cela, nous pourrions laisser les États influencer ce qui se passe dans notre projet maintenant. Comme vous le voyez ici, il ne le fait pas vraiment, il ne fera rien tout seul, n'est-ce pas ? C'est quelque chose qui va nécessiter des mesures supplémentaires pour nous aider. Alors que quelque chose comme un chèque, non ? Les appels me surveillent. Et si nous devions exécuter cela, même si nous n'avons rien ici, nous pouvons y aller et cliquer dessus, et vous pouvez voir que nous avons cette petite case à cocher, et nous devrions configurer l'option de vérification ou la propriété de vérification D'accord, alors comment pouvons-nous nous y prendre ? Voyons comment nous pouvons réintégrer nos articles. Pouvons-nous simplement dire ajouter un élément, et de cette façon nous pouvons le mettre dans une chaîne et nous pouvons créer notre nouveau fichier, je pense, c'est comme ça que nous l'avons appelé. Et à ce stade, nous pouvons continuer et nous pouvons simplement les copier, les coller. On peut donc dire qu'un nouveau fichier est ouvert. Je crois que nous avions économisé ici, puis nous avons démissionné. C'est bon. Donc, si nous devions l'exécuter et jeter un coup d'œil à notre menu, vous verrez que toutes ces options sont maintenant présentes, comme nous l'avons fait lorsque nous l'avons fait via l'inspecteur. Donc, si vous préférez le faire en code, vous pouvez le faire. Mais si vous avez juste besoin d'un menu simple comme celui-ci, passer par l' inspecteur serait moyen le plus simple ou le plus rapide d' ajouter de nouveaux éléments dans votre menu Maintenant, j'ai dit que nous pourrions avoir nouveaux fichiers ou des fichiers qui s'ouvriraient dans d'autres menus. Et pour ce faire, c'est un peu plus compliqué. Dans ce cas, nous devons en fait créer nous-mêmes un nouveau menu contextuel pour cela. Je vais donc sauver New Pop. Et ce sera un menu contextuel qui sera égal à un nouveau menu contextuel à point nouveau. Et je vais juste y aller et baisser un peu le son. Menu contextuel point nouveau. Ensuite, nous devons passer à : nous pouvons y ajouter un nouvel élément juste pour que nous puissions réellement le voir. Nous allons donc dire newpop dot add item. On va dire que c'est mon nouvel article. D'accord. Et maintenant, pour le créer ou l'ajouter à son propre petit menu qui se trouve à l'intérieur de notre fenêtre contextuelle d'origine, il suffit de lancer notre menu Nous obtenons ce fichier. Et nous ajoutons un sous-menu. Maintenant, la première chose va être une chaîne. Alors allons-y et jetons un coup d'œil. Nous appellerons cela mon élément de sous-menu. Et quelle est la prochaine étape ? Ensuite, il y aura le sous-menu proprement dit. Ce sera le nouveau menu contextuel que nous avons créé, que j'appelle new Pop. Et c'est tout ce que nous avons à y mettre. Nous n'avons pas à mettre, nous n'avons pas besoin de saisir une pièce d'identité. Il sera automatiquement ajouté au bas de notre liste, comme indiqué ci-dessous. Donc, si je le voulais, nous pourrions aller de l'avant et régler cela. Oh, c'est vrai. C'est censé être une chaîne, qui devrait être appelée menu contextuel, mais je vais continuer et m'assurer que cela ne nous posera aucun problème à l'avenir. Nous ferions apparaître le nom du point et lui donnerions un nom, n'est-ce pas ? Modifiez cette propriété. Nous allons donc appeler ce nouveau nom pop. Oups, ça devrait être une chaîne. Nous y voilà. Et nous l'avons remplacée par la variante string. Nous y voilà. C'est ce qu'il va rechercher. Alors maintenant, si nous devions le gérer, quand serions-nous arrivés ici ? En tant que nom d'index sur une chaîne de caractères. De quoi parlez-vous ici ? Voyons voir. Très bien, voyez le numéro. C'est exact. Et le nom du script GB est en minuscules. Je travaillais avec C Sharp récemment, alors je me suis un peu embrouillé. Et l'autre problème, c'est que nous devons en fait l'intégrer à notre menu. Nous allons donc dans le menu fichier, ajoutons Child, et nous ajouterons notre nouveau menu contextuel. Nous y voilà. Alors maintenant, lorsque nous l'exécutons, vous pouvez voir que nous avons notre fichier, nous l'ouvrons. Et maintenant, nous avons cet élément appelé élément de sous-menu, et il y a une flèche pointant vers la droite, indiquant qu'il s'ouvre, et voici notre nouvel élément là. C'est mon nouvel article. Allez-y, appelons tout cela notre configuration. Et passons à notre menu C'est notre menu final, je crois, n'est-ce pas ? Et nous pouvons nous connecter. Et nous pouvons connecter un signal. Quel signal ? Eh bien, ce n'est pas clair. Jetons donc un coup d' œil au menu contextuel. Méthodes. Nous n' examinons pas ces propriétés de thème, ces constantes, ces polices, ces tailles de police, ces icônes, ces styles, ces signaux. Allons-y. Identifiant focus, pression sur identifiant, pression sur index et changement de menu. Ce sont tous les signaux que nous pouvons examiner, et rien qu'en y pensant immédiatement, j'imagine que nous allons examiner ID Press ou Index Press. Émettre lorsqu'un élément d'un index est pressé ou que son accélérateur est activé. L'accélérateur a à voir avec le multi, le multi-états. Et jetons un coup d'œil à l'ID press, émise lorsqu'un élément d'un identifiant est pressé ou qu'il est activé par accélérateur. Non, si l'ID est négatif, soit explicitement, soit en raison d'un débordement, cela reviendra à l'index correspondant à la place La question est donc de savoir lequel voulons-nous examiner ? Eh bien, je pense que je vais utiliser l'index pour cela. Je vais donc connecter ma presse à index. Entrez, connectez la presse à index. Ce sera un joueur connecté à Self. Et nous dirons que nous appellerons cet article. Je vais l'appeler élément sélectionné, et je vais créer une nouvelle fonction pour lui. Eh bien, je suppose que c'est une presse indexée, nous allons obtenir un index ici. C'est mon hypothèse, donc je vais le découvrir. Je vais imprimer l' index, et nous verrons si cela fonctionne. Si ce n'est pas le cas, nous devrons revenir en arrière, revoir le signal. Dossier. Si je clique, je quitte, j'ai l'index trois, un nouveau fichier, l'index zéro. OK, donc cela fonctionne exactement comme je le pense. Et bien sûr, si je vais dans le nouveau menu, c'est mon nouvel article ici, cliquez dessus. Je ne vais rien obtenir parce que cela aura son propre signal indiquant que vous devrez vous connecter. Nous avons fait fonctionner l'index. Génial. Que pouvons-nous faire maintenant ? Eh bien, nous pouvons jeter un œil à notre menu bio et voir quelles sont nos options. Oh, j'espère que ça ne s' affichait pas tout le temps. Donc, les éléments sont sélectionnés dans l'index, et notre élément va juste être menu fichier, un point pour obtenir le texte de l'élément, pour transmettre l'index. Ensuite, nous allons juste faire une déclaration de match ici. Donc, faites correspondre l'élément, et nous allons faire correspondre ce texte s'il est égal à new file, open, save quit, et nous allons créer le bloc de code correspondant. Maintenant, pour arrêter, nous allons simplement faire Get tree point quit. Donc, si nous devions l'exécuter et sélectionner Quitter dans notre menu, notre programme devrait se fermer. Et c'est le cas. C'est ainsi que vous le configureriez pour qu'il fasse tout ce que vous devez faire. De toute évidence, vos options seront différentes et elles varieront en fonction de votre application. Mais il y a comment procéder et configurer ces éléments afin de les faire fonctionner. Vous devez donc connecter un signal. Dans mon cas, j'utilise le signal de presse index au lieu d'un identifiant. Ensuite, je transmets simplement l'index pour obtenir le texte des éléments. Ensuite, je fais correspondre le texte et j'exécute la section de code appropriée. D'accord. J'espère que c'était clair. J'espère que je n'ai rien bloqué de trop important au cours de cette période. Mais c'est ainsi que vous pouvez procéder et créer des menus pour vos applications si vous optez pour le logiciel. Bien sûr, tous les programmes n'ont pas besoin de barres de menu, mais pour ceux qui en ont besoin, il serait bon de savoir comment le faire. 77. Qu'est-ce que les particules: Très bien, tout le monde, bon retour. Et nous allons aller de l'avant et parler des particules aujourd'hui. Aujourd'hui, les particules sont un monde fascinant qui entoure les particules et les systèmes de particules et systèmes de particules et leur rôle crucial dans le développement de jeux. Les systèmes de particules sont un outil puissant qui nous permet de créer des effets visuels fascinants en ajoutant une touche de magie et de réalisme à nos jeux Que sont exactement les systèmes de particules ? Eh bien, imaginez de minuscules entités dynamiques qui pourraient apparaître, se déplacer et interagir avec le monde de manière chaotique mais contrôlée. Les systèmes de particules sont un ensemble de petites entités connues sous le nom de particules, se réunissent pour effets époustouflants tels que de la fumée, du feu, des étincelles, des sorts magiques et même des objets auxquels vous n' auriez pas pensé, comme des chauves-souris qui sortent rapidement d'une grotte lorsque vous y entrez Il peut s'agir de particules. La magie des systèmes de particules réside dans leur capacité à créer l'illusion de phénomènes complexes à l'aide de simples éléments individuels, qu'il s'agisse de créer un ciel étoilé ou une puissante explosion Les systèmes de particules nous donnent la flexibilité nécessaire pour créer des expériences immergées et curatives visuelles pour nos joueurs. Maintenant, vous pouvez le faire en deux D ou en trois D. Et les systèmes, pour la plupart, fonctionneront de la même manière. Il peut y avoir quelques petites différences. L'une d'entre elles, bien sûr, cette dimension supplémentaire dont nous devons nous soucier, ce qui est tout à fait naturel lorsque l'on passe de deux D au rouge. Et c'est à quel point il est facile de créer des particules dans le moteur Gatto ici Comme vous le voyez ici, je viens d'ajouter des particules de GPU dans ma scène. J'utilise juste l' icône comme texture. Tout ce que je vais faire, c'est traiter le matériau, et je vais sélectionner le matériau utilisé pour le traitement des particules. Et juste comme ça, vous pouvez voir que des particules agissent déjà dans le moteur. Maintenant, il s'agit simplement de peaufiner et de modifier un tas de valeurs différentes pour faire bouger les choses Eale augmenterait simplement sa durée de vie. Et regardez ça. Cela les augmente peut-être de 50 %. Et voilà. Nous avons ce système simple, mais techniquement, il s'agit d'un système de particules composé uniquement d'une icône. Et lorsque vous optez pour des choses comme les trois D, vous pouvez utiliser ce système de particules pour créer des éléments supplémentaires tels que des effets météorologiques tels que la pluie et la neige. C'est bon. J'espère que cela vous a permis savoir exactement ce que sont les particules, les différentes manières dont elles peuvent être utilisées, et j'espère que cela vous a donné envie de commencer à jouer vous-même avec le système de particules. 78. Créer un feu en 2D: C'est bon. Tout ce que j'ai ici, ce les particules deux D de mon GPU ajoutées à une scène. Et à partir de là, nous allons continuer et créer un effet de feu en deux D. Maintenant, vous pouvez aller de l' avant et, bien sûr, expérimenter davantage, augmenter votre feu, faire quelque chose d'un peu plus unique pour vous-même. Si tu le voulais, euh, allons-y et intervenons. Maintenant, je vais utiliser une cigarette. Qu'est-ce que c'est ? Texture de fumée. Et vous pouvez les trouver partout sur Internet. Celui-ci provient spécifiquement de Kenny Particle Pack ou Kenny's Particle Pack. Et vous pouvez le trouver, je crois, sur Kenny point NL. Il contient de nombreux actifs gratuits avec lesquels vous pouvez jouer. Je vais donc simplement prendre cette fumée et l'intégrer ma texture. Pour mes particules ici. Maintenant, je vais passer au matériau ici, et je vais cliquer sur la flèche ici, et je vais simplement sélectionner un nouveau matériau de traitement des particules. C'est bon. Et c'est ce que j'ai obtenu. Maintenant, c'est assez gros. Donc, la première chose que je veux faire est d' ajuster cette échelle. Et je vais passer à la section des échelles située à l' intérieur de mon matériel. Accédez à la courbe d'échelle et sélectionnez une nouvelle texture de courbe, ouvrez-la, ouvrez ma courbe. Et juste parce que je sais déjà ce que je vais mettre ici, je vais descendre à environ 0,34 pour le côté gauche et le côté droit va arriver à la bonne place tout en bas Et c'est avec cela que je vais travailler. Maintenant, je reviendrai peut-être le modifier plus tard, mais c'est par là que je commence Très bien, alors commençons par le début, le hasard dans le temps, c'est bon Date. Nous pouvons faire une remarque. Dans certaines situations, utilisez une sphère et vous pouvez contourner cela, mais je vais juste utiliser un point. Drapeaux à particules. Nous n'avons besoin d'aucun d'entre eux. Direction. Eh bien, nous ne voulons aller nulle part sur le X, mais nous voulons aller quelque part sur le Y. Maintenant, nous voulons aller dans la direction négative sur le Y parce que nous voulons monter La gravité, nous pouvons simplement la supprimer si nous le voulons. Et pour ce qui est de la vélocité initiale, je vais dire 32. Je veux y jeter un œil. Ça ne mène vraiment nulle part. Nous augmentons ce chiffre en jouant un peu avec cela, afin de voir que cela augmente. Et si j'augmentais simplement ma durée de vie à 2 secondes ? Nous pouvons donc voir que cela commence à prendre forme. Je vais donc juste aller de l'avant et jouer avec certains d'entre eux ici. Je vais peut-être réduire mon écart à 16. Maintenant, nous n'avons pas beaucoup de particules. Nous ne travaillons qu' avec huit, c'est pourquoi cela a l'air tel qu'il est. Mais que se passerait-il si nous arrivions au montant indiqué en haut de la page et que nous passions peut-être même à 50 ? OK, c'est regarder d'un peu plus près un feu. Et si je reporte ma durée de vie à une durée de vie, à quoi ressemblerait-elle ? Ça a l'air d'aller bien. Je pense que je vais modifier un peu mon échelle ici au début le moment, je suis assis sur 0,19 pour le début. Nous verrons comment cela se passe. Et bien sûr, avec un feu, il va nous falloir de la couleur. À l'intérieur de la section des couleurs, je vais accéder à mon dégradé de couleurs. Et dans le menu déroulant, c'est comme une nouvelle texture dégradée. Où est-ce que c'est passé ? Ça y est. Je vais donc cliquer sur mon dégradé de couleurs maintenant, puis sur ma texture dégradée. Maintenant, je vais cliquer sur la section noire. Je vais le transformer en jaune. Je vais cliquer sur ma section blanche , l'insérer peut-être à mi-chemin, et je vais la transformer en rouge ou en orange. Je vais juste cliquer sur ma texture à une position aléatoire pour ajouter un autre emplacement. Et avec ça, je vais juste réduire complètement l' opacité Maintenant, nous avons en quelque sorte le fondu que vous voyez ici en haut. Et je vais juste y mettre un peu. Maintenant, voyons voir. Peux-tu faire la différence si on y va comme ça ? Nous ne le pouvons pas. OK, donc je te montrerai ce petit truc plus tard. D'accord. Nous avons donc notre jaune, notre orange et une section transparente à l'intérieur de ma palette de couleurs. Maintenant, pour que cela ressemble davantage à du feu et non à ce nuage que nous sommes en train de regarder, je vais faire défiler la page jusqu'au matériau sous l'élément Canvas. Je vais cliquer sur le menu déroulant. C'est comme du tissu en toile. Et pour le mode de fusion, je vais juste le configurer pour l'ajouter. C'est bon. Maintenant, avec cette seule modification d'option, nous avons déjà quelque chose qui ressemble beaucoup plus à un incendie Maintenant, si vous voulez avoir ce centre blanc sur votre feu, il vous suffit de prendre votre couleur et voir comment j'ai obtenu Oh, vous ne pouvez pas voir là-dedans. C'est bon. Un moment. C'est bon. Je vais ouvrir cette capture d'écran pour vous. Pourriez-vous voir comment j'ai ma couleur juste là, sur le bord ? Eh bien, si vous voulez ce centre blanc, le centre chaud blanc, vous suffit éloigner un peu du bord, il vous suffit de vous éloigner un peu du bord, et vous verrez que plus vous le tirez de près, plus la zone blanche sera grande . Il y a donc un petit conseil que vous pouvez y appliquer pour votre couleur d'origine. Je vais juste l' éloigner un peu, peut-être me rapprocher un peu plus de l'orange. Nous ne voulons pas aller jusqu'à l'orange, d'accord, parce que nous ne voulons pas que l' orange devienne orange Je vais prendre un joli jaune-orange, un orange doré et m'éloigner du centre pour obtenir ce joli centre blanc. C'est bon. Et avec ça, nous avons en fait un feu allumé ici. Maintenant, en fonction de ce que vous recherchez, le montant peut varier. Donc, si nous passons à 12, nous pouvons obtenir quelque chose comme ça, nous perdons le centre névralgique, mais c'est peut-être quelque chose de plus proche de ce que vous recherchez. Huit était la valeur par défaut. Ainsi, en fonction du visuel artistique que vous recherchez, vous pouvez modifier le montant ici en fonction de ce qui vous convient et de ce que vous voulez C'est pourquoi, lorsque vous regardez un feu, par exemple, dans un jeu, si vous avez une machine aux spécifications inférieures, vous risquez de perdre un tas d' images en regardant le feu Et puis, lorsque vous détournez le regard, vos images rebondissent parce qu' un feu peut contenir une tonne de particules. Surtout si nous parlons de plus en trois D. Je suppose, mais c' est pour cela que les particules peuvent avoir, disons, 1 000 parties, et chacune de ces parties et chacune de ces parties aura sa propre texture. C'est donc presque comme ajouter 1 000 sprites à votre écran, n'est-ce pas ? Tout d'un coup. Eh bien, avec ça, nous avons un feu. Je vais baisser le mien à 50 parce que je ne pense vraiment pas que nous en ayons besoin de 100. Et nous pourrions entrer et jouer avec quelque chose comme une variation de teinte, qui modifierait la teinte, qui ressemblerait à la couleur Donc, si nous devions dire, augmenter le minimum jusqu'à 0,2 , puis changer le maximum jusqu'à 0,6, ou, vous savez quoi ? Augmentons simplement le maximum à fond. Et regardez ça. Maintenant, nous avons plutôt ce feu magique. C'est ce que nous avons à venir. Maintenant, nous pourrions l'utiliser puisqu'il s'agit d'une forme verticale, nous pourrions l'utiliser pour quelque chose comme un feu de camp Maintenant, si c'était pour D, évidemment, nous tweeterions probablement l' échelle et rendrions les choses encore plus petites, encore plus petites que cela. Mais bien sûr, cela dépendra de la taille de la texture que vous utilisez au départ. Vous pouvez donc voir qu'avec cela, nous pouvons avoir ces deux variantes et avoir davantage ce look magique. Et comme pour les autres sections, nous pouvons ajouter une courbe si nous voulons le faire pour notre variation. Et nous pouvons jouer avec eux, et cela affecterait la base de Bien que le mien ne change pas. C'est un peu intéressant. La valeur minimale est zéro, ce que nous avions là. C'est très intéressant. Cela n'affecte pas. Peut-être que c'est un petit bug avec cette courbe ou quelque chose comme ça pour le moment. Je ne sais pas Mais vous pouvez voir comment la variation de teinte peut instantanément ajouter une touche magique à toutes ces couleurs. Si vous le souhaitez, vous pouvez peut-être modifier l'angle ou la vélocité si vous le souhaitez, cela a à voir avec les virages, n'est-ce Votre Texas tourne dedans, donc vous voyez si nous le retournons complètement vers le haut, cela fait vraiment tourner une balle. Je vais juste le baisser à nouveau. L'orbite sera comme vous le voyez, le tout se déroulera une orbite autour de votre point ici au milieu. Maintenant que c'est là-haut, évidemment, cela ne fera aucune différence, mais voilà, vous pourrez assister à des tournages. Maintenant, vous pouvez différencier ces différents types d'effets, et ce sont tous ces petits effets que nous reprenons et assemblons pour créer ces effets visuels géniaux dans les jeux Mais je pense que c'est tout ce dont nous avons besoin ici, vous donner une bonne base pour partir ? durée de vie dépend évidemment de la durée de cet incendie . Vous voyez pourquoi on en prend une petite bouffée. Et c'est parce que les autres incendies existent toujours. Et nous lui avons dit qu'il pouvait y avoir une cinquantaine à la fois. Ils durent 200 secondes, donc ils vont vivre un bon bout de temps. Mais vous voyez, une seconde, évidemment, ils meurent vite, donc ils vont continuer à réapparaître. Un seul coup signifie que ça ne va passer qu'une seule fois, juste un pouf rapide C'est donc quelque chose que vous utiliseriez pour quelque chose comme une explosion. Le courant est réémis ici en haut. Et nous pouvons facilement l'adapter. Donc, si nous disons zéro sur la direction vous pouvez en voir un sur le X et que vous pouvez voir si nous avons prolongé la durée de vie ou quelque chose comme ça, vous pouvez voir immédiatement comment nous pouvons nous en sortir après un feu de camp Et puis, avec quelques légères modifications, nous pouvons désormais modifier cela en une attaque au lance-flammes ou en une haleine de feu constante pour un dragon ou quelque chose comme nous pouvons désormais modifier cela en une attaque au lance-flammes ou en une haleine de feu constante pour un dragon ou Et tout ce que nous avons à faire c'est faire peut-être trois très petits ajustements Mais bon, je vais m'empêcher de continuer. Je vais aller de l'avant et en rester là. Voilà. Nous sommes allés de l'avant et nous avons créé un feu à deux D pour notre monde. Donc, si vous vouliez ajouter quelque chose comme de la fumée, vous l'ajouteriez simplement en tant que particule secondaire, n'est-ce pas ? Donc, en guise de démonstration rapide, nous avons juste une autre particule. Nous voulons que la particule soit à l'origine de notre feu. Je vais réintégrer la texture de ma fumée. Sur un matériau traité par particules, modifiez mon échelle avec une nouvelle courbe. Et tout ce que nous faisons, c'est simplement passer en revue les mêmes étapes que précédemment. Comme nous l'avons fait avant. Mais nous y sommes allés. Je vais opter pour la couleur au lieu d'une rampe. Je vais juste utiliser un gris foncé sur ma couleur ici. Fixons notre orientation. Négatif un sur le Y. Donnez-nous une certaine vélocité initiale La gravité est réglée à zéro. Ma propagation doit être similaire à celle de la fumée. Je vais également ajouter un élément à cela. Un élément Canvas juste pour que je puisse l' ajouter, le définir comme additif. Il y a quelque chose d'un peu plus fumé, comme vous le voyez là-bas. Et comme vous le voyez, rien qu'en apportant ces quelques modifications, nous avons presque obtenu le look que nous recherchions. Le montant ici et huit, peut-être que nous en ajouterons deux pour 12, mais tout ce que nous avons, c'est que cela ne dure pas aussi longtemps. Je vais juste aller de l'avant et augmenter un peu la vitesse. Allons-y. Je vais juste le déplacer à nouveau. Vous pouvez voir maintenant que cette fumée s'échappe de notre feu. C'est vrai. Alors voilà. Je vais le baisser, augmenter mon niveau de fumée un peu plus. Mais ils ont juste cela simple et ces quelques petits soucis dès le départ Et vous voyez, nous avons mis de la fumée sur notre feu. D'accord. Donc, avec ça, nous avons un feu. Il y a de la fumée avec. Ça suffira pour celui-ci. Ensuite, nous verrons comment créer un feu à l'aide de particules en trois D. De cette façon, vous pourrez vous faire une idée de la similitude et de la différence entre deux D et trois D lors de la création de particules et de vos connaissances qui seront transférées de l'un à l'autre. 79. Créer un feu en 3D: Très bien, tout le monde, nous allons recommencer à créer un effet de feu, mais cette fois en trois D. Donc, j'ai juste une scène en trois D ici, et je vais continuer et ajouter un oups. Ajoutez simplement des particules GP en trois D dans notre scène en trois D. Au début, vous pouvez être un peu perplexe car vous ne voyez de toute façon aucune texture. Eh bien, pour créer ce feu, nous devons faire, puisque nous utilisons deux sprites en D nous allons passer à nos passes de largage. Passez à la première passe. Et dans votre menu déroulant, il vous suffit de sélectionner un maillage uni. Ouvre ça. Maintenant, vous voyez que c'est pointé vers le haut. De toute évidence, cela ne marchera pas parce que nous allons voir les choses, vous savez, d'un point de vue secondaire, n'est-ce pas ? Nous avons donc besoin qu'il soit face à nous au lieu de faire face au ciel. Donc, à l'intérieur de notre première passe, à l'intérieur de notre filet d'avion, nous regardons vers le bas. Nous voyons l'orientation, et nous pouvons changer cela dans ces différentes directions. Et si vous voyez le régler sur la face X, nous pouvons voir qu'il sera face à nous, ce qui est génial. Maintenant, l'autre problème que nous avons, c'est évidemment que si nous faisons demi-tour, le feu, c'est vrai, l'avion disparaît parce que le dos n'est pas rendu. Nous regardons de côté, nous ne pouvons pas vraiment le voir, nous ne pouvons donc le voir que d'un côté. Ce n'est pas génial. Nous devons faire ce que l'on appelle un panneau d'affichage Mais j'ajoute ce panneau d'affichage pour que nous puissions toujours le regarder Nous allons aller de l'avant et ajouter du matériel ici, juste en fonction notre orientation, en ajoutant simplement un matériau standard. Et à l'intérieur, si nous entrons et que nous faisons défiler la page vers le bas, nous verrons une section intitulée Billboard Maintenant, si nous l'ouvrons et que nous réglons le moule sur Activé. Eh bien, on dirait qu'il a tout simplement disparu de nous. Essayons donc pourquoi un panneau d'affichage. Eh bien, ça ne marche pas non plus. Que diriez-vous d'un panneau d'affichage à particules ? Maintenant, vous vous demandez peut-être pourquoi aucune de ces options ne fonctionne sous un panneau d'affichage Et pour nous, étant donné que nous utilisons des particules ici, nous devons définir les choses différemment. Aucune de ces options de panneau d'affichage ne fonctionnera donc réellement pour nous Donc, pour l'afficher correctement , nous devons en fait examiner notre matériau de traitement et, bien sûr, ajouter ce processus de fabrication de particules Et puis, en dessinant, vous voyez, c'est toujours pareil, rien n'a changé. Nous allons à la ligne du transformateur et l'envoyons à Z ou Z, panneau d'affichage, et d'accord, rien ne fonctionne là-bas Passons à la suivante, large à la vélocité. Jetez-y un coup d'œil. OK. OK, il semble que rien ne fonctionne vraiment ici. Eh bien, c'est intéressant. Maintenant, vous êtes peut-être un peu perplexe. Pourquoi il ne se passe rien ? Pourquoi il ne se passe rien ? C'est pourquoi il est important que je veuille également passer en revue cette section en trois D au lieu de simplement l' appeler particules et de dire : «   Hé, votre transfert de connaissances en deux D est terminé, car les trois D peuvent être un peu confus comme ça quand vous n'y avez pas travaillé. Donc, lorsque les lignes de transformation sont réglées sur un panneau d'affichage en Z ou en Z, nous devons également nous concentrer sur notre orientation, et nous la modifierons en face Z ou en face Z. Et maintenant nous pouvons le voir. Et lorsque nous tournons autour de nous, nous pouvons toujours le voir. Il sera toujours face à la caméra. Très bien, donc c'est génial. Nous pouvons donc maintenant commencer à travailler à la création de cet acheteur pour nous. Eh bien, nous allons entrer dans notre matériel dans notre avion, n'est-ce pas ? Donc, les passes de largage en passent une, notre avion, à l'intérieur de celui-ci, le matériel est lu en orientation. Et à l'intérieur d'Albedo, comme dans le trois D normal, tout se ressemble Nous allons passer à la texture, et je vais juste apporter ma fumée. Et vous verrez qu'il y a un fond noir. Eh bien, ce n'est pas sympa. Ce n'est pas vraiment ce que nous avions prévu. J'ai pensé, eh bien, à ce à quoi nous nous attendions. Donc, ce que nous faisons pour cela, c'est que nous arrivons à la section de transparence et que nous la définirons sur Alpha. Et vous avez d'autres options ici : les ciseaux Alpha, hachage Alpha et le prépassage en profondeur Maintenant, selon ce que vous faites, cela peut avoir des effets différents. Mais pour nous, la seule chose que nous voulons spécifiquement, c'est Alpha ici. Et pour le mode de fusion, nous allons le configurer pour ajouter, comme nous l'avons fait en deux D, lorsque nous avons ajouté cet élément de toile, le matériau. OK, alors maintenant nous nous rapprochons de ce à quoi nous sommes habitués . L'appel n'a pas vraiment d'importance. Nous pouvons le laisser au verso juste pour qu'il ne s'affiche pas l'autre côté puisque nous ne voyons jamais l'autre côté de toute façon. Et c'est ce que signifie « appeler ». Donc, si nous mettons l'avant, il est toujours là, mais il ne rend pas le devant. Cela rend le dos, mais comme le devant est toujours face à nous, nous ne le verrons jamais. Nous allons donc le régler ou le laisser sur le dos par défaut, car nous ne voyons jamais le dos. On ne voit que le front. Et c'est quelque chose qui améliorera également les performances de vos jeux, si vous créez quelque chose en trois D. De cette façon, vous ne rendez pas ce que vous ne pouvez pas voir. Maintenant, pour ce qui est de l'ombré, si nous faisons demi-tour, vous verrez qu'il fait noir ici. Et évidemment, s'il s'agit d'un feu, il a sa propre lumière, donc cela n'a pas vraiment de sens le feu soit sombre d'un côté et brillant de l'autre. Nous allons donc passer à la section d'ombrage de notre matériau, et à partir de chaque pixel, nous allons la définir sur non ombré Maintenant, la dernière chose à faire à l'intérieur de ce matériau est d' activer l'utilisation comme albédo sous le vertex shader activer l'utilisation comme albédo sous le Et si nous ne l'utilisons pas, nous ne pourrons pas utiliser la couleur nos particules, la variation de teinte ou le dégradé de couleurs. Nous ne serons pas en mesure d'utiliser tout cela. Il restera tout blanc une fois qu'il sera éteint. Nous devons utiliser la couleur ici à Albedo, et c'est tout. Maintenant, évidemment, ce n'est pas ce que nous voulons. Nous voulons réellement utiliser le dégradé de couleurs dans ce domaine, c'est pourquoi nous allons utiliser cet albédo et l'activer sous la couleur des sommets Très bien, alors dessinez une passe. Nous pouvons complètement minimiser cette section, et c'est terminé. Nous pouvons simplement nous intéresser spécifiquement au matériau de traitement ou à nos particules. Maintenant, comme avant, nous avons notre temps, notre forme d'émission et tout le reste. Maintenant que nous sommes en trois D, je vais transformer la forme de notre émission en sphère, et je vais régler mes rtu à 0,4 Maintenant, en gros, cela va nous donner un peu de profondeur pour que ça n'ait pas l'air aussi plat Drapeaux d'article, nous n' avons à nous soucier de cette orientation. Eh bien, nous voulons aller dans l' autre sens, non ? Nous avons donc notre Y défini, que c'est un Y négatif ici ? Eh bien, la gravité nous tire vers le bas. Et si la baisse est négative, nous voulons passer au positif. Je vais donc simplement dire la gravité à zéro et régler notre Y à un positif avec une direction. Vélocité initiale, je vais la régler à quatre. Et la raison pour laquelle je vais si bas, que vous pouvez voir que quatre est en fait un nombre très élevé, alors qu'en deux D, lorsque nous examinons les pixels, c'est un très, très petit nombre. Maintenant, nous pouvons le voir s'étendre dans cette immense zone directionnelle, et c'est parce que notre écart est de 45, alors réduisons ce chiffre à environ 12. Maintenant, nous pouvons avoir quelque chose d'un peu plus raisonnable pour un incendie. On y va. Et même dans ce cas, vous voudrez peut-être le réduire encore plus que cela. 12, ça me ferait du bien de fumer. Et je vais y aller et, comme nous l'avons fait auparavant, ajouter une nouvelle texture de courbe à mon échelle. Et je vais le réduire pour commencer, puis le réduire vers la fin et trouver quelque chose qui fonctionne pour moi Et oui, je pense que le simple fait de passer de un à zéro comme ça au fil du temps, je pense que ce sera bien. Ma couleur, je vais utiliser un dégradé de couleurs, une nouvelle texture dégradée. Et comme avant, je vais opter pour une sorte de jaune ici au début. Je vais y jeter de l'orange quelque part. Vers la fin, nous serons transparents. Si je le déplace simplement, que je trouve quelque chose comme ça, et je pense que je vais lancer un autre signal orange de l'autre côté. Juste pour vraiment, vraiment influencer beaucoup de choses là-bas. Je ne mets pas de noir dans le haricot. Juste pour obtenir un meilleur gradient de feu, même si, comme vous le voyez, c'est parfaitement bien ici. Je vais juste mettre un autre noir de ce côté. C'est bon. Donc, juste comme ça , il y a un beau feu ici. Et bien sûr, selon la quantité de particules que vous voulez mettre ici, peut-être 200, comme vous le voyez, cela fera une énorme différence sur l'aspect visuel. Huit n'est donc évidemment pas le chiffre que nous voulons obtenir. 50 que nous utilisions en deux D, c'est plutôt correct. Vous pourriez donc probablement vous en tirer avec 50 points de performance au lieu de 200, mais vous pouvez toujours opter pour 200 si vous le souhaitez. Mais dans l'ensemble, nous sommes allés de l'avant et nos deux feux en D sont recréés ici en rouge. Et, bien sûr, nous pouvons entrer et jouer avec le Q pour avoir un feu magique, créer notre variante Que. Maintenant, allons-y et nous pourrions regarder la radio linéaire à vitesse angulaire. Tu peux jouer avec tout ça si tu veux. L'angle est l'angle sous lequel la texture va apparaître Donc, si tu voulais jouer avec ça, je le pourrais. Donc, si je monte, disons jusqu'à 45 degrés, cela donnera un peu plus de variation et, espérons-le, le fera paraître moins copié-collé, rendra un peu plus beau Mais dans l'ensemble, c'est tout. Tout le reste sera exactement pareil à deux D ici. Petite configuration sûre que nous avons dû faire au début. Et vous verrez cette sphère si vous modifiez le rayon de la lance En gros, plus nous le faisons grossir, plus le feu sera important. Je vais juste remettre ça en arrière. D 0.4, juste pour regarder. Ouais, voilà. ce que nous avons. Donc , je dois mentionner ici que puisque vous êtes en trois D, vous aurez un environnement mondial, bien sûr, et si vous voulez ajouter de la fumée, ce sera exactement la même chose que nous l'avons fait en deux D, juste à côté de la fumée, faites le montage comme nous l'avons fait en trois D ici et mettez-la simplement à l'intérieur du feu. Mais vous aurez un environnement mondial en trois D à un moment donné. Si vous créez à peu près n'importe quel jeu en trois D, surtout si vous voulez avoir une sorte de post-traitement. Donc, compte tenu de l'environnement mondial, j'en ai simplement ajouté un à la scène. Et je vais aller dans un nouvel environnement, et c'est là, bien sûr, que vous intervenez, et je crois que j'en ai parlé à un moment donné. Nous allons entrer et créer un ciel. C'est arrivé dans le ciel, créez un nouveau ciel. Je dis « Seeural Sky » comme ça. Et nous pouvons préparer notre ciel pour un jeu en trois D. Mais ce que vous pouvez également faire dans cet environnement mondial, c'est que si nous arrivons à briller, l'activer. Regardez, notre feu a cette petite lueur orange et ce qui est bien, surtout avec le feu ici, c'est le mode mélange, si nous le réglons additif, jetez-y un œil. Maintenant, nous avons cette apparence ardente s' en dégage, comme une fleur, n'est-ce pas ? Et nous pouvons modifier Bloom ici. Si on le voulait, je pourrais devenir complètement fou très vite. C'est là que serait votre option de floraison si vous le vouliez. Et votre seuil HDR, vous pouvez vraiment entrer et modifier toutes ces choses, et vous pouvez voir exactement comment cela affecterait quelque chose comme notre feu ici Vous voyez, nous avons même eu ce scintillement. Je voulais simplement vous montrer comment l'environnement mondial peut affecter vos trois particules D , par des options telles que votre floraison, votre mode de mélange, l' activation de la lueur, etc. Mais pour le moment, je vais le faire ici pour trois particules D. 80. Comment coder n'importe quel mécanique: Très bien, voyons donc comment nous pouvons coder pratiquement tous les mécanismes auxquels nous pouvons penser Donc, pour cet exemple, nous allons procéder à un double saut pour notre plateforme ou notre personnage Little Devine. Et si nous y réfléchissons, nous devons savoir que nous allons sauter du sol et sauter une fois en l'air. Maintenant, pour ne pas perdre de vue ces deux fois, nous devons savoir combien de fois nous avons sauté afin de savoir si nous le pouvons ou non. Donc, pour cela, je vais me concentrer sur les variables pour en tenir compte, n'est-ce pas ? Le nombre de sauts par défaut est nul. C'est bon. Et lorsque nous sautons du sol, évidemment, notre nombre de sauts doit augmenter d'un plus égal à un. Cool. Maintenant, qu'en est-il lorsque nous ne sommes pas sur le sol ? Mais lorsque nous ne sommes pas sur le terrain, nous pouvons faire la même chose qu' ici, en vérifiant si nous appuyons sur notre bouton de saut, et ceci où nous pouvons dire que nombre de sauts est inférieur à deux. Bien, cela signifie que nous pouvons sauter quand nous avons zéro et nous pouvons sauter quand nous en avons un sur notre comptoir. Cela nous donne deux sauts, non ? Zéro et un. Et tout ce que nous allons faire ici, c'est la même chose que lorsque nous sautons normalement, n'est-ce pas ? Nous augmentons et augmentons notre nombre de sauts. Maintenant, vous allez remarquer un problème ici. Nous allons sauter une fois au sol, une fois en l'air, non ? Nous avons notre double saut. Mais si nous réessayons, cela ne fonctionne pas. Nous en sommes revenus à un seul saut. Maintenant, pourquoi pensez-vous que c'est le cas ? Eh bien, c'est parce que notre compte ne se réinitialise jamais à aucun moment, n'est-ce pas ? Ça commence à zéro, non ? Jetons un coup d'œil à ça. Nous partons de zéro et nous sautons. C'est un, deux, trois, quatre, cinq, six. Donc, après avoir fait ce double saut initial, nous en sommes déjà à deux ou plus. Cette déclaration ne sera donc jamais vraie, nous ne pourrons donc plus jamais faire ce saut en vol. qui signifie que nous devons réinitialiser ce nombre de sauts à un moment donné. Alors, quand remettons-nous ce décompte à zéro ? Quand allons-nous permettre au joueur de faire son double saut en arrière ? Eh bien, en général, vous leur permettez de faire leur double saut en arrière une fois qu'ils sont revenus au sol. D'accord ? Eh bien, comment savons-nous que nous sommes sur le terrain ? Eh bien, nous avons déjà ce chèque, si nous sommes par terre. Donc, si nous sommes sur le sol, nombre de sauts est égal à zéro, non ? Nous venons de le réinitialiser. Et maintenant, nous avons ce double saut. Allons-y. vous suffit donc de ralentir, réfléchir au problème et à ce que vous essayez de faire. Pensez-y de manière logique et décomposez-le en chaque étape Et si vous le faites, vous pouvez virtuellement vous frayer un chemin en créant n'importe quel mécanisme qui vous vient à l'esprit. D'accord. Voici donc comment vous pouvez créer à peu près tous les mécanismes auxquels vous pourrez penser pour vos jeux. Et cela peut également fonctionner de la même manière pour la création de votre logiciel. Bien sûr, il ne faut pas opter pour des sauts, mais peut-être implémenter une fonctionnalité ou implémenter un outil, une action ou quelque chose 81. Gravité et saut: Bien, nous allons donc parler ici de la façon dont nous pouvons ajouter de la gravité et créer un saut dans notre jeu Et je le fais ici dans leur section bonus parce que cela ne correspond pas vraiment à Roger en soi. Bien que vous puissiez y retourner si vous le souhaitez, vous pouvez essayer de l'ajouter à la version 3D. Mais Madness, parce que si vous créez deux jeux en D ou trois en D, vous devrez probablement être capable de sauter ou de travailler avec la gravité à un moment donné. Je vais donc le mettre ici de toute façon. Donc, ce que nous sommes arrivés ici en premier, je vais expliquer les trois types de corps physiques. Le corps statique, qui se trouve ici en bas, fonctionne comme notre plancher, et le corps statique est quelque chose qui ne bouge pas quoi qu'il lui arrive. Vous pouvez donc penser à cela comme au sol, à un arbre, à un bâtiment, n'est-ce pas ? C'est quelque chose qui ne bougera et qui n'aura aucun impact. Le corps rigide en deux D ici, qui se trouve sur le côté droit, notre photo est déjà par défaut. Configuré pour qu'on y applique de la physique. C'est donc quelque chose avec lequel on va juste interagir, pour quelque chose comme un ballon foot, n'est-ce pas ? Courir sur le terrain, donner des coups de pied. Ou si vous avez joué à Sky Rim, tout le désordre, à la nourriture, roues à fromage qui volent partout lorsque vous courez ou que vous faites des histoires ou que vous faites des histoires à Da, n'est-ce pas lorsque vous courez ou que vous faites des histoires ou que vous faites des histoires à Da, n'est-ce Ce sont tous des corps rigides. C'est quelque chose qui agit lorsque quelque chose interagit avec lui ou qu'une force lui est appliquée Maintenant, si nous devions exécuter cela, vous verrez le corps rigide tomber directement vers le bas à cause de cette physique naturelle, et le corps statique ne bouge pas C'est pourquoi nous l'utilisons comme plancher. Et bien sûr, d'autres choses comme les bâtiments et tout ça. Maintenant, quel que soit le type de corps physique que nous utilisons ici, vous avez une forme de collision, qui définit la forme de ce corps physique spécifique. Et ils ont tous des sprites juste pour que nous puissions voir visuellement ce qui se passe ici Et comme vous le savez, le corps de personnage de Froger est celui que nous utilisons lorsque le joueur doit contrôler le personnage défini et qu'il doit y avoir des entrées Il y a de rares occasions où vous pouvez utiliser un corps rigide, mais ce sera très spécialisé et spécialisé à ce moment-là. Allons-y et examinons le corps de notre personnage. J'ai deux variables ici, une pour notre gravité, une pour notre hauteur. C'est bon. Et dans le cadre de notre processus ici. Encore une fois, cela devrait probablement faire l' objet d'un processus physique simplement parce que cela est lié au mouvement de nos corps physiques. Mais pour cet exemple, c'est bon. Maintenant, pour les utiliser au lieu du mouvement, nous allons utiliser la vélocité, et le corps d'un personnage possède déjà par défaut une propriété de vélocité à quatre points X. Donc, pour utiliser cette propriété de vélocité, nous devons utiliser move and slide ou move and collide Je vais utiliser Move and Slide ici. Maintenant, réfléchissons-y. Quand voulons-nous que la gravité s'applique ? Eh bien, nous voulons que cela ne s'applique que lorsque notre personnage est en l'air afin qu'il puisse être ramené sur terre, bien sûr, au sol. OK, eh bien, comment pouvons-nous dire si le personnage n'est pas au sol pour lui ajouter de la gravité Eh bien, c'est exactement ce que nous pouvons faire. Goto possède une fonction intégrée appelée is on the floor, qui effectue cette vérification pour nous permettre de voir si nous sommes sur le sol. Par défaut, le sens du haut est dans le sens négatif Y, donc cela signifie un Y positif. Lorsque nous entrons en collision avec un objet situé en dessous de nous, cela sera considéré comme Nous pouvons donc dire si et nous avons dit non. Et nous devons y ajouter notre gravité, non ? Donc, nous prenons notre vitesse, et nous sommes dans deux D et elle sera la même dans trois D. Nous accédons à notre axe Y. Et nous l'avons réglé avec notre gravité. Maintenant, nous ne fixons pas cela à notre gravité parce que nous voulons notre gravité nous tire vers le bas, n'est-ce pas ? Et au fur et à mesure que vous tombez, vous prenez l'élan et vous vous déplacez de plus en plus vite. C'est ainsi que les choses fonctionnent, et si le positif diminue, nous devons ajouter plus égal à la gravité. D'accord ? Donc, si nous jouons à ce jeu, nous verrons maintenant que le corps de notre personnage tombe, tout comme notre corps rigide. Joue-le encore une fois. Hein ? Le corps de notre personnage peut donc tomber un peu plus vite que notre corps glacé, mais vous voyez qu'ils fonctionnent de la même manière. C'est ainsi que vous appliqueriez la gravité à un personnage ou à un corps physique quelconque. D'accord. Alors maintenant, qu'en est-il du saut d'obstacles ? Eh bien, j'ai une variable en haut pour ma hauteur de saut, qui représentera la vitesse que nous avons dans les airs Eh bien, quand pouvons-nous sauter ? Eh bien, nous ne pouvons sauter que lorsque nous sommes au sol, non ? Ainsi, au lieu de vérifier lorsque nous ne sommes pas sur le sol, nous voulons vérifier que nous sommes bien sur le sol. Il est sur le sol. Et nous pouvons l'ajouter comme deuxième argument et simplement le dire, et nous appuyons sur notre bouton de saut, ou nous pouvons l'avoir sous forme d'indentation séparée ici, si cela vous convient, selon celui qui vous est le plus facile à suivre Il serait plus simple d'avoir les deux déclarations sur une seule ligne ici. Mais encore une fois, c'est à vous de décider. Vous voulez simplement essayer d'éviter d'avoir trop d' instructions imbriquées chaque fois que vous le pouvez Nous allons donc dire si l'entrée est action et nous ne voulons pas dire pressée parce que nous allons être assis là à rebondir comme un lapin Vous voulez donc dire « juste pressé » ou « juste relâché ». Donc, chaque fois que notre doigt descend ou remonte, c'est à ce moment-là que nous allons sauter. Et c'est une préférence personnelle. Je préfère me presser, et je vais régler ça sur mon upkey, mon travail et comment allons-nous monter Eh bien, nous faisons le contraire de la gravité, non ? Si la gravité nous tire vers le bas, nous faisons le contraire pour monter. Déterminons donc notre vitesse sur notre axe Y. Et si le positif nous tire vers le bas , le négatif remonte, donc moins est égal à notre hauteur de saut. Vous voyez, nous sommes au sol nous pouvons avancer et sauter. Donc, juste comme ça, nous avons déjà créé un mécanisme de saut simple pour nous. Et vous remarquerez que nous ne pouvons pas sauter lorsque nous sommes en l'air. Si je tape sur le bouton, nous ne pouvons sauter qu'une fois que nous touchons le sol. Et si vous voulez bouger, vous devez travailler à gauche et à droite avec votre vélocité comme dans la plupart des jeux, vous le ferez. Cela va fonctionner de la même manière que notre saut ici. Donc, si nous allons vérifier, je vais faire marche arrière, afin de m' assurer que nous sommes toujours sur le terrain. Je vais dire que je saisis, c'est de l'action. Et là où je vais dire reposez-vous tant que nous maintenons la touche gauche ou droite, nous voulons bouger. Je vais dire juste. Ensuite, nous allons vérifier notre vitesse, et nous allons passer sur l'axe X cette fois parce que nous nous déplaçons à gauche et à droite. Maintenant, si vous êtes en trois D, vous allez travailler avec l'axe X et l'axe Z, et cela va évidemment être plus dépendant. Mais pour nous, je vais juste y aller. Nous avons juste besoin du point de vélocité X pour cet exemple. Et si nous allons vers la droite, ce sera positif. Et nous pouvons continuer et simplement mettre à quelque chose comme dix, et je vais le copier pour l'autre côté ou pour la gauche, et s'il nous reste, cela signifie que c'est moins égal. Je vais faire en sorte que ce soit d'autre. Donc, si nous appuyons, nous sautons, puis nous avons une seconde chaîne séparée ici. Si on appuie sur la droite, on passe à X positif, sinon si on appuie sur la gauche, on passe à un X négatif Si on jette un coup d'œil, c'est parti. Oh, on y va. Coulissant d'avant en arrière. Donc, si vous ne voulez pas gagner cette vitesse, vous pouvez simplement la régler sur une vitesse de X égale, et cela vous permettra d' aller aussi vite immédiatement. Maintenant, comme vous pouvez le voir, nous allons un peu lentement. Voyons donc ce qui se passe si nous le déplaçons jusqu'à 100. Très bien, alors voilà. Et on peut toujours sauter pendant tout ce temps. Maintenant, nous avons un problème ici, dans ce cas, si j'arrête d'appuyer sur la gauche ou la droite, M E continuera dans direction parce que cela ne sera jamais réglé. Et c'est pourquoi cette chaîne doit être un bloc séparé. Donc, si nous appuyons sur la droite, voyons si nous appuyons sur la gauche, nous pouvons terminer cette chaîne avec un s de Velocity X égal à zéro. Et c'est tout ce que nous avons à faire. Et maintenant, il cessera de bouger lorsque nous arrêterons d' appuyer sur notre bouton. Et voilà notre saut. Allons-y. Très bien, alors voilà. Voici comment nous pouvons créer un saut et intégrer la gravité à vos jeux. Et je suppose que c'est une brève démonstration de la façon dont vous utiliseriez la vélocité au lieu de la position ou quelque chose comme ça. C'est bon. Ce sera donc suffisant pour cette courte présentation. Encore une fois, vous suffira de vous montrer comment utiliser la gravité et créer un saut, car c'est quelque chose que vous aurez probablement besoin de savoir lorsque vous créerez des concerts pour vous-même 82. Enregistrer et charger les fichiers: Très bien, parlons de la façon dont nous pouvons enregistrer des fichiers et des différents types de fichiers. Nous allons donc commencer par le fichier texte, le fichier texte classique ici. Allons-y et nous pouvons créer notre fonction de sauvegarde ici. J'ai une scène aléatoire ici. Ce script dessus. Ce n'est pas grave. Peu importe, il est enregistré juste pour que je puisse l'exécuter. Et je vais créer ma fonction, enregistrer du texte. C'est bon. Alors, qu'est-ce que nous devons faire ? Eh bien, pensez-y logiquement. Nous devons ouvrir un fichier quelque part. Nous avons besoin des autorisations d'écriture, non ? Parce que nous voulons écrire un fichier, l'enregistrer. Et nous voulons pouvoir modifier le contenu de ce fichier. Donc, la ligne Goto quatre avec D décrit deux ici, nous pouvons en fait faire la majeure partie en une seule Je vais donc enregistrer var F comme fichier ici. Et nous pouvons le faire proprement simplement parce que cela ne sera utilisé ici que dans cette seule fonction Ce n'est pas quelque chose qui va être utilisé partout. Donc ça ne servira qu'à une ou deux lignes, non ? Nous allons donc obtenir la classe d'accès aux fichiers, et c'est ce que nous appelons ouverte. Maintenant, même si le fichier n'existe pas, nous devons toujours l' ouvrir à cet endroit. En guise de chaîne, je vais transmettre Rs. En regroupant du slosh, nous devrions le mettre dans notre dossier de projet ici Et je vais aller de l'avant , lui donner un nom et dire que je vais l'appeler text test point TXT. Ensuite, le deuxième argument sera le mode que nous lui donnerons. Tout dépend de ce que nous faisons. Maintenant, nous sauvegardons un morceau de texte. Donc, comme je l'ai dit, nous voulons écrire dans ce fichier. Nous allons donc utiliser le point d'accès aux fichiers. Et à ce stade, nous avons un dossier. Nous avons un fichier qui a été ouvert ou mon répertoire spécifique avec les autorisations d' écriture pour ce fichier. C'est bon. Alors, que devons-nous faire ensuite ? Eh bien, nous avons besoin de stocker une information. Eh bien, pour ce faire, nous devons avoir une information à stocker. J'ai donc un aperçu du A MipSum downp avec du texte que nous Je vais donc simplement créer ma variable ici en haut et l' appeler pas texte. Je ne veux pas vous embrouiller. Disons que c'est peut-être une histoire, non ? Peut-être que nous avons une application d'histoire ou application d' écriture. Nous avons tout ce texte ici que nous allons stocker. Maintenant, peu importe ce que c'est, mais nous allons le faire, afin de pouvoir passer à F point Store. Et ce que nous pouvons faire, c'est dire store string, store R, store line. Toutes ces différentes options sont ici. instant, je vais juste parler de la gamme des magasins, et je vais parler de l'histoire du magasin. Tout le texte de l'histoire. Mais ma fonction prête, je vais simplement appeler cette fonction de sauvegarde des animaux de compagnie. Et quand je lance ça, voyez, initiale, il semble que rien ne s'est passé. Nous allons fermer et jeter un œil à nos dossiers. Nous voyons des tests de texte, TXT ici, et il y a tout le contenu à l'intérieur. OK. Alors, comment pouvons-nous réellement charger ces informations ? Je vais aller de l'avant et supprimer tout ce qui s'y trouve. Nous pouvons donc voir que cette histoire est un D. Quand est-ce que nous commençons ? Voyons comment charger un morceau de texte ou charger des informations à partir de ce fichier texte. Chargez du texte. Maintenant, en commençant par la même chose, nous devons ouvrir notre dossier. Mais cette fois, nous voulons avoir les autorisations de lecture, car nous voulons lire le contenu qu'il contient. Alors lisez au lieu d'écrire. Et si nous utilisions store string, nous pouvons maintenant obtenir le texte que nous pouvons appeler sur notre fichier. Maintenant, dans notre cas, nous pouvons aller de l'avant et attribuer à une histoire un équivalent quel que soit le texte dans cette situation. Donc, si nous chargeons du texte, nous pouvons alors y insérer un crochet automatiquement, imprimer l'histoire. Si nous jetons un coup d'œil à la sortie. Nous pouvons voir que notre histoire a été imprimée, mais notre histoire était vide au départ. De toute évidence, il a été correctement chargé et nous en avons extrait toutes nos données. Cette partie est donc fantastique. Très bien, je vais donc aller de l'avant et vous montrer le store VR, si vous voulez choisir celui-ci au lieu de Store Line Vous devez stocker vos variables une par une, comme ça. Et si nous regardions le dossier par la suite, nous constatons que nous ne pouvons vraiment rien voir. Nous ne pouvons pas vraiment voir les informations qui s'y trouvent. Et il peut y avoir une bonne ou une mauvaise chose en fonction de vous, je suppose. Mais pour charger ces informations, nous devons utiliser Get Navar, et nous devons le faire en continu pour autant de variables que nous y avons stockées, et elles reviendront dans le même ordre dans lequel elles ont été enregistrées Vous devez donc vous assurer de les charger exactement dans le même ordre pour les enregistrer. Ainsi, chaque fois que vous enregistrez le fichier, vous devrez également accéder à votre fonction de chargement et le modifier à chaque fois. Vous pourriez donc le faire de cette façon, et certaines personnes le font personnellement. Je n'aime pas ça. Si je veux stocker plusieurs morceaux de code comme celui-ci, ou plusieurs éléments de données, je dois dire. À mon avis, il existe de meilleurs moyens. Et l'un d'entre eux serait simplement un fichier JSON. Et, bien sûr, avec cela, nous l'enregistrons et le chargeons. Peu importe que nous y ajoutions des données ultérieurement ou non. Alors allons-y et jetons un coup d'œil à cela. Je vais juste aller de l'avant et mettre tout ça là-bas. Et nous allons créer une fonction ici, non ? Nous allons donc dire funk, sauve Jason. Et comment sauvegarderions-nous le fichier JCN ? Eh bien, un peu comme nous l'avons fait auparavant. Nous avons besoin d'un fichier avec des autorisations d'écriture. Ce ne sera évidemment pas un texto. Ce sera un JSON. Et tout ce que nous avons à faire c'est de pouvoir stocker de la ligne ici également. Nous pouvons donc dire ou non Varier la gamme des magasins de la FDA. Et la façon dont nous le stockons serait de le springifier par point json et de le transmettre dans le dictionnaire des informations Je vais donc créer ce dictionnaire avec les trois mêmes informations ici. Très bien, nous sommes donc allés de l'avant et nous commençons. Nous avons configuré cette sauvegarde, n'est-ce pas ? Stockez des données sur les lignes, les stringifiez et les achats, ce qui est bien sûr notre dictionnaire que nous avons ici Et nous appelons notre fonction Save Jason, alors exécutons-la. OK. Cela devrait être assez long, fermez-le, et nous jetons un coup d'œil à nos fichiers, et nous avons JCNFle Voilà. Voici donc à quoi ressemblerait désormais notre JSON 5. Maintenant, nous pouvons passer en revue et attribuer des informations individuelles , de sorte que nous pouvons dire que l'expérience est égale, puis simplement tirer parti de l'expérience , par exemple, ou nous pouvons simplement opter pour l' ensemble et simplement dire que mes données sont égales à nos données temporaires une fois que nous les avons chargées. Vous pouvez donc voir à quel point cela fonctionnerait beaucoup mieux, et il y a même, bien sûr, le bar du magasin, n'est-ce pas ? même si nous stockions la réalité virtuelle, nous aurions plusieurs ensembles de dictionnaires, n'est-ce pas ? Nous avons donc plusieurs JC Bile ou JSON Lies dedans. Mais voyons comment nous chargerions ces informations. Je vais donc tout effacer de mes données. Pour le moment. En fait, ne l'acceptez pas. Je vais juste le commenter pour qu' il n'existe pas. C'est donc la même chose que s'il s'agissait d'un dictionnaire vide à ce stade. Et voyons comment charger un fichier JSN. Nous créons une fonction, chargeons Jason et, comme pour tout ce qui précède, nous devons ouvrir un fichier avec les autorisations appropriées. Nous allons donc lire au lieu d'écrire. Alors, que faisons-nous de différent ? Eh bien, pour cela, nous allons en fait avoir besoin d'un objet JSON car nous ne pouvons pas appeler la fonction dont nous avons besoin sans en créer une instance réelle. Je vais donc dire que var J est égal à JSON. Nouveau C'est bon. Et nous voulons l'analyser ou vérifier s'il y a des erreurs lors de l'analyse, nous allons donc dire que l'erreur d' analyse Ce sera J point pars où nous passerons notre texte Val, non ? Point F sous forme de texte. Maintenant, nous pouvons vérifier. Nous allons donc dire qu'il s'agit d'une erreur. C'est égal à zéro, non ? Donc, le double est égal ici. Et s'il est égal à zéro, cela signifie simplement que nous n'avons eu aucun problème lors de l'analyse de nos informations Cela signifie que nous pouvons utiliser ces données en toute sécurité . Nous pouvons donc procéder à la signature de mes données. Est égal à J car n'oubliez pas que nous avons analysé les informations de manière à ce que les informations soient stockées dans cet objet JSON Données JG. Et si nous venions ici, nous pourrions aller de l'avant et nous pourrions même tout faire avant, n'est-ce pas ? Nous imprimons donc, par données, pour voir qu'il est vide. Allez-y, chargez notre fichier JCN, puis imprimez à nouveau vos données Regarde cette course. Vous voyez, nous avions un dictionnaire vide, puis tout a été chargé par la suite. Voilà, vous l'avez. Et peu importe l'ordre dans lequel se trouvent ces éléments puisqu'il s'agit de paires clé-valeur. Il peut s'agir d'un ordre alphabétique, d'un ordre aléatoire. Tant que la clé et la valeur correspondent toujours, cela ne fera aucune différence. Mais voilà. C'est ainsi que vous feriez quelque chose pour les fichiers JSON. Personnellement, je les détestais absolument et je les évitais à tout prix. J'étais têtu à l'époque, et j'aurais préféré à l'époque utiliser dix fichiers texte aléatoires au lieu d'un seul fichier JSON C'était une très mauvaise habitude à l'époque, mais maintenant j'utilise des fichiers JSON, et c'est au moins une méthode que je préfère pour stocker toutes mes variables personnellement. Donc, si vous avez plusieurs variables que vous souhaitez stocker, c'est parti. Tu peux continuer et régler ça. Et même si vous le vouliez , même si vous créez simplement un dictionnaire temporaire, juste pour tout stocker. Mais ce ne sont pas les seules données que nous pouvons obtenir. Il y a d'autres éléments de données. Et surtout, celui qui sera vraiment important pour les développeurs de logiciels ici, en particulier pour les développeurs de jeux où vous souhaitez organiser des éléments tels vos options audio et vos options d'affichage, nous allons utiliser ce que l' on appelle un fichier de configuration. Maintenant, un fichier de configuration a un aspect très professionnel. Et si vous avez modifié Sky Room, touchez le fichier INI, vous saurez exactement à quoi cela va ressembler. On dirait. Ces fichiers de configuration ou fichiers I&I sont des fichiers de configuration. Et ils nous permettent de garder toutes nos informations encore plus propres et mieux organisées qu' un fichier JSON, par exemple. Très bien, donc je vais juste les mettre de côté, et nous allons dire funk, enregistrer la configuration Et contrairement aux fichiers JSNFles, cela va être enregistré de manière très Et nous allons également avoir besoin d'un dictionnaire pour cela. Seulement celui-ci, je vais l'appeler mes paramètres. Nous arrivons donc, et nous aurions dit, afficher les paramètres d'affichage ici, n'est-ce pas ? Et ce dictionnaire serait défini comme son propre dictionnaire. Je vais les supprimer. À l'intérieur de cet écran, je ne sais pas, peut-être que nous avons un graphique. Eh bien, évidemment, il va être saisi, nous avons un préréglage. Peut-être que l'utilisateur dispose d' un support par défaut. Et encore une fois, c'est peut-être l'index deux des options, vous savez, peu importe ce que vous allez stocker , nous le redescendons Nous pouvons choisir une autre option, nous allons dire qu'il y a un Lucian et je vais me contenter de nous donner quelques exemples d'informations Hein ? J'ai donc juste un exemple de certains paramètres d'affichage, de son, et bien sûr, vous pouvez continuer, y ajouter autant d'informations que vous le souhaitez, ajouter autant de catégories que vous le souhaitez, nous dirions. C'est donc le dictionnaire que nous allons utiliser lors de la sauvegarde et du chargement pour la configuration. La première chose que nous devons faire dans notre fonction de sauvegarde est d'avoir une configuration Je vais donc créer un nouvel objet de fichier de configuration. Fichier de configuration. Et maintenant, nous utilisons quatre boucles. Je dirais quatre sections dans les paramètres, les touches, les paramètres, les points, les touches. OK. Donc, pour toutes nos sections, ce sera l' affichage et l'audio. Nous avons donc deux sections ici. Donc, pour chacun d'entre eux, puis pour P dans la section des paramètres, nous allons dire «   écran intérieur » et nous allons dire, pour chacune de ces résolutions prédéfinies HDR, passer au bloc de code suivant. Ensuite, dans le domaine audio, nous allons appliquer ce même bloc de code à prochaine collection de clés dans cette section. Et ce que nous allons faire ici, c'est définir certaines valeurs. Valeur définie par point C et valeur définie prend quelques arguments. Il va prendre notre section, suivre notre clé. Et puis la section des paramètres et la clé. J'ai une faute de frappe quelque part, n'est-ce pas ? Oui, je n'utilise que des minuscules. Ils doivent être en majuscules. Allons-y. Très bien, nous avons donc défini des valeurs dans ce fichier de conflit. Et vous remarquerez que nous n'avons pas encore ouvert notre dossier ou quoi que ce soit d'autre. Donc, en dehors de cette double boucle à quatre, nous appelons maintenant C point save et l'emplacement que nous voulons enregistrer. Donc dans notre cas, res, collash for this. Je tiens donc à noter ici que l'emplacement des sauvegardes sur tous les appareils sera celui de l'utilisateur, et cela sera différent en fonction de chaque plate-forme, n'est-ce pas ? Mac va donc être différent de Windows, qui est différent de Linux, il va être différent d'Android. Mais chaque emplacement aura un emplacement utilisateur. J'utilise donc bred juste pour que nous puissions le voir facilement dans le système de fichiers sans avoir à faire un tas de captures et à essayer de le comprendre. Et je vais juste enregistrer ceci mon fichier INI à points de réglage. Donc, si je sauvegarde cette configuration maintenant et que nous l'exécutons, cela suffira. Nous examinons nos systèmes de fichiers, et vous pouvez voir ici que j' ai un fichier INI de paramètres. Si je l'ouvre, vous pouvez voir comment tout est bien organisé en catégories pour tout. Vous pouvez donc voir à quel point les fichiers de confit peuvent sembler à la fois très professionnels et très organisés. Et toujours en utilisant un dictionnaire. Techniquement, nous utilisons des dictionnaires et des dictionnaires annexes pour y parvenir Et les configurations seraient ma plus grande préférence, comme je l'ai indiqué, tout ce qui concerne les paramètres ou les préférences d'un jeu ou d'une application C'est bon. Alors, comment économiserions-nous au lieu d'économiser ? Comment chargerions-nous le CiFO ? Eh bien, jetons un coup d'œil au chargement d'une configuration. Chargez la configuration. Et bien sûr, nous allons avoir besoin d'un nouvel objet de configuration à utiliser. Et nous allons vérifier d'éventuelles erreurs dans un premier temps. Nous allons donc enregistrer l'erreur c point load, et nous allons rechercher ce paramètre dans un fichier. Ce sera probablement vers le bas, les gars. Je vais juste appuyer sur mon clavier. Il y a T et il y a mes réglages moi et moi accord. Nous allons donc maintenant savoir si nous avons des erreurs lors du chargement. Nous pouvons donc dire, si Oups. Erreur, pas égal. OK. Donc, si nous avons une erreur lors du chargement pour une raison quelconque, nous pouvons continuer et nous pouvons simplement imprimer quelque chose d'autre qui a échoué au chargement, et nous avons en fait un code d'erreur, celui-ci également. Nous pouvons donc dire le code d'erreur et calculer nos pourcentages. Nous pouvons simplement ajouter cela à l'erreur. Maintenant, si je maintenais le contrôle et que je clique sur OK, vous pouvez voir que cela nous amène à cette section ici. OK, c'est zéro. Mais si je devais faire défiler la page vers le bas, nous pouvons voir tous les différents codes d'erreur ici. Impossible d'écrire, impossible d' ouvrir, déjà utilisé, aucune autorisation, mauvais chemin, introuvable, corrompu, impossible de créer, délai d'expiration impossible, connexion impossible, méthode introuvable, lien introuvable, erreur d'analyse. Vous pouvez donc voir tous nos codes d'erreur ici. Donc, si jamais vous recevez un code d'erreur, il vous suffit de venir ici et de le rechercher et vous pourrez voir exactement quel était le problème. Bien, en supposant que nous n'ayons pas eu d'erreur, nous pouvons commencer à exécuter nos quatre boucles, et je vais simplement copier les deux mêmes ci-dessus Nous avons donc une section à quatre touches de configuration, une section à quatre touches et une section de paramètres. Et à l'intérieur de la boucle, cette fois, nous allons de l'avant et nous le voyons. Nous avons défini notre section de paramètres Je peux l'écrire correctement. Nous définissons cela comme égal aux informations que nous obtenons de la valeur conf C point t. Et ce sera littéralement la même chose ici, section de réglage. Cela va être écrit un peu différemment. Nous passons simplement la section E. Et puis notre dernier argument, nous le mettons simplement dans null, ce qui devrait être la valeur par défaut. Mais mettez-le quand même. Et maintenant, vous remarquerez si nous arrivons. Remarquez que notre maître tient la plume ici, n'est-ce pas ? Pour le son. Et nous allons savoir si cela fonctionne. Je vais donc approfondir les choses. Je vais accéder à mes paramètres sur INI et modifier Master 10-100, puis le sauvegarder Nous allons maintenant exécuter la configuration de chargement. Je vais en voir un ensemble de dix imprimés ici pour le Maître. Nous allons en récupérer la centaine après le chargement. Jetez un coup d'œil, et Audiosecon Master 100, pour que nous sachions qu'il s'est chargé avec succès. Voilà. Voici comment enregistrer et charger des fichiers de configuration, des fichiers JSON et des fichiers texte. Maintenant, c'est à vous de déterminer le type de fichier qui convient le mieux à votre situation. Mais voici comment vous pouvez faire les trois. 83. Déclencheurs et pédales: Bien, parlons donc de la prise en charge des déclencheurs d'une manette, tels que, vous savez, le déclencheur gauche, le déclencheur droit, L deux, R deux, c'est quoi ZL ou ZL, et Z Z, ZR. Je ne regarde pas vraiment les boutons Nintendo, mais je pense que c'est tout. Maintenant, malheureusement, le commutateur contrôleur pour cela sont juste cliquables , donc ce ne sont pas vraiment des déclencheurs Ils n'ont pas ce temps de trajet, ce chemin de voyage. Soit ils sont pressés, soit ils ne le sont pas. Malheureusement, pour moi, je ne peux pas les utiliser pour vous le montrer ici. Donc, ce que je vais utiliser, c'est mon stick analogique pour simuler ça pour vous. Mais vous pouvez l'utiliser pour ces déclencheurs. Vous pouvez l'utiliser pour un stick analogique, par exemple, lorsque vous avancez, que vous marchez et que vous appuyez dessus à fond, votre personnage court, ce serait une autre utilité pour ce que je vais vous montrer ici. Et une autre utilisation, que je trouve intéressante, est que vous pouvez utiliser ce concept pour soutenir les volants et les pédales si vous voulez créer un jeu de course, par exemple Parce que vous avez ce temps de trajet qui dépend de la rotation du volant, de la distance parcourue vers la gauche et vers la droite, de l'intensité avec laquelle vous appuyez sur la pédale d' la gauche et vers la droite, de l' accélérateur, l'embrayage enfoncé, pression sur le frein. Vous pouvez donc l'utiliser pour une grande variété de contrôleurs, comme vous pouvez le constater. Et vous pouvez penser à de nombreuses utilisations différentes pour cela. L'une des anciennes utilisations appuyer sur le bouton de tir sur une partie du trajet, ils visent, vous appuyez dessus à fond et ils tirent. J'ai donc créé un bouton de prise de vue dans les paramètres de mon projet. Et comme je l'ai dit, je vais juste utiliser mon stick analogique pour simuler cela parce que mes déclencheurs sont cliquables. Ils ne fonctionnent pas comme ça. C'est une manette Super Nintendo qui a été modernisée, donc je n'ai pas le bon type de déclencheur pour vous le montrer Encore une fois, je vais juste utiliser mon stick analogique pour imiter ce à quoi vous pouvez vous attendre Donc, dans la fonction de processus, je vais continuer et l'imprimer pour nous. Juste pour que vous puissiez voir, ce sera un point d'entrée. Et nous allons dire «   Get Action Strength ». Maintenant, vous voyez de la force et de la force brutes, et vous vous demandez peut-être quelle est la différence. La force brute va ignorer la zone morte de votre manette. Get Action Strength va prendre en compte la zone morte, non ? Donc je vais juste utiliser ma force, et je vais utiliser Shoot pour te montrer ça. Donc, si nous allons de l'avant et exécutons ceci, vous pouvez l'ignorer. Rien de tout cela n'a d'importance. Et nous pouvons simplement regarder ici dans le résultat, et vous verrez que lorsque je commence à me déplacer, je m'en tiens à la droite, ce que vous pouvez imaginer à nouveau, c' est pour bloquer ou pour déclencher. Comme vous le voyez, je suis dans ma zone morte. Et quand je quitte la zone morte, tu y es. Vous pouvez donc voir jusqu'où mon bâton est enfoncé jusqu'à ce que nous arrivions jusqu'au bout, ce qui dans mon cas est d' jusqu'à ce que nous arrivions jusqu'au bout, environ 0,98 Et vous pouvez l'utiliser tel que je situais ou suggérais pour vos différentes situations Alors maintenant je peux aller de l'avant et le montrer. Et parfois, en utilisant mon stick analogique, je l'utilise pour marcher et courir. Nous dirions donc si la saisie Dot obtient Axe et force, elle indique tirer, ce que vous pouvez imaginer simplement marcher ou avancer ou autre. Si la force d'action est supérieure à 0,9, disons, nous allons imprimer en cours ou prise de vue, puis nous pouvons en avoir une autre si ou non si l'une ou l'autre fonctionne ici. Et nous allons avoir à peu près la même situation ici en cas de saisie, force d'action, de tir. C'est supérieur à, et nous allons dire 0,01. Donc, de cette façon, en gros, nous sommes dans la zone morte et nous savons que nous nous déplaçons. Tout ce que nous allons faire, c'est imprimer, et nous allons dire marcher ou viser, d'accord. Alors maintenant, vous allez voir juste en bas. Au fur et à mesure, si notre interrupteur est enfoncé à mi-chemin ou si notre pile analogique ne bouge qu'à mi-chemin, nous marchons ou visons Et une fois que nous aurons fait tout le chemin et que nous l'aurons maintenue là, nous courrons ou que nous appuierons complètement sur la gâchette, nous prendrons la photo. Boum. Voilà. Vous pouvez donc voir à quel point c'est utile. Vous pouvez donc en faire une série en termes de pédale d' accélérateur, n'est-ce pas ? À quelle vitesse ou quelle sera votre vitesse, n'est-ce pas ? Vous allez donc avoir, peut-être, votre vitesse multipliée par votre force d'action, et cela montrera à quelle vitesse vous allez, et il va de même pour ce qui est de l'arrêt, n'est-ce pas ? Si vous appuyez sur la pédale de frein, vous savez à quelle vitesse vous allez réduire la vitesse. Vous allez le prendre et le multiplier par la force de la pédale de frein. Et maintenant, plus tu appuies fort dessus, plus vite tu vas t'arrêter. C'est bon. C'est ainsi que vous pouvez utiliser quelque chose comme la force d'action, qui est peu exclusive aux manettes. Vous pouvez également l'utiliser sur PC. Le problème, c'est qu'il faut généralement appuyer sur un bouton ou un morve, donc ce sera zéro ou un. C'est pourquoi dans les jeux PC, nous avons généralement un bouton alternatif, n'est-ce pas donc ce sera zéro ou un. C'est pourquoi dans les jeux PC, nous avons généralement un bouton alternatif, nous avons généralement un bouton alternatif Vous pouvez utiliser un bouton de marche ou une bascule de marche, alors que dans la manette, il vous suffit de déplacer le stick analogique à mi-chemin au lieu de le faire complètement 84. Vibration du contrôleur: C'est bon. Alors ici, je vais vous montrer comment ajouter des vibrations à votre jeu. Et nous parlons de choses comme vos manettes. Maintenant, je n'ai pas de manette qui supporte les vibrations, donc je ne peux pas vous laisser entendre avec la manette installée sur le micro, sur le bureau ou quoi que ce soit d'autre. Il va donc falloir me croire sur parole là-dessus. Et si vous n'y croyez pas, vous pouvez aller de l'avant et lire documentation, rechercher, et vous découvrirez que vous allez simplement obtenir la même réponse que ce que je vais vous dire ici. Donc, chaque fois que vous voulez créer des vibrations, maintenant, par exemple, je pourrais les mettre ici, n'est-ce pas ? Je peux le mettre ici ou là-haut, vous savez, où je veux que cette vibration se produise. Et cela se produit généralement lors d'une attaque puissante ou lorsque le joueur est touché, par exemple, chaque fois que par exemple, chaque fois que vous souhaitez que cette vibration se produise. Donc, pour que cela se produise, nous obtenons simplement notre classe d'entrée, donc le point d'entrée démarre Joy Vibration. Et cela nécessite quatre arguments. Le premier est l'appareil, et voici l'identifiant de l'appareil ici. Et pour le premier joueur, votre première manette, ce sera généralement l'appareil zéro. C'est bon. Ensuite, nous allons avoir l'ampleur de nos moteurs faibles. Maintenant, les moteurs faibles sont généralement situés vers le haut du contrôleur, et ils ne sont évidemment pas aussi puissants que ceux du bas parce qu'ils veulent juste trembler, un peu cliquetis là-haut Et s'ils sont plus faibles en haut, c'est parce que vous avez une prise plus ferme sur le bas de la manette que sur le dessus, n'est-ce pas ? avez une prise plus ferme sur le bas de la manette que sur le dessus, n'est-ce pas Ils veulent juste le secouer. Ils ne veulent pas qu'il soit difficile d' appuyer sur les boutons ou de vous faire rater. On peut donc dire 0,5 chaîne. troisième argument sera le même, mais nos moteurs seront puissants. Les moteurs puissants sont situés au bas du contrôleur. Vous pouvez généralement le trouver à peu près là où se trouvent les paumes de vos mains. Donc ça va être beau et bien emballé là-dedans. Et notez que ces magnitudes vont sur une échelle de zéro à un. Nous pouvons donc également dire 0,5 ici. À ce stade, l' ensemble du contrôleur tremble à la moitié de sa force, fois dans la moitié supérieure et dans la moitié inférieure. Et la dernière chose , c'est la durée, c'est-à-dire le temps en secondes pendant lequel il va vibrer. Si on en met cinq, il va vibrer pendant 5 Donc, si vous avez cet avion avec une animation ou une attaque et que vous savez combien de temps cela va prendre, vous pouvez le mettre dedans. Et comme je l'ai dans la fonction Ready, si je devais y jouer et que j'avais une manette supportant les vibrations, ma manette se mettrait à vibrer immédiatement pendant 5 secondes dès que je jouerai. D'accord, c'est aussi simple que cela d'ajouter des vibrations à votre jeu c'est aussi simple que cela d'ajouter des vibrations à votre Vous prenez cette ligne de code et vous la placez là où vous voulez qu'il y ait des vibrations.