簡體   English   中英

SpriteKit Swift節點計數問題

[英]SpriteKit Swift Node Count issues

模擬器顯示節點計數,即有2個節點。 但那是為什么呢? 因為只有一個變量(球)。 有沒有辦法創建一個圓而不是它是節點的兩倍。

class GameScene: SKScene {

var ball = SKShapeNode(circleOfRadius: 50)

override func didMoveToView(view: SKView) {

    ball.position = CGPointMake(self.frame.size.width / 2, self.frame.size.height / 2)
    ball.fillColor = SKColor.blackColor()
    self.addChild(ball)
}

發生這種情況是因為設置了SKShapeNode fillColor 顯然,當設置fillColorstrokeColor ,每個都需要額外的節點和額外的繪圖傳遞。 默認情況下,已經設置了strokeColor(一個節點,一個繪制過程),並且由於另外設置了fillColor ,因此要渲染的形狀需要兩個節點(和兩個繪圖過程)。

由於顯而易見的原因, SKShapeNode在許多情況下不是高性能解決方案。 一個SKShapeNode至少需要一次繪制調用。 有此主題相關的一些有趣的帖子,例如這一個或這一個

但是,如果IMO不是唯一的解決方案, SKShapeNode應該避免使用SKShapeNode 只是因為性能原因。 在你的情況下,如果你想要有許多不同類型的球,性能解決方案將使用紋理圖集和SKSpriteNode來表示這些紋理。 通過這種方式,您可以在單次繪制過程中渲染盡可能多的球。

請注意,在性能方面,繪制過程比節點數要重要得多。 如果場景渲染所需的繪圖過程量很少,SpriteKit可以以60fps渲染數百個節點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM