Ich programmiere ein Spiel in SpriteKit und kodiere einen Abschnitt, in dem die "Ebene" aus einer Textdatei geladen wird, und platziere einen Wandknoten an jeder Stelle, die durch ein "x" in der Textdatei markiert ist. Wenn ich jedoch weiß, dass es viele Knoten gibt, die alle aus derselben "wall.png" -Datei geladen werden, ist es effizienter, das Bild einmal zu laden und das Objekt dann jedes Mal zu duplizieren oder einfach das Bild jedes Mal laden?SpriteKit Viele Knoten aus demselben Bild: Getrennt laden oder duplizieren?
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
in diesem Bereich ist eine Klasse, die Höhe hält, die SKNode erstreckt, so dass ich Wand self
Hinzufügen und dann fügen hinzu, dass SKNode die Szene.
Probieren Sie es in beide Richtungen aus und zählen Sie, wie viele Sie hinzufügen können, bevor Sie eine niedrige Speicherwarnung von iOS erhalten. – vacawama
Ich dachte mehr darüber nach, wie schnell sie geladen werden können. Ich nehme an, dass beide eine ähnliche Speicherbelegung hätten, wenn sie einmal geladen wären. – jaxuru
Ich denke, ist mehr oder weniger das gleiche, die Komplexität des Codes ist 2^n durch zwei für den Zyklus, die Zeile selbst. AddChild (wall.copy()) oder lassen Sie Wand = SKSpriteNode (imageNamed: "Wand") vielleicht fügt nicht mehr Zeit hinzu. Sie können versuchen, Delta-Zeit am Anfang und Ende von Zyklus und Check hinzuzufügen. –