Crafty dincolo de elementele de bază sunete și scene

La fel ca imaginile sau spritele, sunetul joacă, de asemenea, un rol vital în jocuri. Muzica de fundal dreapta poate seta starea de spirit pentru joc. În mod similar, inclusiv efectele sonore pentru lucruri precum un accident sau un împușcări ar face jocul mult mai interesant.

De asemenea, puteți adăuga scene în joc pentru a le face mai organizate. De exemplu, în loc să arătați în mod direct ecranul de joc utilizatorilor, le puteți afișa mai întâi ecranul de pornire unde pot alege un nivel de dificultate pentru joc sau pot crește / micșora volumul de muzică de fundal. 

În acest tutorial, veți învăța cum să adăugați sunete și scene la jocurile dvs. utilizând Crafty.

Adăugarea de sunete

Procesul de adăugare a sunetelor la un joc este similar cu adăugarea foilor de sprite. Trebuie să creați un obiect de materiale și apoi să furnizați o serie de fișiere audio pentru diferite efecte sonore. Crafty va încărca apoi primul fișier care este acceptat de browser. Iată un exemplu:

var joc_assets = "audio": "back_music": ["back_music.wav", "back_music.ogg", "back_music.mp3"], "gun_shot": ["gun_shot.wav", "gun_shot.ogg" "gun_shot.mp3"]; Crafty.load (game_assets);

Odată ce ați adăugat fișierele audio, le puteți reda folosind Crafty.audio.play (String-ul, numărul repeatCount, volumul Număr). Primul parametru este id-ul a fișierului pe care dorim să îl jucăm. Pentru a reda muzica de fundal, puteți trece "Back_music" la fel de id-ul

Puteți controla de câte ori este redat un fișier audio utilizând al doilea parametru. Când acest parametru nu este specificat, fișierul este redat o singură dată. Probabil doriți să continuați să continuați să jucați câteva sunete. Un astfel de exemplu este muzica de fond a unui joc. Acest lucru poate fi obținut prin setarea celui de-al doilea parametru la -1. 

Al treilea parametru controlează volumul fișierului audio dat. Poate avea orice valoare între 0.0 și 1.0. Acesta este codul pentru a reda muzică de fundal:

Crafty.audio.play ("back_music", -1, 0,5);

Puteți, de asemenea, să redați fișiere audio bazate pe anumite evenimente, cum ar fi o coliziune între entități sau o apăsare de taste.

(1) Crawler.audio.play ("gun_shot", 1) este un joc pe care trebuie sa-l folositi, ;);

Rețineți că trebuie să adăugați componenta Keyboard eroului dvs. înainte de a putea detecta Tasta în jos eveniment. Codul de mai sus leagă Tasta în jos eveniment la erou și verifică dacă tasta a fost apăsată cu ajutorul evt.key. Dacă apăsați tasta săgeată sus, o singură animație este jucată pentru erou. Un sunet împușcat este jucat, de asemenea.

Încercați să apăsați pe Săgeata în sus tastați următoarea demonstrație și veți vedea totul în acțiune. Am comentat linia care interpretează muzica de fundal, dar o puteți dezactiva în timp ce jucați cu demo-ul. 

Muzica de fundal din demo a fost creată de Rosalila, iar sunetul de la foc este de Luke.RUSTLTD.

Există o mulțime de alte metode pe care le puteți utiliza pentru a manipula sunetele jucate de Craft. Puteți să dezactivați și să mutați toate fișierele audio care se joacă în joc utilizând .mut() și .unmute () respectiv. De asemenea, puteți să întrerupeți și să reluați fișierele audio pe baza acestora id-ul folosind .pauză (Id) și .anula întreruperea (Id) metodă.

Există o limită a numărului maxim de sunete care pot fi redate simultan în Crafty. Limita prestabilită pentru această valoare este 7. Fiecare dintre diferitele sunete care se joacă simultan este un canal. Cu toate acestea, puteți să vă stabiliți propria valoare utilizând Crafty.audio.setChannels (număr n). De asemenea, puteți verifica dacă un fișier audio dat se joacă în prezent pe cel puțin un canal utilizând .isPlaying (ID string) metodă. Va reveni un Boolean care indică dacă redarea audio se face sau nu.

Scene în Craft

Ecranul jocului nu este, în general, primul lucru pe care îl vedeți într-un joc. De obicei, primul ecran pe care îl vedeți este ecranul de încărcare sau ecranul cu meniul principal. Apoi, după ce ați setat diferite opțiuni, cum ar fi nivelul audio sau de dificultate, puteți face clic pe butonul de redare pentru a trece la ecranul real al jocului. În cele din urmă, când jocul se termină, puteți afișa utilizatorilor un joc pe ecran.

Aceste ecrane de joc sau scene diferite fac jocul dvs. mai organizat. O scenă în Craft poate fi creată prin apelare Crafty.defineScene (String sceneName, de inițializare Function [, Function uninit])

Primul parametru este numele scenei. Al doilea parametru este funcția de inițializare, care stabilește lucrurile atunci când este redată scena. Al treilea parametru este o funcție opțională care este executată înainte de redarea următoarei scene și după toate entitățile cu 2D componentă în scena actuală au fost distruse.

Iată codul pentru definirea ecranului de încărcare:

Crafty.defineScene ("loading_screen", funcția () Crafty.background ("portocaliu"); var loadingText = Crafty.e ("2D, Canvas, Text, Keyboard" ) .text ("Scene Demo") .textFont (dimensiune: '50px', greutate: 'bold') .textColor ("alb"), loadingText.bind ("game_screen");););

În codul de mai sus, am definit a "Loading_screen" scenă. Funcția de inițializare a setat culoarea de fundal în portocaliu și prezintă un text pentru a oferi utilizatorilor informații despre ceea ce urmează. Puteți include un logo și câteva opțiuni de meniu într-un joc real aici. Apăsând orice tastă în timp ce pânza este focalizată vă va duce la ecranul real al jocului. .enterScene (String nameName) metoda a fost folosită aici pentru a încărca "Game_screen"

În următoarea demonstrație, puteți apăsa tasta UP de 10 ori pentru a trece la ecranul final.

Concluzie

După ce ați terminat acest tutorial, ar trebui să puteți adăuga o varietate de efecte sonore în jocul dvs. și să puteți controla ieșirea audio. Acum puteți afișa și alte ecrane unui utilizator în situații diferite. Trebuie să vă reamintesc că am folosit versiunea Crafty 0.7.1 în acest tutorial și că demo-urile ar putea să nu funcționeze cu alte versiuni ale bibliotecii. 

În următorul tutorial final al acestei serii, veți învăța cum să îmbunătățiți detectarea coliziunilor în craft.

Cod