Lag et Brick Breaker-spill med Corona SDK Application Setup

I denne opplæringsserien bygger vi et Brick Breaker-spill fra bunnen av med Corona SDK. Målet med dette spillet er å kontrollere en ponglignende padle for å banke en ball mot en stabel med murstein inntil de alle går i stykker.


Trinn 1: Programoversikt

Formålet med dette spillet er å bruke en padle for å banke en ball inn i en stabel med murstein inntil alle mursteinene er ødelagte uten at ballen lar seg savne padle og fly av skjermen. Hvis vellykket, vil brukeren gå videre til et nytt nivå, ellers vil spillet avsluttes.


Trinn 2: Målgruppe

Det første vi må gjøre er å velge plattformen vi vil kjøre vår app på, slik at vi kan velge størrelsen på bildene vi skal bruke.

IOS-plattformen har disse egenskapene:

  • iPad: 1024x768px, 132 ppi
  • iPhone / iPod Touch: 320x480px, 163 ppi
  • Iphone 4: 960x640px, 326 ppi

Fordi Android er en åpen plattform, er det mange forskjellige enheter og løsninger. Noen av de vanligste skjermegenskapene er:

  • Google Nexus One: 480x800px, 254 ppi
  • Motorola Droid X: 854x480px, 228 ppi
  • HTC Evo: 480x800px, 217 ppi

I denne opplæringen vil vi fokusere på iOS-plattformen med grafisk design, spesielt utviklet for distribusjon til en iPhone / iPod touch, men koden som presenteres her, bør gjelde for Android-utvikling med Corona SDK også.


Trinn 3: Grensesnitt

Et fargerikt fint utseende grensesnitt vil bli vist, dette innebærer flere former, knapper, bitmaps og mer.

Grensesnittet grafiske ressurser som kreves for denne opplæringen finner du i vedlagte nedlastning.


Trinn 4: Eksporter grafikk

Avhengig av hvilken enhet du har valgt, må du kanskje eksportere grafikken i anbefalt ppi, du kan gjøre det i favorittbildeditoren din.

Jeg brukte Juster størrelse? Fungerer i Forhåndsvisning-appen på Mac OS X.

Husk å gi bildene et beskrivende navn og lagre dem i prosjektmappen din.


Trinn 5: Main.lua

Tid til å skrive vår søknad!

Åpne din foretrukne Lua-editor (noen tekstredigerer vil fungere, men ikke alle redaktører gir Lua-syntaksutheving) og forbereder seg på å skrive din fantastiske app. Husk å lagre filen som main.lua i prosjektmappen din.


Trinn 6: Kodestruktur

Vi strukturerer vår kode som om den var en klasse. Hvis du kjenner ActionScript eller Java, bør du finne strukturen kjent.

 Necesary Classes Variabler og Constants Declare Funksjoner contructor (Hovedfunksjon) klassemetoder (andre funksjoner) ring Hovedfunksjon

Trinn 7: Skjul statuslinje

 display.setStatusBar (display.HiddenStatusBar)

Denne koden skjuler statuslinjen. Statuslinjen er linjen øverst på skjermbildet som viser tid, signal og andre indikatorer.


Trinn 8: Load Physics Engine

Vi vil gjøre bruk av den kraftige Box2D-motoren som er innebygd i Corona, bruk denne koden for å inkludere den i appen din:

 --Fysikk Motor lokal fysikk = krever fysikk fysikk.start () physics.setGravity (0, 0) - Sett tyngdekraften til 0 da vi ikke trenger det

Trinn 9: Spillvariabler og konstanter

Dette er de grunnleggende variablene og konstantene vi skal bruke, les kommentarene i koden for å lære mer om dem.

 lokal BRICK_W = 41 - brett bredde lokal BRICK_H = 21 - mur høyde lokal OFFSET = 23 - en forskyvning som brukes til å sentrere mursteinene lokale W_LEN = 8 - lengden av nivåene, bare 8 horisontale murstein skal opprettes på scenen lokal SCORE_CONST = 100 - mengden som skal legges til poengsummen når en murstein er rammet lokalt score = 0 - lagrer nåværende poengsum lokale murstein = display.newGroup () - holder alle nivået mursteinene lokale xSpeed ​​= 5 lokale ySpeed ​​= -5 lokal xDir = 1 - x retning lokal yDir = 1 lokal gameEvent = "- lagrer spillhendelser (seier, tap, ferdig) lokal currentLevel = 1

Trinn 10: Menyskjerm

Dette er hovedprogramskjermbildet, det vil være den første interaktive visningen som vises i vårt spill. Disse variablene lagrer bakgrunnen og menyskjermkomponentene.

 lokal bakgrunn = display.newImage ('bg.png') lokal menySkjerm lokal mScreen lokal startB lokal omB

Vær særlig oppmerksom på linjen med display.newImage ( 'bg.png'). Dette er ansvarlig for å vise det første bakgrunnsbildet på skjermen.


Trinn 11: Om skjermen

Om skjermen vil vise kreditter, år og opphavsrett til spillet. Denne variabelen brukes til å lagre en referanse til visningen:

 lokal om skjerm

Trinn 12: Spillskjermen

Dette er spillskjermbildet, det vil bli opprettet når Start knappen er tappet.

Variabler for å lagre spillskjermbildet:

 lokal padle lokal murstein lokal ball

Trinn 13: Score & Nivåtekst

Lokale variabler som lagrer tekst / nivå tekstfelt og score / nivå numeriske verdier:

 lokal scoreText lokal scoreNå lokal nivåText lokalt nivåNum

Trinn 14: Alert Screen

Denne skjermen vises når spillet er avgjort. Meldingen vil fortelle spilleren de enten vinner eller mister.

Alert-skjermen lagres av følgende variabler:

 lokal varslingSkjerm lokal varslingBg lokal boks lokal tittelTF lokal msgTF

Trinn 15: Nivåer

Alle våre nivåer vil bli lagret i tabeller (Lua-versjonen av en matrise).

Dette er egentlig et bord som inneholder et bord. Du kan kunngjøre dette i en enkelt linje, men med riktig formatering, kan du få en form for å faktisk se skjemaet nivåene vil ta:

 lokale nivåer =  nivåer [1] = 0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0, 0, 0,0,1,1,0,0,0, 0,0,0,1,1,0,0,0, 0,1,1,1,1,1,1,0 , 0,1,1,1,1,1,1,0, 0,0,0,1,1,0,0,0, 0,0,0,1,1,0, 0,0, 0,0,0,0,0,0,0 nivåer [2] = 0,0,0,0,0,0,0, 0 , 0,0,1,1,0,0,0, 0,0,1,0,0,1,0,0, 0,0,0,0,0,1,0,0 , 0,0,0,0,1,0,0,0, 0,0,0,1,0,0,0,0, 0,0,1,0,0,0 , 0,0, 0,0,1,1,1,1,0,0, nivåer [3] = 0,0,0,0,0,0,0,  0,0,0,0,0,0,0,0, 0,0,0,1,1,0,0,0, 0,1,0,0,0,0,1, 0, 0,1,1,1,1,1,1,0, 0,1,0,1,1,0,1,0, 0,0,0,0,0, 0,0,0, 0,0,0,1,1,0,0,0, 0,0,0,0,0,0,0, nivåer [4] =  0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0, 1,1,1,1,1,1,1 , 1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1,1,1,0,0,0,0 , 0,0,1, 1,0,0,0,0,0,1, 1,0,0,0,0,0,1,1,1,1,1 , 1,1,1,1,1,

I de flerdimensjonale tabellene over, er 1 s representerer plassen i scenen der en murstein skal plasseres, og 0 s er bare tom plass. Senere vil tallene bli lest av en funksjon som vil sette en murstein på spillvisningen. Vi har lagt til fire over, men du kan legge til så mange du vil!


Neste gang?

Du har nå sett grensesnittet og grunnleggende oppsettet av spillet vårt. Hold deg oppdatert for del to av denne serien, hvor vi vil legge til interaktivitet i grensesnittet og kollisjonssjekkingen mellom vår spillgrafikk.