我在SpriteKit中編寫了一個遊戲,並且正在編寫一個從文本文件中加載「級別」的部分,在文本文件中的每個標記爲「x」的位置放置一個牆節點。但是,如果我知道會有很多節點,並且它們都是從同一個「wall.png」文件加載的,那麼一次加載圖像然後在每次需要時複製對象效率更高,或每次只加載圖像?SpriteKit來自同一圖像的許多節點:單獨加載還是重複加載?
for line in lines {
for letter in line {
if letter == "x" {
let wall = SKSpriteNode(imageNamed: "wall")
self.addChild(wall)
} else { ... }
}
}
VS
let wall = SKSpriteNode(imageNamed: "wall")
for line in lines {
for letter in line {
if letter == "x" {
self.addChild(wall.copy())
} else { ... }
}
}
在此範圍內self
是抱着擴展SKNode水平的一類,所以我將牆壁self
,然後補充說SKNode現場。
嘗試兩種方法並計算在iOS獲得低存儲量警告之前可以添加的數量。 – vacawama
我在考慮加載速度有多快,我認爲一旦加載後兩者都會有相似的內存使用情況? – jaxuru
我覺得差不多,代碼的複雜度是2^n循環,行self.addChild(wall.copy())或讓wall = SKSpriteNode(imageNamed:「wall」)不會增加更多時間。您可以嘗試在循環和檢查的開始和結束時添加增量時間。 –