Just started playing around with love to see how it all works and im quiet impressed.
Though looking through the wiki and forum I cant seem to find my answer.
Im trying to animate the character when he walks. I have 8 images per direction .
I looked at AnAL but i dont think it will do what i want.
function love.load()
player = love.graphics.newImage("images/soldier/walking s0000.bmp")
player_x = 100
player_y = 50
player_speed = 100
i = 0
love.graphics.setBackgroundColor(110,80,52)
lastkey = "nothing"
keynow = "nothing"
end
function love.keypressed(key)
keynow = key
end
function love.keyreleased(key)
lastkey = key
end
function love.update(dt)
key_Right = love.keyboard.isDown("right")
key_Left = love.keyboard.isDown("left")
key_Down = love.keyboard.isDown("down")
key_Up = love.keyboard.isDown("up")
if key_Right then
player = love.graphics.newImage("images/soldier/walking e0000.bmp")
player_x = player_x + (player_speed * dt)
elseif key_Left then
player = love.graphics.newImage("images/soldier/walking w0000.bmp")
player_x = player_x - (player_speed * dt)
elseif key_Up then
player = love.graphics.newImage("images/soldier/walking n0000.bmp")
player_y = player_y - (player_speed * dt)
elseif key_Down then
player = love.graphics.newImage("images/soldier/walking s0000.bmp")
player_y = player_y + (player_speed * dt)
end
if love.keyboard.isDown( "escape" ) then
love.event.push( "q" )
end
end
function love.draw()
love.graphics.draw(player, player_x, player_y)
love.graphics.print("FPS: "..love.timer.getFPS(), 10, 20)
love.graphics.print(i, 10,40)
love.graphics.print("key Now: " .. keynow, 10, 60)
love.graphics.print("Last key: " .. lastkey, 10, 80)
end
As you can see the character image will change depending on up,down,left,right but i have 8 images to make up per direction which will animate the character walking. Im not sure how to go about this if you understand what I mean.
THe first problem I see is that you are creating a new image every time you move. use love.graphics.newImage() once to create the image, then use it the correct way. Here's a modified version of your code (changes in bold):
NOTE: You will want to use some other image format that BMP. Bitmaps are unompressed and take up a LOT of space. I suggest PNG.
NOTE: Learn about Lua tables. They will help you manage your variables and are one of the most powerful aspects of Lua.
function love.load() player_left = love.graphics.newImage("images/soldier/leftimg.bmp") player_right = love.graphics.newImage("images/soldier/rightimg.bmp") player_up = love.graphics.newImage("images/soldier/upimg.bmp") player_down = love.graphics.newImage("images/soldier/downimg.bmp")
player_x = 100
player_y = 50
player_speed = 100 player_image = player_right -- choosing one for default
i = 0
love.graphics.setBackgroundColor(110,80,52)
lastkey = "nothing"
keynow = "nothing"
end
if key_Right then player = player_right
player_x = player_x + (player_speed * dt)
elseif key_Left then player = player_left
player_x = player_x - (player_speed * dt)
elseif key_Up then player = player_up
player_y = player_y - (player_speed * dt)
elseif key_Down then player = player_down
player_y = player_y + (player_speed * dt)
end
if love.keyboard.isDown( "escape" ) then
love.event.push( "q" )
end
end
tag :P
Here are a few pages that might help you:
[url]http://lua-users.org/wiki/TablesTutorial[/url]
[url]http://www.lua.org/pil/2.5.html[/url]
[url]http://www.kb.iu.edu/data/aekl.html[/url] - PNG files are great because they are so versatile. You can have a full-color PNG or an indexed, smaller file. They support multiple levels of alpha blending (transparency) and are -visually- uncompressed but carry a much smaller footprint than a BMP. I always used PNG files for graphics. Or maybe TGA, but they're not too dissimilar. TGA's can be trickier to work with at times.
Do you recognise when the world won't stop for you? Or when the days don't care what you've got to do? When the weight's too tough to lift up, what do you? Don't let them choose for you, that's on you.