Sprite Kit 无法通过分数,Null 值

Posted

技术标签:

【中文标题】Sprite Kit 无法通过分数,Null 值【英文标题】:Sprite Kit unable to pass score, Null Value 【发布时间】:2015-04-13 10:08:09 【问题描述】:

我试图以一种非常基本的方式在我用 ios 版 Sprite 工具包制作的游戏中的游戏场景和游戏结束场景之间传递分数

第一个场景

SKTransition* reveal = [SKTransition flipHorizontalWithDuration:1.0];
    GameOver* scene = [GameOver sceneWithSize:self.view.bounds.size];

    NSNumber* scoreNum = [NSNumber numberWithInt:score];

    scene.score = scoreNum;
    scene.scaleMode = SKSceneScaleModeAspectFill;
    [self.view presentScene:scene transition: reveal];

第二个场景(场景)

NSString* scoreMessage = [NSString stringWithFormat:@"Your Score: %@", self.score.stringValue];

在第二个场景中,我每次都得到 null。如果我在第一个场景中 NSLog NSNumber 值,我会得到正确的值!

谢谢你,

第二场景属性声明:

@property (strong) NSNumber* score;

【问题讨论】:

你在第二个场景的哪个方法中创建字符串? 你为什么需要使用NSNumber 你能发布 GameOver 场景的属性声明吗? 我在 initWithSize 中调用它,使用 NSNumber 只是为了让 stringValue 更容易,我会发布它! 如果您在initWithSize 中创建字符串,那么您会在设置之前尝试使用它,这就是为什么它为零 【参考方案1】:

正如 Paulw 所说,您无法在场景的 init 方法中访问您传递的 NSNumber。但是,您可以在场景的 -(void)didMoveToView:(SKView *)view 方法中访问它,这应该足以满足您的需求。

【讨论】:

以上是关于Sprite Kit 无法通过分数,Null 值的主要内容,如果未能解决你的问题,请参考以下文章

Sprite Kit 最后得分数据

使用 Swift 在 Sprite Kit 游戏中重置高分

Sprite kit:删除特定节点而不是所有节点

iOS Sprite Kit didBeginContact 无法正常工作

Sprite Kit 中的 AVAudioPlayer“加载资源失败”原因资源“无法加载 sound.caf”

如何通过 Sprite Kit 中的 CGPoints 数组制作动画 - Swift