2017-09-19 13 views
1

MenuSceneからplayButtonをクリックしてGameSceneに変更すると問題なく動作します。すべてのノード、スプライト、...私のGameSceneの位置から変更されます。アンカーポイントが(0,5; 0,5)から(0,0)に変化するようなものです。私はどこで何を変えるべきか分からない。私の.sksファイルでは、属性インスペクタの両方のアンカーポイントは同じです。スプライトキットの2番目のシーンが位置を変える(アンカーポイント)

これは私がGameSceneMenuSceneから変更コードです:これはMenuSceneで書かれている :事前に

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

    let touch = touches.first 

    if let location = touch?.location(in: self) { 
     let nodeArray = self.nodes(at: location) 

     if nodeArray.first?.name == "playButton" { 
      let transition = SKTransition.fade(withDuration: 0.5) 
      let gameScene = GameScene(size: self.size) 
      gameScene.scaleMode = SKSceneScaleMode.aspectFill 
      self.view?.presentScene(gameScene, transition: transition) 
     } 
    } 
} 

感謝を!

答えて

1

この行GameScene(size: self.size)は、前のシーンのサイズでデフォルトのGameSceneオブジェクトを作成していることを意味します。ほぼすべてのコストでこのイニシャライザを使用しないでください。代わりにGameScene(fileNamed:"GameScene")を実行して、古いシーンからこのシーンにscaleModeを設定してください

+0

「GameScene(fileNamed: "GameScene") 'に変更しましたが、このエラーが表示されます: 'GameScene.Type'タイプの値を期待通りに変換できません引数型 'String' ...そして帽子はあなたが '古い場面'を意味しますか? –

+0

あなたはタイプミスをしました。あなたは '' GameScene ''の引用符を忘れていたと仮定しています。古いシーンについては、古いシーンから新しいシーンに移行しています。古い/現在のシーン – Knight0fDragon

+0

...文字列にする必要があり、私の引用符を忘れてしまったことを忘れました。 –

関連する問題