2017-10-08 9 views
0

私はSpritekitを使ってゲームプログラミングを学んでいます。 Xcodeに最新のアップデートを行った後、すべてがうまくいかなかったようです。 Swift 3で書いたゲームは機能していません。一部のスプライトが読み込まれていません。Xcodeをアップデートした後、簡単なスプライトキットのステートメントが動作しない

私はテストするためだけに新しいプロジェクトを作成しました。私は単純なpngファイルを含め、SKSpriteNodeオブジェクトを初期化しようとし、addChildを呼び出しました。何も表示されません。ノードカウントはゼロです。

私はこれに関する助けに感謝します。何がうまくいかないでしょうか?

import SpriteKit 

class GameScene: SKScene { 

override func didMove(to view: SKView) { 
    print ("am in didmoveto now") 
    let background = SKSpriteNode(imageNamed: "martianbackground") 

    addChild(background) 
    } 
} 

printステートメントが表示されません。ノード数は0です。したがって、子は追加されません。 didMoveは何らかの理由で呼び出されていません。ブレークポイントは効果がないようです。

import UIKit 
import SpriteKit 


class GameViewController: UIViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     print ("view has loaded it would appear") 

     if let view = self.view as! SKView? { 
      // Load the SKScene from 'GameScene.sks' 
      if let scene = SKScene(fileNamed: "GameScene") { 
       // Set the scale mode to scale to fit the window 
       scene.scaleMode = .aspectFill 

       // Present the scene 
       view.presentScene(scene) 
      } 

      view.ignoresSiblingOrder = true 

      view.showsFPS = true 
      view.showsNodeCount = true 
     } 
    } 

    override var shouldAutorotate: Bool { 
     return true 
    } 

    override var supportedInterfaceOrientations: UIInterfaceOrientationMask { 
     if UIDevice.current.userInterfaceIdiom == .phone { 
      return .allButUpsideDown 
     } else { 
      return .all 
     } 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Release any cached data, images, etc that aren't in use. 
    } 

    override var prefersStatusBarHidden: Bool { 
     return true 
    } 
} 
+1

コードを投稿する必要があります:: –

答えて

0

Works for me。私は、コンソールログにこれを取得する:

am in didmoveto now 
2017-10-08 22:13:09.721183+0100 <project_name>[4608:2085947] SKTexture: Error loading image resource: "martianbackground" 

シミュレータ画面が中央に大きな、赤い「X」を示し、ノード数が2

はあなたにこの「GameScene」は実際にあることを確認していますですあなたのGameViewControllerによって読み込まれていますか?

+0

こんにちは、大きな赤いXは、背景とラベルの付いたグラフィックイメージがないためです。私は自分のコードに資産を含めなかった。それは仮定された。しかし、あなたのコンソールログから、私はあなたが動きに入ったのを見ます。私の場合、コンソールは何も記録していません。 didMoveは何らかの理由で呼び出されていません。 didMove内のコードは実行されません。 – CyberShoggy

+0

はい - コードが動作していることを示しているため、「X」を取得したと言われています。テストプロジェクトに画像をインポートするのは面倒ではありませんでした。このコードが動作するように、最も恐らく問題はあなたの 'GameViewController.swift'ファイルです。あなたはそのコードを投稿できますか? –

+0

だから、基本的に、あなたの場合didMoveが呼び出されています。私の場合はそうではありません! – CyberShoggy

関連する問題