Tutorial:Callback Functions (Português)
As funções callback são usadas no LÖVE pelo engine para fazer várias tarefas e todas são opcionais. Contudo para uma experiência de jogo completa, você provavelmente usará quase todas, então é sábio saber o que elas são.
Contents
love.load
function love.load()
image = love.graphics.newImage("cake.jpg")
local f = love.graphics.newFont(12)
love.graphics.setFont(f)
love.graphics.setColor(0,0,0,255)
love.graphics.setBackgroundColor(255,255,255)
end
Essa função é chamada apenas um vez, quando o jogo começa, e normalmente é onde você deverá carragar os recursos, inicializar variáveis e definir configurações específicas. Todas essas coisas podem ser feitas em qualquer lugar também, mas faze-las aqui significa que elas só serão feitas uma vez, poupando muito o desempenho do sistema.
love.update
function love.update(dt)
if love.keyboard.isDown("up") then
num = num + 100 * dt -- isso irá acrescentar 100 por segundo ao num
end
end
Essa função é chamada continuamente e será provavelmente onde a maioria dos cálculos serão feitos.'dt' representa "delta time" e é o número de segundos desde a última vez que essa função foi chamada(normalmente é um valor pequeno, perto de 0.025714).
love.draw
function love.draw()
love.graphics.draw(image, imgx, imgy)
love.graphics.print("Clique e arraste o bolo ou use as setas", 10, 10)
end
love.draw
é onde todo desenho é feito e se você chamar qualquer das love.graphics.draw
fora dessa função, elas não faram efeito. Essa função também é chamada continuamente, então tenha em mente que se você mudar a fonte/cor/modo/etc no final da função, isso só vai ter efeito no início da função. Por exemplo:
function love.load()
love.graphics.setColor(0,0,0)
end
function love.draw()
love.graphics.print("Este texto não é preto por causa dessa linha a baixo", 100, 100)
love.graphics.setColor(255,0,0)
love.graphics.print("Este texto é vermelho", 100, 200)
end
love.mousepressed
function love.mousepressed(x, y, button)
if button == 'l' then
imgx = x -- move a imagem para onde o mouse foi clicado
imgy = y
end
end
Essa função é chamada sempre que um botão do mouse é apertado e ela recebe o botão e as coordenadas de onde foi pressionado. O botão pode ser qualquer dos constants. Essa função vai muito bem junto da função love.mousereleased
.
love.mousereleased
function love.mousereleased(x, y, button)
if button == 'l' then
fireSlingshot(x,y) -- Essa é uma função incrível definida em outro lugar qualquer
end
end
Essa função é chamada sempre que um botão do mouse é solto e ela recebe o botão e as coordenadas de onde foi solto. Você pode ter essa função junta com love.mousepressed
ou separada, elas não são dependentes de nenhuma forma.
love.keypressed
function love.keypressed(key, unicode)
if key == 'b' then
text = "A tecla B foi pressionada."
elseif key == 'a' then
a_down = true
end
end
Essa função é chamada sempre que uma tecla do teclado é pressionada e recebe a tecla pressionada. A tecla pode ser qualquer constants. Essa função pode ser usada junta à love.keyreleased
.
love.keyreleased
function love.keyreleased(key, unicode)
if key == 'b' then
text = "A tecla B foi solta."
elseif key == 'a' then
a_down = false
end
end
Essa função é chamada sempre que uma tecla do teclado é solta e recebe a tecla solta. Essa função pode ser usada junta de love.keypressed
ou separada, elas não são dependentes de nenhuma forma.
love.focus
function love.focus(f)
if not f then
print("LOST FOCUS")
else
print("GAINED FOCUS")
end
end
Essa função é chamada sempre que o usuário clica fora ou dentro da janela do jogo. Por exemplo, se ele está jogando o jogo no modo janela e clica em seu navegador de internet, o jogo é notificado e automaticamente é pausado.
love.quit
function love.quit()
print("Obrigado por jogar! Volte logo!")
end
Essa função é chamada sempre que o usuário clica no botão de fechar da janela(normalmente um 'X'). Por exemplo, se ele decide parar de jogar, ele pode apertar no botão de fechar da janela, então, antes do jogo fechar, o seu progresso será salvo.
Essas são as funções callback e seu uso básico.
Outras línguas
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