SKSpriteNode 不显示
Posted
技术标签:
【中文标题】SKSpriteNode 不显示【英文标题】:SKSpriteNode Not Showing 【发布时间】:2019-03-02 21:01:02 【问题描述】:所以我有这个代码:
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,当我打印它时会显示
这很好,因为我有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))
它对应于节点的位置。但是在这里看到没有精灵显示:
当我在touchesBegan
方法中打印触摸位置并看到点时,即使点完全相同,精灵也不会显示。我怎样才能解决这个问题?我还在GameViewController
中尝试了scene.scaleMode = .resizeFill
,但这并没有解决问题。
【问题讨论】:
什么精灵?我在你的代码中也没有看到。 @ElTomato 精灵在网格数组中,它们的所有位置都被打印出来了 @ElTomato 网格也已打印出来 我也看到过节点这个词。我不知道那是什么。而且我不知道你是如何创建它的。 @ElTomatolet node = grid[row][col]
【参考方案1】:
我知道了,但是我不确定它为什么会起作用,但是我将锚点更改为 (0,0) 并且所有精灵都显示了!!
【讨论】:
以上是关于SKSpriteNode 不显示的主要内容,如果未能解决你的问题,请参考以下文章
Swift 2.0 - SKSpriteNode 的 SKTexture 有时不显示
Swift SpriteKit SKSpriteNode 的“有时”不显示