Comment faire le gros moteur de carte de Scratch ?

Apprêt

        En bref, certains moteurs de jeu ont une mini-carte invisible, qui est généralement utilisée pour détecter les collisions et les mouvements. Ensuite, l'arrière-plan d'un grand moteur de carte doit être très grand (généralement, la taille dépasse 200) Cible, c'est-à-dire que la balle est limitée par la zone de scène. Certains créateurs peuvent penser qu'il suffit d'ajouter une bordure transparente directement sur la puce, ou qu'il ne suffit pas d'alterner entre une grande forme et une forme réelle ? Eh bien, on peut dire que ces idées sont très bonnes, mais il y aura beaucoup de bugs de cette façon, et l'interprétation est mauvaise, et ce n'est pas facile à modifier, ce qui aura un impact profond sur la création ultérieure. À ce moment-là, quelqu'un a trouvé une solution : tant que la collision est détectée dans la zone de scène, n'est-ce pas correct ? J'ai donc fait la petite carte invisible qui vient d'être mentionnée, mais un nouveau problème est apparu, car la taille de la petite carte invisible et de la grande carte est différente, donc même si la collision peut être détectée, l'emplacement de la collision ne peut pas être détecté sur le grande carte.

       A ce moment, une variable importante est utilisée : le facteur de réduction. Présentez brièvement le facteur de réduction. Étant donné que les tailles de la petite carte invisible et de la grande carte sont différentes, les tailles de la petite carte invisible et de la grande carte sont proportionnelles l'une à l'autre, ce qui est une valeur fixe. Ce rapport est le facteur de réduction .

       Le facteur de réduction est auto-déterminé. Généralement, lorsque nous le faisons, la taille de la petite carte invisible change avec la taille de la grande carte. Voici quelques formules :

À propos de la taille : grande taille de carte * facteur de réduction = petite taille de carte, petite taille de carte/facteur de réduction = grande taille de carte, petite taille de carte/grande taille de carte = facteur de réduction.

À propos des coordonnées : grandes coordonnées cartographiques * facteur de réduction = petites coordonnées cartographiques, petites coordonnées cartographiques/facteur de réduction = grandes coordonnées cartographiques, petites coordonnées cartographiques/grandes coordonnées cartographiques = facteur de réduction.

      Avec ces formules, il est évident comment réaliser les fonctions que nous voulons.

      Nous avons besoin de plusieurs personnages : l'un est le fond de la grande carte, l'autre est la petite carte invisible, le troisième est le personnage affiché par le joueur, et le quatrième est la petite boîte de collision invisible du joueur.

Alors

Créons ces rôles :

L'apparence du joueur et l'apparence de la carte sont visibles par le joueur ; tandis que la collision du joueur et la détection de la carte sont de petites cartes invisibles, responsables de la collision

alors

Définissons un facteur de réduction. Si votre carte est petite, le facteur de réduction peut être plus grand. Si votre carte est grande, il est recommandé que le facteur de réduction soit plus petit, tant que la collision peut être effectuée dans la zone de scène.

Ici, je règle le facteur de réduction sur 0,2, comment le définir dépend de votre création

Habituellement, je le fais dans le personnage "Player Collision", mais vous pouvez également le faire dans d'autres personnages.

Comme le facteur de réduction est une constante, il n'est généralement pas ajusté, j'ai donc ajouté "#" avant le nom de la variable pour indiquer une constante. Conseils : Les noms de variables n'affectent généralement pas l'effet, mais ils affecteront l'interprétabilité du code.

Ok, le facteur de réduction a été défini, peignons ensuite notre scène.

Peindre dans un personnage semblable à une carte

Je viens de le dessiner comme ça Bien sûr, une carte a aussi besoin d'une boîte de collision, qui est une mini-carte invisible.

Quoi? Vous ne pouvez pas dessiner une mini-carte invisible ? Ce n'est pas grave, je vais vous apprendre à la main.

copier la carte

Venez à la carte pour détecter le personnage

Collez la carte copiée dans le rôle de détection de carte

le rendre creux

contour audacieux

Eh bien, nous avons fini de dessiner comme ça. Bien sûr, comment dessiner cette petite carte invisible dépend de votre situation réelle. Bref, les endroits qui ne se heurtent pas sont creux, et les endroits qui se heurtent doivent être conservés.

La même chose est vraie pour la collision de joueurs, alors dessinons-la ensuite :

Venez au personnage du joueur et copiez la forme

Collez la forme dans la collision du joueur

Dessinez un rectangle plus petit que le joueur, mais pas trop petit

Pourquoi est-il plus petit que le lecteur et rectangulaire ?

La réponse est : création facile.

Être plus petit que le joueur peut garantir qu'il n'y aura pas de problèmes lors de la collision, tandis que le rectangle est gelé en raison de collisions de formes complexes.Bien sûr, vous pouvez également dessiner un cercle.

Supprimer l'apparence de joueur suivante

De cette façon, la détection du joueur est tirée

Ne me demandez pas pourquoi le dessin est si moche, car la mini-carte invisible n'a pas besoin d'être montrée aux joueurs. Si votre travail en a besoin, vous pouvez également l'embellir et la dessiner en fonction de la situation réelle.

suivant

Nous arrivons au personnage de la carte

Ici, j'ai défini la taille sur 300 (la taille dépend de votre situation réelle), mais vous pouvez voir que même si je définis la taille = 300, la taille est de 273. C'est parce que l'éditeur Scratch a une limite de zone de scène. utiliser les extensions de Fermi, mais je suis habitué à une autre méthode.

Créez une forme vide, cette forme n'a pas besoin de dessiner quoi que ce soit, laissez-la simplement vide.

Cette méthode consiste à passer d'abord à une forme vide, puis à définir la taille, puis à la couper, afin de pouvoir dépasser la limite de taille de Scratch (comme indiqué sur l'image).

Ok, allons sur la carte pour détecter le personnage

Venez à la carte pour détecter le personnage

Au code !

Ensuite, le code de détection de carte se termine ici, euh, oui, vous avez bien entendu.

alors

Nous arrivons au personnage de détection de joueur

Venez au joueur détecter le personnage

Au code !

Conseils : Si vous ne comprenez pas quelque chose ou pourquoi vous le faites, vous pouvez aller au premier paragraphe de cet article et le lire attentivement. Si cela ne fonctionne pas, vous pouvez choisir de demander dans la zone de commentaire.

Ok, nous fixons les coordonnées du point de naissance, puis nous nous déplaçons.

Au code !

Conseils : Pourquoi voulez-vous faire cela de cette façon ? Tout d'abord, je mets : ("Est-ce que le bouton d est enfoncé"-"Est-ce que le bouton a est enfoncé")*Vitesse de déplacement, vous ne devez pas savoir ce que cela signifie, laissez-moi expliquer à ceux qui ne comprennent pas, Scratch a un fonctionnalité, valeur booléenne Le bloc de construction est placé dans des blocs de construction de valeur de retour, il renverra 1 et 0, 1 est vrai, 0 est faux, si nous appuyons sur la touche d, une touche n'est pas enfoncée, alors : (1-0 )*3, ce résultat = 3 , donc notre x sera +3, si la touche d n'est pas enfoncée, et la touche a est enfoncée, alors : (0-1)*3, ce résultat = -3, donc notre La coordonnée x sera -3, je ne comprends vraiment pas Cela n'a pas d'importance, vous pouvez utiliser la méthode que vous connaissez pour obtenir un mouvement.

OK, faisons la collision ensuite :

Créer un bloc de construction maison générique appelé "collision"

Au code !

Bien sûr, ce n'est qu'une méthode de détection de collision, vous pouvez également utiliser votre propre méthode. Le principe de la méthode utilisée ici est : revenir à la position d'origine après avoir rencontré.

Au code !

Astuces : N'oubliez pas de créer les quatre variables publiques qui apparaissent dans le diagramme !

Désolé, j'ai oublié d'ajouter le code encerclé dans l'image lorsque je faisais le tuto, pensez à l'ajouter !

Désolé, j'ai oublié d'ajouter le code encerclé dans l'image lorsque je faisais le tuto, pensez à l'ajouter !

D'ACCORD

Ensuite, nous arrivons au personnage d'apparence du joueur

venir au personnage du joueur

Au code !

Comment faire l'effet de suivre la caméra ? Tout d'abord, la caméra doit avoir un retard, afin que le joueur x-camera x puisse obtenir le retard de la caméra et laisser le joueur se déplacer vers cette position pour créer l'effet de la caméra qui suit.

D'ACCORD

Revenons au personnage de la carte

Viens sur la carte comme un personnage

Au code !

très bien

Dans ce cas, il ne devrait pas y avoir de bogues, à moins que votre code ne soit mal orthographié ou qu'il y ait quelques problèmes mineurs dans l'éditeur, mais je pense que vous pouvez faire fonctionner une grande carte grâce à des efforts continus.

Je suppose que tu aimes

Origine blog.csdn.net/leyang0910/article/details/132032513
conseillé
Classement