I have a "GameCharacter" class where I have a sprite for my main character in the game, I loaded the frames and animations correctly. I can switch between animations with single touches or swiping gestures. Right now I can rotate between animations.
In my touch function of my scene I have this:
_mychar->RunAnimation(id);
where id is the ID of the animation, just an integer I change with every touch.
the method works like this:
void GameCharacter::RunAnimation(int a){
_sprite->stopAllActions();
if(a<_animation.size() && a>=0){
_sprite->runAction( CCRepeatForever::create(_animation[a]));
}
}
_animation[]
is just a vector with CCAnimate*
objects retained (I release them later when I destroy the GameCharacter).
I have 2 idle animations, I want to switch between them randomly, for example, I want to "queue" the first animation 3 to 5 times and the second 1 to 2 times, and repeat like this forever... also, I want to interrupt this "infinite random idle animation" with a touch that makes the character run another animation until it ends (for example a jump animation) and when it ends, just get to the idle animation. I don't know if I explained well, I hope you can understand me.
The id for the animations are:
- 0-idle1 (3 frames)
- 1-idle2 (6 frames)
- 2-jump (12 frames)
- 3-walk (12 frames)
Right now, i just need to be able to get the character in that idle state (random times between animation 0 and 1) and whenever touch, the jump animation is done once and at the end the idle start again...
I will solve the walking animation later.
Thanks in advance!