În acest tutorial vă voi arăta cum să creați un joc Blackjack pentru iPad utilizând Corona SDK. Să începem!
Doriți să aflați cum a fost proiectat acest joc? Această serie de tutori se bazează pe lucrarea lui Andrei Marius, care a publicat inițial un tutorial în profunzime despre Illustrator, care a demonstrat modul de proiectare a jocului pe Vectortuts+.
Deschideți Simulatorul Corona și alegeți "Proiect nou".
Pe ecranul următor, alegeți următoarele setări.
Setările proiectuluiApasă pe "Următor →", apoi alegeți deschideți în editor. Aceasta va deschide "Main.lua"în editorul de text implicit.
Deschis "Config.lua"ștergeți totul și schimbați-l la următoarele.
aplicație = content = width = 768, height = 1024, scale = "letterBox", fps = 30,
Aceasta stabilește lățimea implicită a proiectului, înălțimea, scara și FPS. ""letterbox"setarea scalei înseamnă că aplicația se va mări în ambele direcții cât mai uniform posibil și, dacă este necesar, va afișa jocul" Letter Boxed ", așa cum vedeți în unele filme DVD.
Nu vrem ca bara de stare să apară în aplicația noastră, așa că introduceți următoarele în "Main.lua"
display.setStatusBar (display.HiddenStatusBar);
Adăugați următoarele sub codul introdus în pasul de mai sus.
cartea localăTable = display.newImage ("table.png", true); bani locali10; - banii locali de 10 USD; - Cipul de bani de 25 USD; --Citiunea locală de 50 de dolari pe locBtn; - afișează butoanele local hitBtn; - butonul de apăsare local standBtn; - butonul standului instrucțiuni localeText; - dați Instrucțiuni și arătați costume locale câștigătoare = "h", "d", "c", "s"; - inimile = h, diamantele = d, cluburile = c, punțile locale; - pachetul de carduri de monede pentru carduri locale; - un grup care va deține grupul local de distribuitori chipsuri; - am plasat cardurile dealerului în acest grup de jucători locali; - am pus cardurile de jucător în acest grup local dealTo = "jucător"; - care este în prezent împărțit la jucătorul localHand = ; - un tabel care să țină cărțile jucătorilor dealer localHand = ; - un tabel care să dețină cardurile dealerilor local allCards = - un tabel care să țină toate cardurile locale betAmount = 0; - cât de mult pariază jucătorul Total bani locali; - câte bani are jucătorul local blackJack = false; - dacă jucătorul sau distribuitorul are blackjack local firstDealerCard = ""; - o referire la prima carte pe care dealer-ul este împărțită local playerYields = false; - dacă jucătorul a stat sau nu în mână; - care este câștigătorul rundei este pariul local = 0; - cât de mult adaugă playerul la variabila betAmount local bankText; - arată jucătorii bani betText local; - arată cât de mult jucătorul pariază dealerCardsY local = 120; - poziția Y a cardurilor dealerului local playerCardsY = 810; - poziția Y a cărților de jucător
Acestea sunt toate variabilele pe care le vom folosi în acest joc. Citiți comentariile pentru a înțelege ce sunt pentru.
Funcția de configurare va fi apelată la prima încărcare a aplicației. Introduceți următoarele sub codul introdus în pasul de mai sus.
funcția Setare () se termină
Acum apelați funcția de configurare exact sub punctul în care ați declarat-o.
Înființat()
Adăugați următoarele de mai sus în cazul în care vă apelați Înființat()
în pasul de mai sus.
funcția setupCoins () money10 = display.newImage ("money10.png", 50,960); money10.betAmount = 10; money25 = display.newImage ("bani25.png", 110.960); money25.betAmount = 25; money50 = display.newImage ("money50.png", 170,960); money50.betAmount = 50; Sfârșit
Aceasta ne fixează imaginile banilor și le adaugă betAmount
cheie.
Acum numiți această funcție înăuntru Înființat()
.
funcția Setup () setupCoins (); Sfârșit
Adăugați următoarele sub setupCoins ()
funcție pe care ați declarat-o în pasul de mai sus.
funcția setupButtons () dealBtn = display.newImage ("deal_btn.png", 250,960); dealBtn.isVisible = false; hitBtn = display.newImage ("hit_btn.png", 400960); hitBtn.isVisible = false; standBtn = display.newImage ("stand_btn.png", 550,960); standBtn.isVisible = false; Sfârșit
Aceasta ne fixează butoanele și le face invizibile.
Apelați această funcție înăuntru Înființat()
.
funcția Setup () setupCoins (); setupButtons (); Sfârșit
Adăugați următoarele sub setupButtons ()
funcția pe care ați introdus-o în pasul de mai sus.
funcția setupTextFields () instructionsText = display.newText ("Place Your Bet", 300, 300, native.systemFont, 30); instrucțiuniText: setTextColor (0,0,0) bankText = display.newText ("Banca dvs.: $", 10,905, native.systemFont, 30); banTxt: setTextColor (0,0,0) betText = display.newText ("", 650,906, native.systemFont, 30); betText: setTextColor (0,0,0); Sfârșit
Aceasta stabilește Câmpuri de text și stabilește culoarea textului în negru.
Adăugați această funcție la Înființat()
funcţie.
funcția Setup () setupCoins (); setupButtons (); setupTextFields () sfârșit
Adăugați următoarele sub setupTextFields ()
funcţie.
funcția setupGroups () coinContainer = display.newGroup () coinContainer.x = 250; coinContainer.y = 600; dealerGroup = display.newGroup (); playerGroup = display.newGrup (); Sfârșit
Aceasta stabilește grupurile care vor fi folosite pentru a ține cărțile și banii pe care jucătorul le pariază
Adăugați această funcție la Înființat()
funcționează exact așa cum ați procedat în pașii anteriori.
Dacă testați aplicația, ar trebui să vedeți interfața care rulează corect.
Interfața jocurilorAdăugați următoarele sub setupGroups ()
funcţie.
funcția addListeners () money10: addEventListener ('touch', betHandler); money25: addEventListener ( 'atingere', betHandler); money50: addEventListener ( 'atingere', betHandler); dealBtn: addEventListener ( 'atingere', afacere); hitBtn: addEventListener ( 'atingere', a lovit); standBtn: addEventListener ( 'atingere', stand); Sfârșit
Aceasta adaugă ascultătorilor touch pentru elementele de interfață, astfel încât utilizatorul să poată interacționa cu ele. Trebuie să creăm funcțiile care vor fi numite atunci când utilizatorul face clic pe ele.
Introduceți următoarele sub addListeners ()
funcţie.
funcția betHandler (eveniment) final
Această funcție se va ocupa de pariuri. Se va asigura că utilizatorul nu încearcă să parieze mai mult decât are în banca sa.
Introduceți următoarele sub codul introdus în pasul de mai sus.
funcția deal deal ()
Această funcție este locul unde se află inima jocului. Toată logica jocului va fi tratată în această funcție.
Adăugați următoarele sub afacere()
funcţie.
funcția de lovit (eveniment) sfârșitul
Această funcție va fi apelată atunci când utilizatorul apasă butonul "lovit".
Introduceți următoarele sub codul introdus în pasul de mai sus.
funcția stand end ()
Când jucătorul se hotărăște să stea, această funcție va fi apelată.
Adăugați următoarele sub createDeck ()
funcţie.
funcția createDeck () deck = ; pentru i = 1, 4 pentru j = 1, 13 do tempCard local = costume [i] ... j; table.insert (punte, tempCard); sfârșitul capătului final
Aceasta reinițializează masa de pe punte și creează o punte proaspătă. Ea trece prin fiecare valoare în costume
tabel și atașează numărul 1 prin 13 lor. Am setat variabila tempCard
egal cu rezultatul, apoi introduceți-l în punte
masa.
Acum apelați acest lucru în Înființat()
funcţie.
funcția Setup () setupCoins (); setupButtons (); setupTextFields (); setupGroups (); createDeck (); Sfârșit
Vom primi niște cărți aleatorii de pe punte, deci asigurați-vă că este cu adevărat întâmplător că vom avea nevoie de sămânța generatorului de aleatoare. Dacă nu facem acest lucru, de fiecare dată când jocul începe, va genera aceeași aleatorie. Adăugați următoarele createDeck ()
.
funcția Setup () setupCoins (); setupButtons (); setupTextFields (); setupGroups (); math.randomseed (os.time ()); createDeck (); Sfârșit
Acest lucru aduce o parte din acest tutorial la un moment dat. În următoarea parte a seriei vom începe încorporarea gameplay-ului. Vă mulțumim pentru lectură. Rămâi acordat pentru partea a doua!