Animation SpriteKit-在SkPhysicContact更改动画

Animation SpriteKit-在SkPhysicContact更改动画,animation,sprite-kit,flappy-bird-clone,Animation,Sprite Kit,Flappy Bird Clone,我是非常新的精灵套件游戏开发。我目前正在开发我的第一个游戏-一个简单的游戏,玩家必须导航一个简单的物体通过障碍物。如果物体与障碍物碰撞,游戏结束 我做的很好,但是我已经因为一个动画问题被困了一个多星期。我已经找了好几天的答案了。。。没有成功。所以基本上。。。当我的对象被导航通过障碍物时,我有一个动画模式可以很好地工作。但是,一旦它碰到障碍物,我希望动画模式变为爆炸。由于某种原因,这并没有发生!:它基本上完全忽略了两行代码[自停止动画];和[自我挫败];我补充道,比赛马上就结束了 我在这方面得到的

我是非常新的精灵套件游戏开发。我目前正在开发我的第一个游戏-一个简单的游戏,玩家必须导航一个简单的物体通过障碍物。如果物体与障碍物碰撞,游戏结束

我做的很好,但是我已经因为一个动画问题被困了一个多星期。我已经找了好几天的答案了。。。没有成功。所以基本上。。。当我的对象被导航通过障碍物时,我有一个动画模式可以很好地工作。但是,一旦它碰到障碍物,我希望动画模式变为爆炸。由于某种原因,这并没有发生!:它基本上完全忽略了两行代码[自停止动画];和[自我挫败];我补充道,比赛马上就结束了

我在这方面得到的任何帮助都是非常感激的这让我发疯:

非常感谢你

这是我的代码:

-(void)didBeginContact:(SKPhysicsContact *)contact {


SKSpriteNode *firstSprite;
SKSpriteNode *secondSprite;

firstSprite = (SKSpriteNode *)contact.bodyA.node;
secondSprite = (SKSpriteNode *)contact.bodyB.node;


if ((contact.bodyA.categoryBitMask == beeCategory) && (contact.bodyB.categoryBitMask = obstacleCategory)) {

    [self stopBeeAnimation];
    [self defeatedAnimation];

    [obstacleArray removeAllObjects];
    [bee.physicsBody setAffectedByGravity:NO];
    [timer invalidate];
    scoreLabel.fontSize = 30;
    scoreLabel.text = [NSString stringWithFormat:@"GAME OVER %d", score/2];


    [self removeFromParent];
    SKTransition *transition = [SKTransition fadeWithDuration:5];
    [self.scene.view presentScene:[[NPMyScene alloc]initWithSize:self.size] transition:transition];
}}
以及:

看这里:

SKTransition *transition = [SKTransition fadeWithDuration:5];
[self.scene.view presentScene:[[NPMyScene alloc]initWithSize:self.size] transition:transition];
您正在呈现不同的场景,或者可能是同一场景类的另一个实例?在尝试运行动画后的视图中。当前场景中的任何动画更改都将不可见,因为新场景将替换当前场景

但即使在那之前

- (void)defeatedAnimation {
    // ...
   defeatedAnimation = [SKAction animateWithTextures:textures2 timePerFrame:0.2];
}
您正在创建一个SKAction,但没有对其执行任何操作。要使操作生效,您需要在具有的节点上运行该操作

- (void)defeatedAnimation {
    // ...
   defeatedAnimation = [SKAction animateWithTextures:textures2 timePerFrame:0.2];
}