Hi,
I'm a LÖVE nooby and working on my first game with this tool.
I've searched through the forums, google, etc and couldn't find an example with uses AnAL or Anim8 (I'd prefer anim8) to animate a sprite on response to a key event -I'm using spritesheets which holds most of the art from my game.
I've managed to get the effect I wanted using quads and image, updating the 'current' quad with a table of quads. But my solution is cumbersome and I don't want to spend time tweaking it since anim8 does the job correctly.
So the question is: in order to attach an animation to a key even using anim8 what should I do? Animate has the method :update(dt) which is called where I used to swap quads, but I don't get how may I trigger other animations in there.
Is that even possible or should I used quads 'by hand'?
cheers!
anim8 and key events: how to?
Forum rules
Before you make a thread asking for help, read this.
Before you make a thread asking for help, read this.
- Robin
- The Omniscient
- Posts: 6506
- Joined: Fri Feb 20, 2009 4:29 pm
- Location: The Netherlands
- Contact:
Re: anim8 and key events: how to?
What is your code so far? We might be able to help you more then.
Help us help you: attach a .love.
Re: anim8 and key events: how to?
I just basically followed the anim8's example, but I tried to insert a key listener to it:
Code: Select all
local anim8 = require 'anim8'
local image, animation
function love.load()
image = love.graphics.newImage('path/to/image.png')
local g = anim8.newGrid(32, 32, image:getWidth(), image:getHeight())
animation = anim8.newAnimation('loop', 0.1, g('1-8,1'))
end
function love.update(dt)
if love.keyboard.isDown("right") then
-- what should I do?
elseif love.keyboard.isDown("left") then
-- what should I do?
end
if love.keyboard.isDown("down") then
-- what should I do?
elseif love.keyboard.isDown("up") then
-- what should I do?
end
animation:update(dt)
end
function love.draw()
animation:draw(image, 100, 200)
end
- kikito
- Inner party member
- Posts: 3153
- Joined: Sat Oct 03, 2009 5:22 pm
- Location: Madrid, Spain
- Contact:
Re: anim8 and key events: how to?
The easiest, simplest way to proceed here is creating two global variables named x and y. Make them start at something in love.load (for example, 100 and 100).
Then, change their values in love.update - don't forget to use dt. For example, when the player presses left, make x = x + 60*dt .( 60 means "sixty pixels per second").
Finally, use x and y instead of 100, 100 in love.draw.
Good luck!
Then, change their values in love.update - don't forget to use dt. For example, when the player presses left, make x = x + 60*dt .( 60 means "sixty pixels per second").
Finally, use x and y instead of 100, 100 in love.draw.
Good luck!
When I write def I mean function.
-
- Prole
- Posts: 7
- Joined: Sat May 19, 2012 5:42 pm
- Location: Streetsboro, OH
- Contact:
Re: anim8 and key events: how to?
Is this in main.lua or player.lua?
Aspiring fine artist, graphic designer, and game developer.
website: http://www.devonpeak.wordpress.com
twitter: http://www.twitter.com/_devonpeak
website: http://www.devonpeak.wordpress.com
twitter: http://www.twitter.com/_devonpeak
- kikito
- Inner party member
- Posts: 3153
- Joined: Sat Oct 03, 2009 5:22 pm
- Location: Madrid, Spain
- Contact:
Re: anim8 and key events: how to?
I would say that x and y should be defined in player.lua, since they are player-related. You will probably want to expose them to main.lua (either by making them global variables or making your player a table and putting them there, so you can do player.x and player.y from main.lua - I recommend this later option)
When I write def I mean function.
Who is online
Users browsing this forum: Bing [Bot] and 3 guests