私はCocos2DとSneakyInputジョイスティックを使って格闘ゲームを作っています。私はキャラクターとこのキャラクターのアニメーションを持っています。(walkAnim、attackAnim、jumpAnim ...など)
次のようなことをしたい:jumpButtonを押すと、キャラクターはccjumpbyとjumpAnimを実行します。
キャラクターがジャンプしているときに、attackButtonを押して、キャラクターにattackAnimを実行させますが、キャラクターはまだccjumpbyを実行しています。
攻撃ボタンがなくても、キャラクターは引き続きjumpAnimとccjumpbyを実行します。
私がやりたいのは「ストリートファイター」のようなものです。
character.mには、次のものがあります。
- (void) jumpButtonPress {
id action = nil;
id movementAction = nil;
CGPoint newPosition;
newPosition = ccp(screenSize.width * 0.2f, 0.0f);
if ([self flipX] == YES) {
newPosition = ccp(newPosition.x * -1.0f, 0.0f);
}
movementAction = [CCJumpBy actionWithDuration:1.5f
position:newPosition
height:160.0f
jumps:1];
action = [CCSequence actions:
[CCAnimate
actionWithAnimation:crouchingAnim
restoreOriginalFrame:NO],
[CCSpawn actions:
[CCAnimate
actionWithAnimation:jumpingAnim
restoreOriginalFrame:YES],
movementAction,
nil],
[CCAnimate
actionWithAnimation:afterJumpingAnim
restoreOriginalFrame:NO],
nil];
[self runAction:action];
}
- (void) attackButtonPressed {
action = [CCAnimate
actionWithAnimation:rightPunchAnim
restoreOriginalFrame:NO];
[self runAction:action];
}
これは機能していません。