1

この Spritekit チュートリアルに従っています http://code.tutsplus.com/tutorials/ios-sdk-build-a-facts-game-interface-creation--mobile-20764

また、viewDidLoad メソッドにタイマーのテキストを追加することを提案しています。チュートリアルで提供されるコードは次のようになります。

_timerLevel = [SKLabelNode labelNodeWithFontNamed:@"Chalkduster"];
_timerLevel.text = @"30";
_timerLevel.fontSize = 70;
_timerLevel.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMidY(self.frame)+350);
[self addChild:_timerLevel];

[self addChild:_timerLevel] 行を実行すると、「親にナイル ノード エラーを追加しようとしました」というエラーがスローされます。

そして _timerLevel はインターフェースで次のように宣言されています

@property (nonatomic,weak) SKLabelNode* timerLevel;

シーンは次のように初期化されます。

-(id) initWithSize:(CGSize)size inLevel:(NSInteger)level withPlayerLives:(int)lives {
    if (self = [super initWithSize:size]) {
        self.backgroundColor = [SKColor colorWithRed:0.35 green:0.25 blue:0.5 alpha:1.0];
        defaults = [NSUserDefaults standardUserDefaults];

        playerLives = lives;
        playerLevel = level;

        maximumTime = 30;

    }


    return self;
}

_timerLevel が初期化されていないため nil であるというエラーですか? どうすれば正しく初期化できますか? どうもありがとう

4

2 に答える 2

0

ビュー コントローラーの ViewDidLoad 関数に SKLabelNode コードを含めたくない場合。作成したSKSceneのdidMoveToView関数で動かしたい。

于 2014-12-11T05:15:49.297 に答える