Eccoci alla seconda lezione del linguaggio LUA x la vostra Play Station Portable Nella scorsa lezione abbiamo visto come far comparire a schermo un "Bella Bro", ma, come avrete notato o provato, il testo rimaneva lì all'infinito senza possibilità di stoppare l'esecuzione del programma. PRIMA PARTE Ora impareremo come gestire l'input dei tasti premuti sulla PSP dall'utente e quindi come far terminare un programma alla pressione di un determinato tasto. Esiste una funzione che legge in ingresso quale tasto viene premuto in quell'istante e il nome del tasto viene salvato nella variabile che metteremo prima dell'uguale, in questo modo:
pad=Controls.read()
quindi in questo caso nella variabile "pad" sarà contenuto il nome del tasto appena premuto.....i tasti si identificano con i seguenti nomi: cross =ics square =quadrato circle =cerchio triangle =triangolo left =freccia a sinistra right =freccia a destra down =freccia giù up =mooolto inaspettatamente.....freccia su l =L r =R home start poi ci sarà un discorso a parte per gestire l'analogico. Facciamo un ESEMPIO...un programma che in caso venga premuta la x faccia comparire una scritta.
green = Color.new(0, 255, 0)
while true do
screen:clear() --NOTA 1
pad=Controls.read()
if pad:cross() then
screen:print(100,200,"Hai premuto icscscs",green)
end
screen.flip()
screen.waitVblankStart()
end
NOTA 1: questa funzione ci permette di pulire lo schermo ad ogni esecuzione del ciclo
quindi se la metteremo la scritta ogni volta sparirà sopo aver rilasciato la ics...
altrimenti rimarrà li stampata..
Dunque è così che si gestiscono gli input dei tasti..non è per nulla difficile... e vabbè io ho dato un pò per scontato l'"if"...la sua semplice sintassi è:
if condizione then
bla
bla
end
SECONDA PARTE
Questa parte mostrerà come stampare a schermo delle immagini. Nei programmi LUA le immagini vengono caricate da file e salvate in una variabile.. che ovviamente sceglieremo noi. Quindi:
Immagine=Image.load "sfondo.png"
ci permette di mettere nella variabile "Immagine" l'immagine di nome sfondo.png e così potremo, ivece, stampare a schermo l'immagine:
screen:blit(0, 0, Immagine, true)
Per farvi capire meglio vi riproporrò il programma di prima con, anzi che uno schermo nero, un'immagine di sfondo.
green = Color.new(0, 255, 0)
Immagine = Image.load"sfondo.png"
while true do
screen:clear()
screen:blit(0, 0, Immagine, true)
pad=Controls.read()
if pad:cross() then
screen:print(100,200,"Hai premuto icscscs",green)
end
screen.flip()
screen.waitVblankStart()
end