2 votes

Comment créer un nœud image dans SpriteKit ? Swift 4

Quelqu'un m'a dit dans une de mes autres questions que SpriteKit était plus facile que UI . J'ai fait des recherches en ligne sur la façon de démarrer avec SpriteKit et j'ai eu ça : https://www.raywenderlich.com/145318/spritekit-swift-3-tutorial-beginners . J'ai mis les images et tout, j'ai mis ce code :

import SpriteKit

class GameScene: SKScene {

  // 1
  let player = SKSpriteNode(imageNamed: "player")
  override func didMove(to view: SKView) {
     // 2
     backgroundColor = SKColor.white
     // 3
     player.position = CGPoint(x: size.width * 0.1, y: size.height * 0.5)
     // 4
     addChild(player)
  }
}

(le code qu'ils m'ont dit de mettre), et quand je l'exécute, je vois juste un écran blanc. Dans le tutoriel, il y avait un ninja, mais le mien n'est qu'un écran vide.

Quelqu'un peut-il m'aider ?

3voto

mazen Points 123

Si l'écran est blanc, essayez ceci :

import SpriteKit

class GameScene: SKScene {

  // 1
  var player = SKSpriteNode()
  override func didMove(to view: SKView) {
     // 2
     backgroundColor = SKColor.white
     // 3
     let image = UIImage(named: "player")
     let texture = SKTexture(image: image!)
     player = SKSpriteNode(texture: texture)
     player.position = CGPoint(x: size.width * 0.1, y: size.height * 0.5)
     // 4
     addChild(player)
  }
}

Si l'écran n'est pas blanc : vérifiez que la scène est correctement présentée.

Si vous avez le GameScene.sks :

Dans GameViewController :

override func viewDidLoad() {
    super.viewDidLoad()

    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        let scene = SKScene(fileNamed: "GameScene")
        scene.scaleMode = .aspectFill
        view.presentScene(scene)

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

Si vous n'avez pas de fichier GameScene.sks

Dans GameViewController :

override func viewDidLoad() {
    super.viewDidLoad()

    if let view = self.view as! SKView? {
        // Load the SKScene from 'GameScene.sks'
        let scene = GameScene(size : view.frame.size)
        scene.scaleMode = .aspectFill
        view.presentScene(scene)

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X