Noțiuni de bază cu craft Controale, evenimente, și text

În ultimul tutorial, ați aflat despre entități din Craft și cum le puteți manipula folosind metode diferite. În acest tutorial, veți afla despre diferite componente care vă vor permite să mutați diferite entități folosind tastatura.

Craft are trei componente diferite pentru a muta elemente în jurul valorii. Acestea sunt twoWay pe opțiunea, Patru direcții, și multidirecțional. Acest tutorial vă va prezenta toate aceste componente. În cele din urmă, veți afla despre Tastatură componenta și diferitele metode asociate cu aceasta. 

Twoway și Fourway

twoWay pe opțiunea permite o entitate să se deplaseze la stânga sau la dreapta folosind tastele săgeți sau A și D. De asemenea, permite entității să sară folosind săgeata sus sau tasta W. Va trebui să adăugați o Gravitatie componentă a entităților dvs. pentru a le face să sară. 

.twoWay pe opțiunea () metoda acceptă două argumente. Primul determină viteza entității în direcția orizontală, în timp ce al doilea argument determină viteza de salt a entității. Lăsând al doilea argument va stabili valoarea vitezei de salt egală cu dublul vitezei în direcția orizontală.

Patru direcții componentă va permite unei entități să se deplaseze în patru direcții diferite, fie prin utilizarea tastelor săgeți, fie prin W, A, S, D .patru direcții() metoda acceptă doar un argument, care va determina viteza entității date în toate direcțiile.

multidirecțional

Un dezavantaj major al Patru direcții componenta este că nu vă permite să setați viteze diferite pentru direcțiile orizontale și verticale. 

Pe de altă parte, multidirecțional vă permite să setați viteza în fiecare axă individual. De asemenea, vă permite să atribuiți diferite chei pentru a muta entitatea în direcții diferite. Primul argument în .multiway () metoda este viteza entității noastre. Al doilea argument este un obiect pentru a determina ce cheie va muta entitatea în ce direcție.

Direcțiile sunt specificate în grade. 180 este stânga, 0 are dreptate, -90 este în sus și 90 este în jos. Iată câteva exemple:

BlackBox.multiway (x: 150, y: 75, W: -90, S: 90, D: 0, A: 180); orangeBox.multiway (150, I: -90, K: 90, L: 0, J: 180); purpleBox.multiway (150, Y: -45, G: -135, B: 135, H: 45);

Codul de mai sus stabilește viteza casetei negre egale cu 150 în direcția orizontală și 75 în direcția verticală. Cutia portocalie se mișcă cu o viteză de 150 în toate direcțiile, dar îi sunt atribuite diferite taste pentru mișcare. Cutia purpurie nu se mișcă strict orizontal sau vertical, ci la un unghi de 45 de grade. Viteza aici este în pixeli pe secundă.

Practic, puteți atribui orice cheie în orice direcție folosind multidirecțional componentă. Acest lucru poate fi foarte util atunci când doriți să mutați mai multe entități în mod independent.

Această componentă are, de asemenea, .viteză() , care poate fi utilizată pentru a schimba viteza unei entități mai târziu. Puteți, de asemenea, să dezactivați comenzile cheie în orice moment folosind .disableControl () metodă.

Componenta tastaturii

Cele trei componente din secțiunile anterioare vă permit să mutați o entitate prin folosirea unor chei diferite. Cu toate acestea, este posibil să doriți mai mult control asupra a ceea ce se întâmplă atunci când este apăsată o tastă. De exemplu, este posibil să doriți ca player-ul să fie mai mare odată ce o tastă specifică este apăsată sau dacă playerul va deveni mai puternic odată ce o altă tastă este apăsată. Acest lucru se poate realiza folosind Tastatură component.

Această componentă vă oferă, de asemenea, acces la .isDown (String KeyName / keycode) , care se va întoarce la adevărat sau la fals pe baza faptului dacă tasta apăsată are valoarea dată KeyName sau Cod cheie.

Crafty are de asemenea două evenimente de tastatură diferite, Tasta în jos și keyup. Puteți lega aceste evenimente la orice entitate din joc fără a utiliza Tastatură componentă. Tasta în jos evenimentul este declanșat ori de câte ori DOM Tasta în jos evenimentul apare. În mod similar, keyup evenimentul este declanșat ori de câte ori DOM keyup evenimentul apare.

blackBox.bind ('KeyDown', funcția () if (this.isDown ('L')) this.w + = 5;); orangeBox.bind ('KeyDown', funcția (e) if (e.key == Crafty.keys.K) this.h + = 5;);

În codul de mai sus, cutie neagră a avut deja Tastatură componentă. Acest lucru ne-a permis să folosim .este jos() pentru a determina apăsarea tastei.

Încercați să apăsați L și K în următoarea demonstrație pentru a mări lățimea și înălțimea celor două casete.

Componenta text

Este foarte ușor să adăugați text în joc folosind Crafty. În primul rând, trebuie să creați o entitate cu Text componentă. Apoi, puteți adăuga text la entitatea dvs. folosind .text() , care acceptă un șir ca parametru al acestuia. 

Locația textului poate fi controlată prin utilizarea funcției .attr () pentru a seta valoarea X și y coordonatele. În mod similar, culoarea textului poate fi specificată utilizând .culoarea textului() metodă. Alte câteva proprietăți, cum ar fi mărimea, greutate, și familie din font poate fi setat folosind .textFont () metodă. Iată un exemplu:

var jucătorName = Crafty.e ('2D, DOM, Text') .attr (x: 10, y: 10); playerName.text ( 'ZombieHunter'); playerName.textColor ( 'roșu'); 

Așa cum am menționat mai devreme, .text() metoda vă cere să furnizați un șir ca parametru. Aceasta înseamnă că dacă scorul jocului este un număr, va trebui să îl convertiți într-un șir pentru .text() metoda de a face acest lucru.

Majoritatea proprietăților și metodelor 2D vor funcționa fără nici o problemă cu Text componentă. De exemplu, puteți să o rotiți și să o mutați ușor. Cu toate acestea, există două lucruri pe care trebuie să le țineți cont. Stylingul textului funcționează cel mai bine când este redat folosind DOM. Când sunt redate pe Canvas, lățimea și înălțimea entității textului vor fi setate automat.

Gândurile finale

Folosind cunoștințele din acest și din ultimul tutorial, acum ar trebui să poți deplasa diferite entități folosind tastatura. De asemenea, puteți schimba aspectul principalului jucător și al altor entități pe baza diferitelor taste presate.

Dacă aveți întrebări despre acest tutorial, anunțați-ne în comentarii.