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 é importante saber o que elas fazem.

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.

Categoriy:Tutorials



Outras línguas