2016-12-14 13 views
1

Ich versuche, eine Start-Szene zu machen, wo Sie eine Schaltfläche "Start" drücken, und es geht in die Haupt-Spielszene. Hier ist der Code:Scene-Transition-Problembehandlung in Spritekit in swift

if startBTN.containsPoint(location) { 

      let gameSceneTemp = GameScene(fileNamed: "GameScene") 
      self.scene?.view?.presentScene(gameSceneTemp, transition: SKTransition.fadeWithDuration(0.01)) 

     } 

Aber aus irgendeinem Grund, wenn die Szene Lasten auf, es zeigt eine squished-ähnliche Szene in der GameScene. Kann jemand helfen, dieses Problem zu lösen, indem man eine normale Größe (Portarit) Szene anzeigt? Hier ist die Screenshots zwischen dem erwarteten und tatsächlichen Szene:

The Expected Scene

The Actual Scene (The Problem)

+1

Überprüfen Sie den ScaleMode Ihrer Szene. Alternativ dazu wäre es hilfreich, einen Screenshot des gewünschten und des aktuellen Bildschirms zu veröffentlichen. –

+0

Es gibt viele mögliche Fehlerquellen, die dies verursachen könnten. @SteveIves ist der Mann, der nicht nur am meisten darüber Bescheid weiß, sondern auch über die besten Kommunikationsfähigkeiten verfügt, um das Problem zu lösen und zu beheben. Um ihm einen Vorsprung zu geben .. machen Sie diese im Code (die Szenen) oder mit dem Szeneneditor? Zeigen Sie in beiden Fällen Ihre Einstellungen für die Szenen. Szeneneditor vom Eigenschafteninspektor, Code von ... nun, Code. Die gute Nachricht ... das ist absolut lösbar. – Confused

Antwort

0

Es stellt sich heraus, ich nicht den Szenenmodus eingestellt haben. Ich habe dieses Problem untersucht und schließlich die Lösung gefunden. Hier ist der Code:

if startBTN.containsPoint(location) { 

      var gameScene = GameScene(size: self.size) 
      var transition = SKTransition.fadeWithDuration(0.8) 
      gameScene.scaleMode = SKSceneScaleMode.AspectFill 
      self.scene!.view?.presentScene(gameScene, transition: transition) 

     } 

Ich hatte die Gamescene-Datei und den Übergang, aber nicht den Scalemodus hinzugefügt.

Verwandte Themen