Dans ce didacticiel en deux parties, je vais vous montrer comment créer un jeu de poker avec le SDK Corona. Vous en apprendrez davantage sur les commandes tactiles, les éléments d’interpolation, les minuteries et la création d’une fonction de tri personnalisée..
Dans le premier tutoriel, nous allons nous concentrer sur la configuration du projet et la création de l'interface utilisateur du jeu. Pour vous enthousiasmer à propos de ce projet, vous trouverez ci-dessous une capture d'écran de la présentation du jeu lorsqu'il sera terminé..
Les cartes à jouer ne sont pas inclus dans les fichiers de téléchargement. Si vous souhaitez suivre, vous pouvez acheter le jeu de cartes sur Graphic River ou utiliser un autre jeu de cartes. Les dimensions de chaque carte sont 75px x 105px
, ce qui se traduit par 150px x 210px
pour le @ 2x
Taille.
Si vous souhaitez exécuter l'application de démonstration de ce didacticiel, vous devez ajouter la carte dans le répertoire du projet. Les images pour les cartes devraient commencer par h, c, ré, ou s, avec un numéro ajouté à la lettre (d1.png à d12.png, h1.png à h13.png, etc.).
Si vous souhaitez travailler avec les fichiers vectoriels d'origine, les graphismes de la machine de poker ont été créés par Andrei Marius et sont disponibles sur VectorTuts +. N'hésitez pas à les télécharger à partir de Vectortuts+.
Ouvrez le simulateur Corona, cliquez sur Nouveau projet, et configurez le projet comme indiqué ci-dessous, entrez les détails suivants. Sélectionnez un emplacement pour enregistrer votre projet et cliquez sur D'accord. Cela créera un dossier avec un certain nombre d'icônes et trois fichiers qui sont importants pour nous., main.lua, config.lua, et build.settings. Nous examinerons chaque fichier au cours des prochaines étapes..
le build.settings Le fichier est responsable des propriétés de construction du projet. Ouvrez ce fichier, supprimez son contenu et remplissez-le avec l'extrait de code suivant..
settings = orientation = default = "landscapeRight", pris en charge = "landscapeLeft", "landscapeRight",,
Dans build.settings, nous définissons l'orientation par défaut et limitons l'application à seulement soutenir une orientation de paysage. Vous pouvez apprendre quels autres paramètres vous pouvez inclure dans build.settings en consultant la documentation Corona..
Les fichiers config.lua gèrent la configuration de l'application. Comme nous l'avons fait avec build.settings, ouvrez ce fichier, supprimez son contenu et ajoutez le code suivant.
application = content = width = 768, height = 1024, scale = "letterbox", fps = 30, imageSuffix = ["@ 2x"] = 2, - les images avec "@ 2x" ajoutées seront utilisées pour iPad. 3
Ceci définit la largeur et la hauteur par défaut de l'écran, utilise boîte aux lettres pour redimensionner les images, définit le nombre d'images par seconde sur 30
, et utilise le imageSuffix
réglage pour la sélection d'image dynamique. Les fichiers à télécharger pour ce tutoriel incluent deux fichiers pour chaque image., imageName.png et [email protected]. Les iPad avec écran Retina utiliseront le @ 2x images, tandis que l'iPad 1 et 2 utilisera les images régulières.
Vous pouvez apprendre quelles autres propriétés vous pouvez définir dans config.lua en consultant la documentation Corona.
le main.lua fichier est le fichier que l'application charge en premier et utilise pour amorcer l'application. Nous allons placer tout notre code dans ce fichier. Au cours des prochaines étapes, nous allons supprimer un certain nombre de fonctions. Vous devriez tous les ajouter à main.lua.
Nous ne voulons pas que la barre d'état apparaisse dans notre application. Ajouter ce qui suit à la ligne à main.lua pour y parvenir.
display.setStatusBar (display.HiddenStatusBar)
L'extrait de code suivant déclare les variables dont nous aurons besoin tout au long du projet. Lisez les commentaires pour mieux comprendre à quoi sert chaque variable. La plupart d'entre eux sont explicites.
local pokerMachine = display.newImage ("cardsBG.png", true) pokerMachine.anchorX, pokerMachine.anchorY = 0,0 - Définit les images d'ancrage pour lesquelles il utilise les nouveaux costumes locaux de Graphics 2.0 = "h", "d", "c", "s"; - coeurs = h, diamants = d, massues = c, pont local de pique; - Le paquet de cartes local playerHand = --Possède les cartes de joueurs locales cashOutButton local betMaxButton local betButton local dealButton local holdButtons = --Le bouton "En attente" local isNewGame = true local MAXBETAMOUNT = 15 - Montant maximal joueur peut parier instructions localesText local betAmount = 0 - Combien le joueur a parié jusqu'ici creditText local betText local winText local gamesText local gameData = - Ceci tiendra des données de jeu - Les crédits et le nombre de jeux joués
installer
le installer
la fonction est utilisée pour configurer les éléments du jeu et démarrer le jeu.
fonction setup () end
boutons de configuration
Cette fonction permet de configurer les boutons du jeu..
fonction setupButtons () end
setupTextFields
Cette fonction configure le champ de texte utilisé dans l'application.
fonction setupTextFields () end
enableDealButton
Comme son nom l’indique, cette fonction active le bouton Deal.
function enableDealButton () fin
disableDealButton
Cette fonction désactive le bouton deal.
fonction disableDealButton () end
enableBetButtons
Cette fonction active les boutons de pari.
function enableBetButtons () end
disableBetButtons
Cette fonction désactive les boutons de pari.
fonction disableBetButtons () end
enableHoldButtons
Cette fonction active les boutons de maintien.
function enableHoldButtons () end
disableHoldButtons
Cette fonction active les boutons de maintien.
function disableHoldButtons () end
createDeck
Cette fonction crée un jeu de cartes.
function createDeck () end
holdCard
Cette fonction passe dans la main du joueur et détermine quelles cartes sont retenues..
fonction holdCard (event) end
pari max
Cette fonction est appelée lorsque le joueur mise le montant maximum.
fonction betMax () end
pari
Cette fonction est appelée lorsque le joueur place un pari réel.
fonction bet () end
doDeal
Cette fonction gère la distribution des cartes.
fonction doDeal () end
dealInitialHand
Cette fonction traite la main initiale.
fonction dealInitialHand () end
dealNewCards
Cette fonction traite la deuxième partie de la main.
fonction dealNewCards () end
getHand
Cette fonction détermine la main du joueur.
fonction getHand () end
nouveau jeu
Cette fonction réinitialise toutes les variables et lance un nouveau jeu..
fonction newGame () end
récompenses
Cette fonction attribue au joueur l'argent gagné.
fonction awardWinnings (theHand, theAward) fin
resetCardsYPosition
Cette fonction réinitialise les cartes y
position après qu'un joueur soit titulaire d'une carte.
fonction resetCardsYPosition () end
générer une carte
Cette fonction génère une carte au hasard.
function generateCard () fin
getCard
Cette fonction appelle getGenerateCard
et le met à l'écran.
fonction getCard (index) end
boutons de configuration
Maintenant que toutes nos fonctions sont supprimées, nous allons commencer à les mettre en œuvre. Mettre en place boutons de configuration
comme indiqué ci-dessous.
function setupButtons () cashOutButton = display.newImage ("buttonCashOut.png", 89,572) cashOutButton.anchorX, cashOutButton.anchorY = 0,0 local holdButtonPosition = 186 pour i = 1,5 local tempHoldButton = display.newImage ("buttonHold1". png ", holdButtonPosition + (93 * (i-1)), 572) tempHoldButton.buttonNumber = i tempHoldButton.anchorX, tempHoldButton.anchorY = 0,0 table.insert (holdBoutons, tempHoldButton) et betMaxButton = display.newImage .png ", 679,572) betMaxButton.anchorX, betMaxButton.anchorY = 0,0 betButton = display.newImage (" buttonBet.png ", 775,572) betButton.anchorX, betButton.anchorY = 0,0 dealButton = display.newImage (" buttonDeal .png ", 869,572) dealButton.anchorX, dealButton.anchorY = 0,0 instructionsText = display.newText (" ", 400,400, native.systemFont, 30) instructionsText: setFillColor (0,0,0) enableBetButtons () end
Dans boutons de configuration
, nous initialisons nos boutons en tant que nouvelles images. Nous stockons le tempHoldButtons
dans un tableau afin que nous puissions les référencer sans avoir à créer cinq variables distinctes. Nous avons également mis en place instructionsTexte
et activez les boutons de pari. le afficher
l'objet a une méthode nommée Nouvelle image
, qui accepte le chemin d'accès à l'image ainsi qu'une position x et y. Comme mentionné dans la documentation, le Nouvelle image
La méthode a plusieurs paramètres facultatifs. Dans ce tutoriel, nous utilisons la nouvelle classe Graphics 2.0 et nous devons donc définir les images. anchorX
et ancrage
positions. Pour en savoir plus sur la migration d'anciens projets afin d'utiliser la nouvelle classe Graphics 2.0 dans la documentation Corona..
Ajouter un appel à installer
à la fin de main.lua et ensuite appeler boutons de configuration
à l'intérieur installer
.
setup () - Ajoute à la fin de "main.lua"
fonction setup () setupButtons () end
Si vous deviez tester votre application maintenant, vous devriez voir l'interface avec les boutons.
setupTextFields
Dans setupTextFields
, nous configurons les champs de texte dans l'application. Jetez un oeil à sa mise en œuvre ci-dessous.
function setupTextFields () instructionsText = display.newText ("", 400,400, native.systemFont, 30) instructionsText: setFillColor (0,0,0) creditText = display.newText ("", 800,185, native.SystemFont, 22) creditText. width = 150 creditText.align = "right" creditText: setFillColor (255,0,0) betText = display.newText ("", 800,270, native.SystemFont, 22) betText.width = 150 betText.align = "right" betText : setFillColor (255,0,0) winText = display.newText ("", 800 355, native.SystemFont, 22) winText.width = 150 winText.align = "right" winText: setFillColor (255,0,0) gamesText = display.newText ("", 800 440, native.SystemFont, 22) gamesText.width = 150 gamesText.align = "right" gamesText: setFillColor (255,0,0) end
le afficher
objet a la méthode nouveauTexte
qui prend comme paramètres la texte
, X
et y
les coordonnées, la police et la taille de la police. le nouveauTexte
Cette méthode prend plusieurs paramètres facultatifs, que vous pouvez explorer dans la documentation. Nous utilisons le nouveau setFillColor
méthode de Graphics 2.0, qui accepte les pourcentages. Dans cet exemple, nous définissons les champs de texte en rouge. En mettant le aligner
propriété à droite
, le texte sera aligné à droite dans le champ de texte. Vous devez définir le largeur
la propriété aussi bien si vous utilisez aligner
. Appel setupTextFields
dans installer
.
fonction setup () setupButtons () setupTextFields () fin
Si vous exécutez à nouveau l'application, vous ne remarquerez aucun changement car les champs de texte sont vides pour le moment. Ils sont prêts pour du texte si.
randomSeed
Parce que nous voulons obtenir une carte aléatoire, nous devons créer le générateur aléatoire. Si nous ne le faisions pas, nous finirions toujours par avoir le même caractère aléatoire. Entrez l'extrait de code suivant dans notre installer
une fonction.
function setup () math.randomseed (os.time ()) setupButtons () setupTextFields () fin
createDeck
La mise en œuvre de la createDeck
la fonction n'est pas trop difficile non plus. Nous parcourons le costume
table et ajouter un numéro de 1
à 13
à cela. Nous l'insérons ensuite dans la table de pont. Les images de nos cartes sont nommées d1.png, h3.png, etc. avec 1
être l'as et le 13
être le roi.
function createDeck () deck = ; pour i = 1, 4 do pour j = 1, 13 do tempCard locale = convient à [i]… j table.insert (deck, tempCard) end end end
h2> Conclusion
Cela met fin à la première partie de ce didacticiel en deux parties. Dans la deuxième partie, nous finirons le jeu. J'espère te voir là-bas.