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