0
\$\begingroup\$

I am trying to make a 2D platform game which is Megaman-style. I have some problems when I make shooting animation. In Megaman game, the animation can interrupt by press keys. Just like this:

enter image description here

For instance, when move button was pressed, the animation frame will loop in D0~D9, if fire button was pressed, it interrupts the current animation and transition to shooting animation(A,B,C). If stop shooting, it goes back to move(D).

I have no idea how to design "interrupt/transition animation system" in my game. Here is my pseudo code(JavaScript):

animation.play('move',[0,1,2,3,4,5,6,7,8,9],loop);

if(isMoving && key['fire']) {
    //I don't know how to make this work
    animation.play('fire',[A1,A2,B3,B4,B5,C6,D7]);
}

and each frame has a metaData like this:

{x:37,y:0,w:36,h:41,offsetX:0,offsetY:0,duration:100,collisionBox:[0.4,0,0.84,1.875],
    interrupt:{
        nextMotion:'A',
        nextFrame:7
    }
}

What is common solution in this scene? Please, Any help would be appreciated.

\$\endgroup\$
0
\$\begingroup\$

A very simple solution would be to use a queue. Like this:

queue.push(function() {
    animation.play('fire',[A1,A2,B3,B4,B5,C6,D7]);
    queue.pop()
});
if(isMoving && key['fire']) {
    queue.push(function() {
        animation.play('fire',[A1,A2,B3,B4,B5,C6,D7]);
        queue.pop()
    });
}
|improve this answer|||||
\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.