2016-03-27 9 views
2

Imに問題があります。私がspritekitで新しいシーンを提示すると(目的はc)、ノードとfpsがグレーの色でしか表示されません。Spritekitは、提示されたシーンを表示しません。

、それはこのように見てはいけないので、私は.sksファイル内のシーンをアニメーションしています。 新しいシーンを表示しているときの動きも変わりませんが、.sksファイルでアニメーション化された画像と背景が表示されません。ここで

は、私はそれを行う方法上のコードです。

//In gameviewcontroller.m 

// Creating and configuring the scene. 
GameScene *Level1 = [GameScene nodeWithFileNamed:@"GameSceneLevel1"]; 
Level1.scaleMode = SKSceneScaleModeAspectFill; 



// GameScene.m inside touchesbegan 

SKTransition *reveal = [SKTransition doorwayWithDuration:4]; 


     GameScene *Level1 = [GameScene sceneWithSize:self.view.bounds.size]; 
     Level1.scaleMode = SKSceneScaleModeAspectFill; 
     [self.view presentScene:Level1 transition:reveal]; 
+0

同じシーンに移行してもよろしいですか?あなたは現在 'GameScene' - >' GameScene'から行っています。 – Whirlwind

+0

いいえ、それはテストのためだけのものでしたが、別のシーンではどうですか?私は前にそれを試した –

+0

私の答えをチェックアウト(私は編集を作った)... – Whirlwind

答えて

0

あなたはもともと.sksファイルからシーンをロードしているとあなたはそこにいくつかのアニメーションを持って言ったように。後で(touchesBeganの中で)サイズを指定してシーンを作成しています(sceneWithSize静的メソッドを使用)。したがって、シーンはアーカイブからロードされません。 GameViewControllerに、あなたが最初にやったように、あなたのシーンをロードし、問題を解決するには

EDIT:

を使用すると、2つの.sksファイルを作成する必要があります2つのシーンの間を移行するには。 MenuSceneとGameScene(デフォルトでは既にこれを持っています)のように名前を付けることができます。これらのファイルを作成するときには、拡張子(.sks)を書く必要はなく、ファイル名だけを書くことに注意してください。次に対応する.m.hファイルを作成する必要があります。したがって、MenuScene.mMenuScene.hを作成してください。 GameScene.mおよび.hのファイルがデフォルトで存在します。

MenuSceneSKSceneのサブクラス(必ずしも直接のサブクラス)であるべきです。

その後、あなたのビューコントローラの内部:同様

MenuScene *nextScene = [MenuScene nodeWithFileNamed:@"MenuScene"]; 
SKTransition *transition = [SKTransition fadeWithDuration:3]; 
[self.view presentScene:nextScene transition:transition]; 

、:あなたのGameSceneのtouchesBegan方法で後で

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    SKView * skView = (SKView *)self.view; 

    GameScene *scene = [GameScene nodeWithFileNamed:@"GameScene"]; 
    scene.scaleMode = SKSceneScaleModeAspectFill; 
    scene.size = skView.bounds.size; 

    [skView presentScene:scene]; 
} 

あなたはMenuSceneに移行したい場合は、このような何かを行う必要がありますGameSceneに戻るには、MenuSceneのtouchesBeganに次のように入力します。

右の古いシーンのスケールモードに合わせて、シーンのスケールモードを設定することができ、それぞれの移行の前にもちろん

コードからは、同じシーンに遷移しようとしているようです(GameScene - >GameScene)。それは確かに可能ですが、あなたはそれを望んでいますか?

もしそうなら、私はMenuSceneのtouchesBegan方法のために提供したコードを使用します。

+0

しかし、私はGameViewController内でこれをやってみると、「表示されていない@interfaceが 'UIView'セレクタ 'presentScene:transition:'」と表示されているというエラーが表示されます。 –

+0

私の答えはどのようにシーン間で移行すべきかを示しています。 – Whirlwind

+0

お返事ありがとう!私は今これを試してみる。 –

関連する問題