Come creare una camminata di animazione in 2D AMORE

Quindi mi chiedevo come modificare un’immagine del personaggio che abbiamo creato a seconda del tasto ho premuto/am premendo?

La mia ultima intenzione di avere una camminata di animazione che si verificano quando “d” (o i tasti wasd) è premuto, ma poi si ferma quando il tasto “d” è stato appena premuto etc. Tutte le immagini sono state create già.

Ho provato ma non ha funzionato:

function love.load()

    if love.keyboard.isDown("a") then
        hero = love.graphics.newImage("/hero/11.png")
    elseif love.keyboard.isDown("d") then
        hero = love.graphics.newImage("/hero/5.png")
    elseif love.keyboard.isDown("s") then
        hero = love.graphics.newImage("/hero/fstand.png")
    elseif love.keyboard.isDown("w") then
        hero = love.graphics.newImage("/hero/1.png")
    end

function love.draw()

    love.graphics.draw(background)
    love.graphics.draw(hero, x, y)

end
InformationsquelleAutor Switchkick | 2012-02-20

 

One Reply
  1. 21

    È necessario capire come LÖVE opere. È (molto in fondo) questo:

    love.load()       -- invoke love.load just once, at the beginning
    while true do     -- loop that repeats the following "forever" (until game ends)
      love.update(dt) --   call love.update() 
      love.draw()     --   call love.draw()
    end

    Questo schema è così frequente che il ciclo ha un nome, si chiama Il Ciclo Di Gioco.

    Il tuo codice non funziona, perché si sta utilizzando love.load() come se fosse parte del ciclo di gioco, ma non è così. Si chiama, all’inizio, durante la prima millisecond del programma, e mai più.

    Si desidera utilizzare love.load caricare le immagini, e love.update modificarli:

    function love.load()
      heroLeft  = love.graphics.newImage("/hero/11.png")
      heroRight = love.graphics.newImage("/hero/5.png")
      heroDown  = love.graphics.newImage("/hero/fstand.png")
      heroUp    = love.graphics.newImage("/hero/1.png")
    
      hero = heroLeft -- the player starts looking to the left
    end
    
    function love.update(dt)
      if     love.keyboard.isDown("a") then
        hero = heroLeft
      elseif love.keyboard.isDown("d") then
        hero = heroRight
      elseif love.keyboard.isDown("s") then
        hero = heroDown
      elseif love.keyboard.isDown("w") then
        hero = heroUp
      end
    end
    
    function love.draw()
      love.graphics.draw(background)
      love.graphics.draw(hero, x, y)
    end

    Il codice di cui sopra ha una certa ripetitività che può essere escluso l’uso di tabelle, ma ho lasciato semplice scopo.

    Si noterà, inoltre, che ho incluso il dt parametro nel love.update funzione. Questo è importante, dal momento che sarà necessario per assicurarsi che le animazioni funzionare lo stesso in tutti i computer (velocità a cui love.update è chiamato dipende ogni computer, e dt consente di far fronte con che)

    Tuttavia, se si vuole fare animazioni, si probabilmente desidera utilizzare questo Animazione Lib o la mia.

Lascia un commento