It is currently Sun Oct 22, 2017 12:28 pm

All times are UTC - 7 hours





Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: Sprite animation
PostPosted: Thu Dec 27, 2012 8:26 pm 
Offline
User avatar

Joined: Thu Dec 27, 2012 8:15 pm
Posts: 22
I have been trying to locate any animation tutorials online but havent so far. I have gone over basic tutorials and have been learning quite a bit.

An example or two might go a long way. I have a few questions as well:

Can you run the animation routine during NMI?

Is there any built in PPU tricks, or is it all up to writing ASM?

How would you handle delays for slower animation or timed events?

Thanks!


Top
 Profile  
 
 Post subject: Re: Sprite animation
PostPosted: Thu Dec 27, 2012 8:48 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 10066
Location: Rio de Janeiro - Brazil
johnnystarr wrote:
I have been trying to locate any animation tutorials online but havent so far.

Advanced topics are hardly covered in friendly tutorials, I'm not sure why.

Quote:
An example or two might go a long way.

I think memblers posted some animation code at some point... Search for his name and "animation" and you might find something.

Quote:
Can you run the animation routine during NMI?

you shouldn't, unless all your game logic is inside the NMI handler, running after the video and sound updates (like in SMB1, for example). Character animation would work better close to the character's AI.

Quote:
Is there any built in PPU tricks, or is it all up to writing ASM?

No tricks at all, there are absolutely no hardware functions that will help you with animations. All graphics are static unless you change them from frame to frame, which you do with pure logic.

Quote:
How would you handle delays for slower animation or timed events?

I'm not sure what you mean here... Could you provide an example?

Delays are often represented as numbers between 1 and 256 (which you can store as 0-255 and use the carry to compensate) that you add to an accumulator, and whenever that accumulator overflows (the carry flag will be set after the addition) you have a "tick" (in the case of animation this means you'd advance to the next frame). You can easily adjust this value to make the animations faster or slower, with a good deal of precision. This works for music too.


Top
 Profile  
 
 Post subject: Re: Sprite animation
PostPosted: Fri Dec 28, 2012 2:14 am 
Offline
User avatar

Joined: Mon Apr 04, 2011 11:49 am
Posts: 1905
Location: WhereverIparkIt, USA
This tut is pretty decent: game engine. The first couple go into sprite animations.

_________________
If you're gonna play the Game Boy, you gotta learn to play it right. -Kenny Rogers


Top
 Profile  
 
 Post subject: Re: Sprite animation
PostPosted: Fri Dec 28, 2012 8:03 pm 
Offline
User avatar

Joined: Sun May 27, 2012 8:43 pm
Posts: 1306
The psuedo-code for the animation engine in my C++ fighting game works like so:

Code:
variable currentFrame;
variable advanceCounter;
variable frameLength[]; // each cell of this array corresponds to every frame of the animation
constant animationLength;
constant loopbackFrame;

updateAnimations:

if the currentFrame > animationLength:
  reset currentFrame to loopbackFrame;
else:
  increment advanceCounter;
  if advanceCounter > frameLength[currentFrame]:
    reset advanceCounter to 0;
    increment currentFrame;
display animation frame #[currentFrame]


I'm too tired to proofread that, but I hope that clarifies how you might structure animation playback.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 7 hours


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group