Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exibindo imagem no love2d

Como eu faço para definir um tempo no qual a imagem fique na tela? Utilizando o love.graphics.draw é possivel definir um tempo de duração?

1 resposta
solução!

Olá Sérgio,

Como a tela do jogo é redesenhada do zero a cada quadro do nosso jogo, você precisaria ter um controle de que a imagem precisa ser exibida e também um controle da quantidade de quadros para o qual ela já foi exibida.

A ideia seria algo assim:

duracaoImagem = 15
mostraImagem = false

function exibeImagem()
    mostraImagem = true
end

function love.draw()
    love.graphics.draw(background, 0, 0)
    love.graphics.draw(aviao_14bis.imagem, aviao_14bis.x, aviao_14bis.y)

    for k, meteoro in pairs(meteoros) do
        love.graphics.draw(meteoro_img, meteoro.x, meteoro.y) 
    end

    for k, tiro in pairs(aviao_14bis.tiros) do
        love.graphics.draw(tiro_img, tiro.x, tiro.y) 
    end

    if mostraImagem then
        if duracaoImagem > 0 then
            -- aqui vc desenha a imagem com love.graphics.draw
            duracaoImagem = duracaoImagem - 1
        else
            mostraImagem = false
        end
    end
end

Para uma imagem isso resolveria bem o problema e você conseguiria controlar usando o código acima como referência.

Nas partes 1 e 2 do curso https://www.alura.com.br/curso-online-desenvolvimento-de-jogos-com-lua , apresentamos de uma forma um pouco mais detalhada como tratar esse tipo de problema quando precisamos lidar com animações, imagens e mensagens que precisam ficar mais tempo na tela. O legal é que tudo que você aprender de Lua nesses cursos você também consegue aplicar na Love2D.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software