«

»

dic 29

Print this Articolo

LUA – Riconoscere la pressione dei tasti

Un gioco in cui non si possono premere tasti non sarebbe un gioco, per questo quando si sviluppa un gioco o anche una applicazione bisogna implementare dei comandi, per muoversi tra le opzioni o semplicemente per muovere un personaggio.
In questo caso ci viene in contro il comando Controls.read() che, come suggerisce pure il nome, legge il comando, cioè restituisce il comando premuto.
Per potere utilizzare questo comando è necessario inserirlo in una variabile per esempio :
pad = Controls.read()

In questo modo, se vogliamo controllare la pressione dei tasti ci basta fare dei semplici “If” che controllano il contenuto della variabile e la usarono come condizione, per esempio :
if pad:cross() then screen:print(0,0,"tasto croce premuto",bianco) end
if pad:circle() then screen:print(0,10,"tasto cerchio premuto",bianco) end
if pad:square() then screen:print(0,20,"tasto quadrato premuto",bianco) end
if pad:triangle() then screen:print(0,30,"tasto triangolo premuto",bianco) end

Allo stesso modo potete anche controllare la pressione dei tasti direzionali :
if pad:left() then ... end
if pad:right() then ... end
if pad:up() then ... end
if pad:down() then ... end

E anche i tasti L ed R :
if pad:l() then ... end
if pad:r() then ... end

Se però volete controllare l’utilizzo dell’analogico, dovete fare un controllo di tipo leggermente diverso, perché in questo caso ci muoviamo su due assi, l’asse X e l’asse Y, e in quattro direzioni;
Quindi per utilizzare la levetta analogica, dobbiamo fare così :

If pad:analogX() > 100 then ... end
If pad:analogX() < -100 then ... end

If pad:analogY() > 100 then ... end
If pad:analogY() < -100 then ... end

In questo caso, pongo come condizione di movimento l'essere maggiori o minori di 100, perché quando andiamo a muovere la levetta analogica, la funzione analogX (o analogY) aumenta o diminuisce di valore, quindi per capire se ci stiamo muovendo verso l'alto o verso il basso bisogna porre una condizione numerica.

Ricordatevi di mettere il codice pad = Controls.read() subito dopo il comando che apre il ciclo principale, in questo modo :
while true do
pad = Controls.read()

Cosi facendo potrete usare da subito gli "If" per fare tutti i controlli che desiderate fare.

_____________________________________________________________________________________________ Ti è piaciuto questo articolo ? Condividilo !

Permanent link to this article: http://taketheball.altervista.org/?p=283

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>