我对 Sprite Kit 游戏开发非常陌生。我目前正在开发我的第一个游戏 - 一个简单的游戏,玩家必须通过障碍物导航一个简单的对象。如果对象与障碍物碰撞 - GAME OVER。
我让它工作得很好,但我在动画问题上被困了一个多星期。几天来,我一直在寻找答案……但没有成功。所以基本上......当我的对象被导航越过障碍物时,我有一个动画模式(效果很好)。然而,一旦它碰到障碍物,我希望动画模式改变(变成爆炸)。出于某种原因,这并没有发生!:( 基本上完全忽略了这两行代码([self stopBeeAnimation]; 和 [selfbeatAnimation];)我添加了,游戏马上就结束了。
非常感谢我可能得到的任何帮助(这让我发疯):)
太感谢了。
这是我的代码:
-(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];
}}
和:
-(void) defeatedAnimation {
SKAction *defeatedAnimation;
NSMutableArray *textures2 =[NSMutableArray arrayWithCapacity:5];
for (int a = 1; a < 6; a++) {
NSString *textureName2 = [NSString stringWithFormat:@"defeated%d", a];
SKTexture *texture2 = [SKTexture textureWithImageNamed:textureName2];
[textures2 addObject:texture2];
}
defeatedAnimation = [SKAction animateWithTextures:textures2 timePerFrame:0.2];
}