swift - SKSpriteNode 未显示

标签 swift sprite-kit skspritenode skscene

所以我有这个代码:

func addSprites() {
    for row in 0..<GameScene.rows {
      for col in 0..<GameScene.cols {
        let node = grid[row][col]
        if node != nil {
          addChild(node!)
          node?.position = CGPoint(x: (view!.frame.width/CGFloat(GameScene.cols))*CGFloat(col), y: (view!.frame.height/CGFloat(GameScene.rows))*CGFloat(row))
          print(node?.position)
        }
      }
    }
  }

网格数组有 SKSpriteNodes,当我打印它时,它会显示

enter image description here

这很好,因为我里面有 SKSpriteNode

addSprites() 输出

Optional((0.0, 207.0))
Optional((59.733333587646484, 207.0))
Optional((119.46666717529297, 207.0))
Optional((179.1999969482422, 207.0))
Optional((238.93333435058594, 207.0))
Optional((298.6666564941406, 207.0))
Optional((358.3999938964844, 207.0))
Optional((418.1333312988281, 207.0))
Optional((477.8666687011719, 207.0))
Optional((537.5999755859375, 207.0))
Optional((597.3333129882812, 207.0))
Optional((657.066650390625, 207.0))
Optional((716.7999877929688, 207.0))
Optional((776.5333251953125, 207.0))
Optional((836.2666625976562, 207.0))

这对应于节点的位置。但是,如图所示,没有显示 Sprite :

enter image description here

当我在 touchesBegan 方法中打印触摸位置并看到这些点时,即使这些点完全相同, Sprite 也不会显示。我怎样才能解决这个问题?我还在 GameViewController 中尝试了 scene.scaleMode = .resizeFill,但这并没有解决问题。

最佳答案

我明白了,但我不确定它为什么起作用,但我将 anchor 更改为(0,0)并且所有 Sprite 都显示了!!

关于swift - SKSpriteNode 未显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54962948/

相关文章:

swift - UILabel 有错误的框架。 swift

ios - 检测 Sprite 外面/远离 Sprite 的敲击

ios - 为什么在 Swift 上显示警报时需要 DispatchQueue?

swift - 为什么不调用单独类上的 SKPhysicsContactDelegate

ios - 如何判断 zrotation 后 Sprite 的高度?

使用原始套接字快速嗅探网络流量

ios - 如何在 SpriteKit 的不同设备上使 SKSpriteNode 的速度相同?

ios - SpriteKit 中的恒定速度抖动

arrays - 知道数组是否包含某种类型的元素

ios - 在更改 SKSpriteNode 位置的同时更改 SKPhysicsBody