Currently I'm working on a 2.5D FPS game somewhat like Doom graphics-wise. Currently, I decided that before getting into polygon-structured enemies (especially in a Java software renderer), I would deal with 2D billboard sprites that emulate the behavior of a 3D character (animations for running sideways, forward, away, etc.), just like in Doom. I already can render sprites in the game, and have the animations face the correct way using vector math (the "look" vector).
However, now I'm thinking about how to control the animations for the enemies; an attack or death animation each have multiple frames. If i wanted to stop an attack animation because they die, would I add a simple check for that, or is there a more elegant solution? Just trying to create a good structure for the animations in my game . . .
As of right now, I have a enum called AnimationFrames, which loads each frame of an animation into a variable, so there's an AttackFrame1, AttackFrame2, etc, as well as an endFrame to know when the animation is over. The renderFrame() method sends the frame to the rendering pipeline. The nextFrame() method decides what the next frame would be (hopefully all this is self explanatory). Would I structure the animation control schemes like this:
public void attackAnimation(/*stuff*/) {
AnimationFrame frame = AnimationFrame.attackframe1;
while (!dead && frame != Frame.endFrame) {
renderFrame(frame);
frame = nextFrame(“attack”, frame);
}
}
public void dieAnimation(/*stuff*/) {
AnimationFrame frame = AnimationFrame.dieFrame1;
while (frame != Frame.endFrame) {
renderFrame(frame);
frame = nextFrame(“die”, frame);
}
}
or is there a more elegant or obvious solution? Am I missing something? I'm not even exactly sure what to ask I'm just wondering if this will work for a control scheme . . .I would start programming this into my game to test it out now, but I'm unfortunately behind code-wise than I am idea/planning-wise.
On a side note, does anyone have any useful links or books/articles that deal with controlling the flow of animation in a game? This seems to be the topic I'm currently addressing in my game.
--Chris