Spritekit 动画在 iOS7 中不起作用,但在 iOS8 中起作用
Spritekit animation doesn't work in iOS7 but does in iOS8
我制作了一个游戏来教孩子们如何数数。当您点击正确的数字时,它会爆炸,下一个开始有一个发光的动画作为提示。
不久前我注意到这个特定的动画在 iOS7 中不起作用。
这是它的样子:
我用一个 NSTimer 做了这个,那个和一个带有动画的方法:
-(void)addGlow
{
if (!timer) {
[self startTimer];
}
SKSpriteNode* back = [SKSpriteNode spriteNodeWithTexture:self.body.texture];
back.blendMode = SKBlendModeAdd;
back.position = CGPointMake(0, 0 - 2);
[back runAction:[SKAction scaleTo:0.72 duration:0] completion:nil];
SKAction* group = [SKAction group:@[[SKAction scaleTo:1 duration:0.8],[SKAction fadeAlphaTo:0 duration:0.8]]];
[self addChild:back];
[back runAction:[SKAction sequence:@[group,[SKAction removeFromParent]]]];
}
这是我的启动方法:
-(void)startTimer
{
timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(addGlow) userInfo:nil repeats:YES];
}
我确实对其进行了调试,并且在两个 iOS 版本上调用该方法都没有错误。关于如何发现正在发生的事情的任何想法?
我看到你没有设置 zPosition。确保它包含您期望的内容。 Apple 在 iOS 7 和 8 之间对响应链进行了更改,因此如果他们更改了 zPositions 的初始化方式,我不会感到惊讶。
我制作了一个游戏来教孩子们如何数数。当您点击正确的数字时,它会爆炸,下一个开始有一个发光的动画作为提示。
不久前我注意到这个特定的动画在 iOS7 中不起作用。
这是它的样子:
我用一个 NSTimer 做了这个,那个和一个带有动画的方法:
-(void)addGlow
{
if (!timer) {
[self startTimer];
}
SKSpriteNode* back = [SKSpriteNode spriteNodeWithTexture:self.body.texture];
back.blendMode = SKBlendModeAdd;
back.position = CGPointMake(0, 0 - 2);
[back runAction:[SKAction scaleTo:0.72 duration:0] completion:nil];
SKAction* group = [SKAction group:@[[SKAction scaleTo:1 duration:0.8],[SKAction fadeAlphaTo:0 duration:0.8]]];
[self addChild:back];
[back runAction:[SKAction sequence:@[group,[SKAction removeFromParent]]]];
}
这是我的启动方法:
-(void)startTimer
{
timer = [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(addGlow) userInfo:nil repeats:YES];
}
我确实对其进行了调试,并且在两个 iOS 版本上调用该方法都没有错误。关于如何发现正在发生的事情的任何想法?
我看到你没有设置 zPosition。确保它包含您期望的内容。 Apple 在 iOS 7 和 8 之间对响应链进行了更改,因此如果他们更改了 zPositions 的初始化方式,我不会感到惊讶。