2017-01-30 18 views
0

私はObjective-CベースのプロジェクトをXcodeに持っています。私はビューコントローラで小さいビューとしてSpriteKitシーンを追加しようとしています。 SpriteKitファイルはすばやくあります。 Floor1.sksを追加し、それをFloor1.swiftにリンクしました。Swift SKSceneはObjective-Cプロジェクトで空白として表示されます

これをObjective-C ViewController.mファイルに読み込もうとしています。私のストーリーボードでは、SKViewクラスのビューを作成しました。私は適切にブリッジヘッダーファイルを作成したと思います。現時点では、それを挿入するための私のコードは次のとおりです。

GKScene *scene = [GKScene sceneWithFileNamed:@"Floor1"]; 
Floor1 *sceneNode = (Floor1 *)scene.rootNode; 
sceneNode.scaleMode = SKSceneScaleModeAspectFit; 

SKView *skView = (SKView *)_skView; 

[skView presentScene:sceneNode]; 

skView.showsFPS = YES; 
skView.showsNodeCount = YES; 

ビュー負荷を、私は成功したアプリケーションを実行し、それが0であるノード数、およびFPSとライトグレーの背景を持つだけの空のビューです。私は間違って何をしています、どうしてそれが私の正しい見方を読み込まないでしょうか?

+0

シーンが初期化されているかどうかを確認します。ちなみに、Floor1は何ですか(scene.rootNodeは何ですか)? – Whirlwind

+0

@Whirlwind Floor1は私のシーンの名前です。 Floor1.sksとFloor1.swiftがあります。 sksでは、私はそのカスタムクラスを迅速なファイルに設定しています。そして、私のビュー(私の質問の唯一のコードです^^)を読み込むためのコードは、私のプロジェクトにコピー/ペーストされています。私はそれが動作するように見えることはできません –

+0

なぜFloor1.sksからGKSceneをロードしますか?あなたのコードはちょっと混乱しています。例えば、あなたのシーンにはシーンであるプロパティrootNodeがあるようです。シーンにはシーンがありません。私は理論的には可能ですが、別のシーンに子供として追加されたシーンは通常のノードとして動作します。 – Whirlwind

答えて

0

私は同じ問題がありました。私の英語を赦し、私はGoogleの翻訳者を使用します。 私は新しいクロスプラットフォームゲームを作成するときに書かれたファイルとしてそれを見ることにしました。すなわち、クロスプラットフォームです。他のシーンの初期化はあまりありません。そしてそれはすべて私のために働いた。 iOSの10でのみ動作するために使用され、現在のiOS 9 スクリーンショットは、私がそれらに接続

GameViewController.m

#import "GameViewController.h" 
#import "GameScene.h" 

@implementation GameViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    GameScene *scene = [GameScene newGameScene]; 

    // Present the scene 
    SKView *skView = (SKView *)self.view; 
    [skView presentScene:scene]; 

    skView.ignoresSiblingOrder = YES; 
    skView.showsFPS = YES; 
    skView.showsNodeCount = YES; 
} 

[GameScene.m] [2]

#import "GameScene.h" 

@implementation GameScene { 
    SKShapeNode *_spinnyNode; 
    SKLabelNode *_label; 
} 

+ (GameScene *)newGameScene { 
    // Load 'GameScene.sks' as an SKScene. 
    GameScene *scene = (GameScene *)[SKScene nodeWithFileNamed:@"GameScene"]; 
    if (!scene) { 
     NSLog(@"Failed to load GameScene.sks"); 
     abort(); 
    } 

    // Set the scale mode to scale to fit the window 
    scene.scaleMode = SKSceneScaleModeAspectFill; 

    return scene; 
} 

[GameScene.h ] [3]

#import <SpriteKit/SpriteKit.h> 

@interface GameScene : SKScene 

+ (GameScene *)newGameScene; 

@end 
関連する問題