Aller au contenu
Morceaux d'émeute

Morceaux d'émeute

  • Maison
  • Nouvelles
  • Guides
  • Guides vidéo
  • Notes de mise à jour
  • Signaler un abus
  • Basculer le formulaire de recherche

Gadgets rétro – Guide du tutoriel de codage intermédiaire

Posté sur 12/13/2022 Par Ver ridaaa! Aucun commentaire sur Gadgets rétro – Guide du tutoriel de codage intermédiaire
  • Titre: Gadgets rétro
  • Date de sortie:
  • Promoteur:
  • Éditeur:
Les informations sur les gadgets rétro sont toujours incomplètes. S'il vous plaît, aidez-nous à remplir les détails du jeu en utilisant ceci formulaire de contact.

Dans ce tutoriel, je vous montre comment coder dans des gadgets rétro en créant un plateforme 2D!

introduction

Dans cette vidéo, Je vous montre comment créer les fonctionnalités suivantes:

  • Animations basées sur le temps
  • Contrôleur de mouvement des joueurs
  • Jouer audio
  • Collision sprite
  • Sauver le jeu + Sauvegarde automatique
  • Mécanicien de frai aléatoire

J'ai créé des sections dans ce guide pour certaines des principales fonctionnalités, Et vous pouvez trouver le gadget terminé sur l'atelier! Je recommande de suivre la vidéo, Mais vous pouvez également afficher le code ci-dessous. Il s'agit principalement d'un tutoriel sur la façon de coder dans les gadgets rétro, Cependant, si les gens prévoient d'utiliser le code pour un jeu de plateforme 2D, il faut définitivement une mise à jour. Je peux revenir et mettre à jour le guide et le projet à l'avenir.

Si vous avez trouvé ce guide utile, J'apprécierais grandement si vous l'avez évalué et laissé un commentaire sur la façon dont je peux m'améliorer!

Vidéo

Interfaçage avec les puces

Nous devons initialiser chaque puce que nous avons ajoutée et les configurer pour notre projet.

vidéo locale: VideoChip = GDT.Videochip0 Screenmain local: Écran = gdt.screen0 ROM locale: ROM = GDT.ROM Audio local: Audiochip = GDT.Audiochip0 Mémoire locale: FlashMemory = gdt.flashMemory0 Local bowerbutton local: Ledbutton = gdt.ledbutton0 Upperbutton local local: Ledbutton = gdt.ledbutton1 Mouvement local Button: DPAD = GDT.DPAD0 ScreenMain.Videochip = Video Audio:Setchannelvolume(30, 1)

Importation d'actifs

Une fois que nous avons configuré la ROM, Nous pouvons importer des actifs que nous avons téléchargés et importer des actifs intégrés comme une police. ROM signifie lire seulement la mémoire, et les données stockées ici ne peuvent pas être modifiées après la compilation.

Ici’s la feuille de sprite par exemple. Remarquez comment j'ai les sprites à droite dans une ligne et les sprites à gauche dans un autre. Cela facilitera les animer plus tard. Tous les actifs doivent être placés à l'intérieur du dossier d'importation qui peuvent être trouvés dans le menu principal.

La photo est floue car les sprites ne mesurent que 16px.

–actifs– police locale: Spritesheet = rom.System.spritesheets[« Police standard »] mannequin local: Spritesheet = rom.user.spritesheets[« Dummysprite1.png »] pièce de monnaie locale: Spritesheet = rom.user.spritesheets[« coinsprite.png »] co -ound local: Audiosample = rom.user.audiosample[« coinsound.wav »]

Variables des joueurs et des pièces

Configurer les variables qui seront utilisées par le joueur et la pièce. Nous avons divers compteurs de tiques dans l'ordre, gardez le temps pour nos animations de lecteur, Taux d'apparition de pièces, et des semences aléatoires pour la position des pièces.

–Contrôleur de joueur VARS– Playerxposition locale: nombre = 0 Playeryposition locale: nombre = 48 saut local: booléen = faux chute locale: booléen = faux local playerprofile = {} –true = face à droite / false = face à la gauche locale joueur-faceIdle: nombre = 2 –pièces de monnaie– Iscoins local: booléen = fausse co-position locale: nombre = 0 Coinspawner local: nombre = 0 Counter local: nombre = 0 GlobalTickCount local = 0

Enregistrer et sauver automatiquement

Pour que l'épargne fonctionne correctement, Vous devez initialiser les variables que vous souhaitez enregistrer si une sauvegarde n'existe pas. Sinon, Lorsque vous essayez d'utiliser ces variables, ils seront nuls.

dynamique()

devrait être appelé juste après votre initialisation variable locale. Vous ne pouvez enregistrer qu'une seule table sur la mémoire et les tables de Lua fonctionnent avec Key -> cartographie de la paire de valeurs. Ceci est similaire aux dictionnaires dans d'autres langues comme Java.

fonction Savegame() mémoire:Sauvegarder(joueur-profil) fonction finale initsave() LoadData local = mémoire:Charger() Si chargedata[« score »] == NIL ELLE[« score »] = 0 sauvegarde() Else playprofile = loaddata end fin sinin()

Mettre à jour la fonction

Il est bon de garder votre fonction de mise à jour propre et de ne pas écrire trop de logique ici. Laissez d'autres méthodes gérer votre fonctionnalité. Ce serait une bonne idée pour moi de faire une fonction de sauvegarde automatique qui appelle des sauvegarde 60 coche plutôt que d'avoir cette logique ici. 60 Les tiques sont à peu près égales 1 Deuxièmement lorsqu'un programme fonctionne à une vitesse maximale.

— La fonction de mise à jour est répétée à chaque fois la fonction de la fonction de coche() vidéo:Clair(couleur noir) playerController() frawncoin() playercollision() cinglé() incrément() Si GlobalTickCount % 60 == 0 et GlobalTickCount >= 60 puis sauvegarde() fin

Compters de coche incrément

–incrément toutes les tiques par 1– Fonction IncrémentTicks() Tickcounter = TickCounter + 1 coinspawner = coinspawner + 1 GlobalTickCount = GlobalTickCount + 1 fin

Score de tirage

Nous dessinons le score à chaque trame avec’s propre fonction juste au cas où nous voudrions le mettre à jour plus tard.

Fonction Drawscore() vidéo:Trompette(VEC2(2, 2), fonte, « Score: « ..tostring(joueur-profil[« score »]), couleur blanc, couleurs.) fin

Contrôleur de mouvement + Animations

Ceci est un contrôleur de base que j'ai fait pour gérer les animations. J'explique l'intégralité du contrôleur dans la vidéo. La seule chose à noter est que je ne gère pas lorsque le joueur a appuyé sur le DPAD pour que le personnage disparaisse pendant une seconde.

L'animation dans le temps peut être vue dans la façon dont nous changeons l'animation de personnage en fonction de la variable TickCounter. 15 Les tiques sont à peu près égales 1/4 d'une seconde, et à 30 coche nous réinitialisons le comptoir pour répéter l'animation. Les animations de course et de saut sont composées de 2 Frames chacun. Tandis que l'animation en cours d'exécution est basée sur le temps, L'animation de saut est basée sur la hauteur du joueur dans la scène. Ce ne serait pas’T fonctionne si le joueur devrait sauter sur d'autres objets.

fonction PlayerController() Si MovementButton.x == 0 et Movementbutton.y == 0 puis tickcounter = 0 inactif() terminer si TickCounter > 29 puis tickcounter = 0 fin si MovementButton.x > 0 alors playxposition = playerxposition + 1 PlayerFactiveIdle = 2 marcher(2) Elseif Movementbutton.x < 0 alors playxposition = playerxposition – 1 PlayerFactiveIdle = 3 marcher(3) fin si Movementbutton.y > 0 et playeryPosition == 48 puis sauter = vrai fin si saut == true puis sautanimation() Elseif Falling == TRUE puis Fallanimation() Fin de fin de la fonction de fallanimation() animation locale = 4 Si Playeryposition >= 48 puis tomber = faux saut = faux elseif playeryposition > 32 puis animationnum = 4 playeryposition = playeryposition + 1 Elseif Playeryposition >= 24 puis animationnum = 5 playeryposition = playeryposition + 1 Vidéo finale:Dessiner( VEC2(Playerxposition, playeryposition), factice, Animationnum, PlayerfacingIdle, couleur blanc, couleur noir) Jumpanimation de la fonction finale() animation locale = 4 Si Playeryposition > 32 puis animationnum = 4 playeryposition = playeryposition – 1 Elseif Playeryposition > 24 puis animationnum = 5 playeryposition = playeryposition – 1 Elseif Playeryposition <= 24 puis sauter = false tombe = vraie vidéo finale:Dessiner( VEC2(Playerxposition, playeryposition), factice, Animationnum, PlayerfacingIdle, couleur blanc, couleur noir) Fonction de fin inactif() vidéo:Dessiner( VEC2(Playerxposition, playeryposition), factice, 1, PlayerfacingIdle, couleur blanc, couleur noir) Fonction finale de la fonction(direction: nombre) animation locale = 2 Si TickCounter >= 0 Et Tickcounter < 15 puis animationnum = 2 Elseif Tickcounter >= 15 Et Tickcounter < 30 puis animationnum = 3 Vidéo finale:Dessiner( VEC2(Playerxposition, playeryposition), factice, Animationnum, direction, couleur blanc, couleur noir) fin

Reproche à pièces aléatoires

C'est ainsi que nous engendrer la pièce en position aléatoire sur l'écran entre 1-56. Puisque notre pièce est un 8×8 lutin, Nous dessinons la pièce à un maximum de x = (64-8). Afin de faire fonctionner la génération de nombres aléatoires, Nous devons appeler le

math.Randomseed(GlobalTickCount)

Fonction où GlobalTickCounter est un nombre différent à chaque fois. Cette génération de graines fonctionne de manière similaire à Minecraft World’la graine.

Nous utilisons également la variable COINSPAWNER pour déterminer si 180 tiques ou grossièrement 3 Seconds s'est écoulé avant de reproduire une nouvelle pièce.

fonction spawncoin() Si iscoinspawned == false et coinspawner > 180 puis math.Randomseed(GlobalTickCount) CoinPosition = Math.Random(56) iscoinspawned = true elseif iscoinspawned == true puis vidéo:Dessiner(VEC2(co-position, 26), pièce de monnaie, 0, 7, couleur blanc, couleurs.) fin

Collision des joueurs et jouer audio

Nous vérifions si le côté gauche de notre joueur est laissé au centre de la pièce, Et le côté droit de notre joueur a raison du centre de la médaille. Nous vérifions ensuite si la hauteur du joueur est au moins aussi haut que le centre de la pièce. Puisque nous enroulons statiquement des pièces de monnaie en y = 26, et le bas de la pièce est à y = 34, Nous pouvons le faire en vérifiant si le joueur’La tête est au moins à y = 30.

fonction playerCollision() Si iscoinspawned == true alors –Calculez la boîte de collision– Si Coinposition + 4 >= Playerxposition et CoinPosition + 4 <= Playerxposition + 16 alors si PlayeryPosition <= 30 alors –pièce de monnaie ramassée– joueur-profil[« score »] = Playerprofile[« score »] + 1 iscoinspawned = false conspawner = 0 audio:Jouer(coming, 1) fin fin fin fin

C'est tout ce que nous partageons aujourd'hui pour cela Gadgets rétro guide. Ce guide a été initialement créé et rédigé par Ver ridaaa!. Si nous ne parvenons pas à mettre à jour ce guide, vous pouvez trouver la dernière mise à jour en suivant ceci lien.

Si vous pensez que le contenu de ce site viole vos droits, y compris vos droits de propriété intellectuelle, veuillez nous contacter immédiatement en utilisant notre formulaire de contact.
Guides Mots clés:Gadgets rétro

Navigation de l’article

Post précédent: Comment réparer la chute des gadgets rétro, Décalage, et problèmes de bégaiement
Prochain article: Comment réparer les gobelins hachés s'écraser, Crash au lancement, et problèmes de blocage

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

  • Titre: Gadgets rétro
  • Date de sortie:
  • Promoteur:
  • Éditeur:
Les informations sur les gadgets rétro sont toujours incomplètes. S'il vous plaît, aidez-nous à remplir les détails du jeu en utilisant ceci formulaire de contact.

Clause de non-responsabilité

Tout le contenu cité est dérivé de leurs sources respectives. Si vous pensez que nous avons utilisé votre contenu sans autorisation, assurez-vous de nous joindre et nous le prendrons au sérieux.
  • À propos de nous
  • Contactez-nous
  • politique de confidentialité
  • Conditions d'utilisation

droits d'auteur © 2025 Morceaux d'émeute.

Alimenté par Actualité PressBook Thème WordPress