Tutorial:Callback Functions (Italiano)
Le funzioni di callback (richiamo) in LÖVE sono chiamate da love.run per eseguire diversi compiti e sono tutte opzionali. A ogni modo, un'esperienza di gioco completa probabilmente richiederà che siano utilizzate tutte, quindi è saggio conoscerle.
Una callback, per chi è nuovo nella programmazione o poco familiare con il termine, è una funzione che lavora al contrario, per certi versi. Una funzione regolare come love.graphics.draw o math.floor viene chiamata e LÖVE o Lua fanno qualcosa. Una callback, invece, è una funzione che il programmatore scrive e LÖVE chiama in certi momenti. Questa rende semplice mantenere il codice organizzato e ottimale. Per esempio, visto che love.load verrà chiamata solo una volta quando il gioco viene avviato per la prima volta (prima di ogni altra callback), è un buon posto per mettere il codice che carica il contenuto del gioco o che prepara il tutto.
Contents
love.load
function love.load()
image = love.graphics.newImage("cake.jpg")
love.graphics.setNewFont(12)
love.graphics.setColor(0,0,0)
love.graphics.setBackgroundColor(255,255,255)
end
Questa funzione viene chiamata una sola volta, quando il gioco è avviato, ed è il posto dove di solito si caricano le risorse, si inizializzano le variabili e si stabiliscono delle impostazioni specifiche. Tutte queste cose possono essere fatte anche in qualsiasi altro posto, ma in questo modo vengono eseguite solo una volta, salvando molte risorse di sistema.
love.update
function love.update(dt)
if love.keyboard.isDown("up") then
num = num + 100 * dt -- in questo modo si incrementa num di 100 ogni secondo
end
end
Questa funzione è chiamata continuamente e probabilmente sarà il posto dove i calcoli matematici vengono svolti. 'dt' sta per "delta time" (differenza di tempo) ed è la quantità di secondi passati dall'ultima volta che questa funzione è stata chiamata (che è normalmente un valore piccolo come 0.025714).
love.draw
function love.draw()
love.graphics.draw(image, imgx, imgy)
love.graphics.print("Fai clic e trascina la torta in giro o usa le frecce direzionali", 10, 10)
end
love.draw
è il posto dove avvengono tutti i disegni (se non era già abbastanza chiaro) e se viene chiamato qualsiasi tipo di codice della libreria love.graphics.draw
fuori da questa funzione non avrà effetto. Anche questa funzione è chiamata continuamente, per cui bisogna tenere a mente che se viene cambiato il/la carattere/colore/modalità/ecc. alla fine della funzione ciò avrà effetto sulle cose all'inizio della funzione. Per esempio:
function love.load()
love.graphics.setColor(0,0,0)
end
function love.draw()
love.graphics.print("Questo testo non è nero a causa della linea sotto", 100, 100)
love.graphics.setColor(255,0,0)
love.graphics.print("Questo testo è rosso", 100, 200)
end
love.mousepressed
function love.mousepressed(x, y, button)
if button == 'l' then
imgx = x -- muovi l'immagine dove si trova il curosre
imgy = y
end
end
Questa funzione è chiamata ogni volta che un pulsante del mouse è premuto e riceve il nome del pulsante e le coordinate del punto in cui è stato premuto. Il nome del pulsante può essere una qualsiasi delle costanti. Questa funzione lavora molto bene insieme a love.mousereleased
.
love.mousereleased
function love.mousereleased(x, y, button)
if button == 'l' then
fireSlingshot(x,y) -- questa funzione incredibilmente favolosa è definita da un'altra parte
end
end
Questa funzione è chiamata ogni volta che un pulsante del mouse viene rilasciato e riceve il nome del pulsante e le coordinate di dove è stato rilasciato. Si può usare questa funzione insieme a love.mousepressed
o separatamente, non sono collegate in alcun modo.
love.keypressed
function love.keypressed(key)
if key == 'b' then
text = "Il tasto B è stato premuto."
elseif key == 'a' then
a_down = true
end
end
Questa funzione è chiamata ogni volta che un tasto della tastiera è premuto e riceve il nome del tasto premuto. Il nome del tasto può essere una qualsiasi delle costanti. Questa funzione lavora molto bene insieme a love.keyreleased
.
love.keyreleased
function love.keyreleased(key)
if key == 'b' then
text = "Il tasto B è stato rilasciato."
elseif key == 'a' then
a_down = false
end
end
Questa funzione è chiamata ogni volta che un tasto della tastiera viene rilasciato e riceve il nome del tasto rilasciato. Si può usare questa funzione insieme a love.keypressed
o separatamente, non sono collegate in alcun modo.
love.focus
function love.focus(f)
if not f then
print("NON ATTIVO")
else
print("ATTIVO")
end
end
Questa funzione è chiamata ogni volta che l'utente fa clic all'interno o all'esterno della finestra di LÖVE. Per esempio, se si sta giocando all'interno di una finestra e l'utente fa clic sul suo browser internet, il gioco può essere avvisato e automaticamente mettere in pausa il gioco.
function love.focus(f) gameIsPaused = not f end
function love.update(dt)
if gameIsPaused then return end
-- Il resto del proprio love.update va qui
end
love.quit
function love.quit()
print("Grazie per aver giocato! Torna presto!")
end
Questa funzione è chiamata ogni volta che l'utente fa clic sul pulsante di chiusura della finestra (spesso una X). Per esempio, se l'utente non vuole più giocare, può fare clic sul pulsante di chiusura. Quindi, prima che si chiuda, il gioco può salvare il suo stato.
Queste sono le funzioni di callback e il loro uso di base.
Altre lingue
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info