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.
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.
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.
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.
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.
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.
Compters de coche incrément
Score de tirage
Nous dessinons le score à chaque trame avec’s propre fonction juste au cas où nous voudrions le mettre à jour plus tard.
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.
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
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.
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.
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.