如何在 SpriteKit 中创建图像节点?斯威夫特 4

Posted

技术标签:

【中文标题】如何在 SpriteKit 中创建图像节点?斯威夫特 4【英文标题】:How do I create an image node in SpriteKit? Swift 4 【发布时间】:2018-03-09 04:45:41 【问题描述】:

有人在我的其他问题之一中告诉我,SpriteKitUI 更容易。我在网上搜索了如何开始使用SpriteKit,我得到了这个:https://www.raywenderlich.com/145318/spritekit-swift-3-tutorial-beginners。我把图片和所有东西都放进去,我把这段代码放进去:

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)
  

(他们告诉我输入的代码),当我运行它时,我只看到一个空白屏幕。在教程中,它有一个忍者,但我的只是一个空白屏幕。

有人可以帮忙吗?

【问题讨论】:

试着把它放在位置 0,0 前面...如果“玩家”在你的资产中是一个可访问的图像?项目? 尝试为播放器添加 zPosition player.zPosition = 1 【参考方案1】:

如果屏幕是白色的,试试这个:

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)
  

如果屏幕不是白色:确保场景正确呈现。

如果你有 GameScene.sks :

在 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
    

如果你没有 GameScene.sks 文件

在 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
    

【讨论】:

以上是关于如何在 SpriteKit 中创建图像节点?斯威夫特 4的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Item 插入 collectionView ?斯威夫特3

斯威夫特:如何延长短音的播放时间

碰撞位掩码是如何工作的?斯威夫特/雪碧套件

如何在 UIImage 数组中设置第二张或中间的图像? (斯威夫特 3)

斯威夫特:如何在我的 AVPlayerLayer 顶部添加图像/文本以使其成为视频的一部分?

如何将图像剪辑到惰性网格内的正方形? (斯威夫特用户界面)