SKSpriteNode未显示

时间:2019-03-02 21:01:02

标签: 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))

与节点的位置相对应。但是,这里没有显示精灵:

enter image description here

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

1 个答案:

答案 0 :(得分:0)

我明白了,但是我不确定为什么它起作用,但是我将锚点更改为(0,0),所有的精灵都显示了!