Corona SDK Développer un jeu de type frenzique - Dernières étapes

Bienvenue dans le dernier tutoriel de notre série de jeux Frenzic like! Dans ce tutoriel, nous allons gérer la logique des blocs et les étapes pour construire l'application finale..


Où nous nous sommes laissés?

S'il vous plaît assurez-vous de vérifier partie 1 et partie 2 de la série pour bien comprendre ce tutoriel.

Étape 1: Fonction Place Blocks

Cette fonction est activée lorsque le joueur appuie sur l’un des carrés du conteneur. Il vérifie fondamentalement si la position correcte est disponible pour placer le carré et le place si vrai. La fonction dans l'étape suivante est appelée quand le bloc est placé.

 function placeBlock: tap (e) eventTarget = e.target - Vérifie si la position est disponible position locale = currentXPosition, currentYPosition if (position [1] == 5 et position [2] == 5 et eventTarget.a == false) puis bloque [#blocks] .x = eventTarget.x + position [1] bloque [#blocks] .y = eventTarget.y + position [2] eventTarget.a = true blockPlaced () elseif (position [1] = = 35 et position [2] == 5 et eventTarget.b == false) puis bloque [#blocks] .x = eventTarget.x + position [1] bloque [#blocks] .y = eventTarget.y + position [2 ] eventTarget.b = true blockPlaced () elseif (position [1] == 5 et position [2] == 35 et eventTarget.c == false) puis bloque [#blocks] .x = eventTarget.x + position [1 ] blocs [#blocks] .y = eventTarget.y + position [2] eventTarget.c = true blockPlaced () elseif (position [1] == 35 et position [2] == 35 et eventTarget.d == false) puis bloque [#blocks] .x = eventTarget.x + position [1] bloque [#blocks] .y = eventTarget.y + position [2] eventTarget.d = true blockPlaced () end end

Étape 2: Ajouter un bloc à un tableau

Lorsque le bloc est placé dans le conteneur, nous ajoutons le bloc au tableau qui enregistre les blocs stockés dans ce conteneur. Cela nous aidera à déterminer quand le conteneur est plein. Nous jouons également un son et augmentons le score d'un score chaque fois qu'un bloc est placé..

 function blockPlaced () - Pousser bloc sur conteneurs conteneurs array si (eventTarget.name == 'up') puis table.insert (up.blocksGFX, block [#blocks]) up.blocks = up.blocks + 1 elseif (eventTarget .name == 'right') puis table.insert (right.blocksGFX, block [#blocks]) right.blocks = right.blocks + 1 elseif (eventTarget.name == 'down') puis table.insert (down. blocsGFX, blocs [#blocks]) down.blocks = down.blocks + 1 elseif (eventTarget.name == 'left') puis table.insert (left.blocksGFX, block [#blocks]) left.blocks = left.blocks + 1 fin - Score score = score + 1 - Son media.playEventSound ('bell.caf')

Étape 3: Conteneur complet (couleur unique)

Le code suivant vérifie si le conteneur a été rempli par un seul bloc de couleur à l'aide du tableau de conteneurs. Il incrémente la partition de 150 et joue le son correspondant. Une fonction pour supprimer les blocs s'appelle -nous créerons cette fonction dans les prochaines étapes.

 if (up.blocks == 4) puis if (up.blocksGFX [1] .name == up.blocksGFX [2] .name et up.blocksGFX [2] .name == up.blocksGFX [3] .name et up.blocksGFX [3] .name == up.blocksGFX [4] .name) puis score = score + 150 complet () end elseif (right.blocks == 4) puis if (right.blocksGFX [1] .name = = right.blocksGFX [2] .name et right.blocksGFX [2] .name == right.blocksGFX [3] .name et right.blocksGFX [3] .name == right.blocksGFX [4] .name) puis score = score + 150 complete () end elseif (down.blocks == 4) alors si (down.blocksGFX [1] .name == down.blocksGFX [2] .name et down.blocksGFX [2] .name == vers le bas .blocksGFX [3] .name et down.blocksGFX [3] .name == down.blocksGFX [4] .name) puis score = score + 150 complet () end elseif (left.blocks == 4) puis if (gauche .blocksGFX [1] .name == left.blocksGFX [2] .name et left.blocksGFX [2] .name == left.blocksGFX [3] .name et left.blocksGFX [3]. name == left.blocksGFX [4] .name) puis score = score + 150 complete () end end

Étape 4: Remplir le conteneur

Ce code est exécuté lorsque le conteneur est plein, mais les blocs qu'il contient ne sont pas de la même couleur..

 if (up.blocks == 4 ou right.blocks == 4 ou down.blocks == 4 ou left.blocks == 4) alors score = score + 50 complet () fin

Étape 5: réinitialiser la minuterie

Après avoir effacé tous les conteneurs, le score est défini sur le champ de texte dans l’étape, le chronomètre est réinitialisé et un autre bloc est appelé..

 scoreTF.text = score timer.cancel (timerSource) timerSource = nil timerSource = timer.performWithDelay (3000, timesUp, 0) newBlock (false) end

Étape 6: Supprimer les blocs

Cette fonction efface les blocs dans les conteneurs et réinitialise les variables correctes pour préparer le conteneur à de nouveaux blocs..

 function complete () media.playEventSound ('bell4.caf') removeBlocks () eventTarget.a = false eventTarget.b = false eventTarget.c = false eventTarget.d = fausse fonction d'extrémité removeBlocks () if (eventTarget.name == ' up ') puis pour i = 1, 4 affiche.remove (up.blocksGFX [i]) up.blocksGFX [i] = nil finit par.blocks = 0 elseif (eventTarget.name ==' right ') puis pour i = 1, 4 affiche.remove (right.blocksGFX [i]) right.blocksGFX [i] = nil fin right.blocks = 0 elseif (eventTarget.name == 'down') puis, pour i = 1, 4 affichent .remove (down.blocksGFX [i]) down.blocksGFX [i] = nil end down.blocks = 0 elseif (eventTarget.name == 'left') puis pour i = 1, afficher / supprimer (left.blocksGFX) [i]) left.blocksGFX [i] = aucune fin left.blocks = 0 fin fin

Étape 7: alerte

La fonction d'alerte est activée lorsque le joueur est en fin de vie, elle affiche le score final atteint et ajoute un auditeur pour revenir à l'écran titre..

 function alert () timer.cancel (timerSource) timerSource = nil native.showAlert ('Game Over', 'Votre score:'? score, 'OK', alertHandler) fin de la fonction alertHandler (e) si (e.action = = 'cliqué') puis si (e.index == 1) puis restart () fin fin fin

Étape 8: Redémarrez

La prochaine fonction rechargera le jeu et reviendra à la Titre Title.

 fonction restart (e) display.remove (gameView) Main () end

Étape 9: appelez la fonction principale

Afin de commencer le jeu, theяPrincipaleLa fonction doit être appelée. Avec le code ci-dessus en place, nous le ferons ici:

 Principale()

Étape 10: Écran de chargement

Le fichier Default.png est une image qui s’affiche dès le démarrage de l’application pendant que l’iOS charge les données de base pour afficher l’écran principal. Ajoutez cette image dans le dossier source de votre projet, elle sera automatiquement ajoutée par le complémenteur Corona..


Étape 11: Icône

En utilisant les graphiques que vous avez créés auparavant, vous pouvez maintenant créer une belle et jolie icône. La taille de l'icône de l'iPhone non rétine est 57x57px, mais la version de la rétine est 114x114px et le magasin iTunes nécessite une version de 512x512px. Je suggère de créer d'abord la version 512? 512, puis de la réduire pour les autres tailles.

Il n'est pas nécessaire que les angles soient arrondis ou que la lumière soit transparente, iTunes et l'iPhone le feront pour vous..


Étape 12: Test dans un simulateur

Il est temps de faire le test final. Ouvrez le simulateur Corona, accédez au dossier de votre projet, puis cliquez sur Ouvrir. Si tout fonctionne comme prévu, vous êtes prêt pour l'étape finale!


Étape 13: Construire

Dans le simulateur Corona, allez àFichier> Construireandet sélectionnez votre appareil cible. Remplissez les données requises et cliquez sur construire. Attendez quelques secondes et votre application sera prête pour le test de l'appareil et / ou la soumission pour la distribution.!


Conclusion

Expérimentez avec le résultat final et essayez de créer votre version personnalisée du jeu.!
J'espère que vous avez aimé cette série de tutoriels et que vous l'avez trouvé utile. Merci pour la lecture!