Hintergrundknoten zusammenführen oder abflachen, um die Spieleleistung zu verbessern?

8

Ich möchte die Leistung meines Spiels verbessern, indem ich meine Hintergrundknoten irgendwie "abflache".

Dieses Youtube-Video zeigt, wie ich meine Hintergrundgrafiken erstelle.

Aber ich habe meine Hintergrundgrafiken so eingerichtet.

Ich verwende zwei Texturen wie Stempel und wiederhole dann. In diesem Fall ... ein Berg Textur mit einem schneebedeckten Gipfel ... Eine Gebirgsbeschaffenheit ohne den Schnee. Ich ändere die zPosition dieser Stempel für einen "Schichtungseffekt".

Ich verwende dann "fills", die nur SKSpriteNodes von solid grey sind, um über Teilen zu liegen, die eine graue Füllung benötigen.

z. Bevor Füllknoten hinzugefügt werden,

Ein Farbbildschirm mit Alpha wird dann oben hinzugefügt, um dem Berg ein verblichenes Aussehen zu geben.

z. Vor

z. Nach

Das Spiel friert manchmal ein ... aber es friert nicht ein, wenn ich diese Grafiken entferne.

Gibt es eine Möglichkeit, die Leistung zu verbessern, indem ich meine Hintergrundgrafikknoten, die auf zPosition basieren, zusammenfasse oder abflache, während eine Szene geladen wird? Wie würde ich das tun?

Würde dies die Leistung verbessern? Oder was wäre der beste Weg, um die Leistung in meinem Fall zu verbessern?

Ich denke, diese Frage ist ähnlich ... Alle SKSpriteNode-Kinder in einen einzigen SKSpriteNode zusammenfassen

Aber wie mache ich das in Swift und nehme zPosition und Alpha in Betracht, damit ich die Schichtungseffekte nicht verliere?

    
Corey F 15.10.2017, 20:33
quelle

2 Antworten

2

Ok, hier ist ein Beispiel von dem, was Sie jetzt haben .. alle Ihre Knoten hier so:

Um den Bitblit einfach auszuführen, bewegen Sie all diese unter einem neuen leeren Knoten namens "background"

Gehen Sie nun zu Ihrer swift-Datei und richten Sie eine Platzhaltervariable für den neuen Knoten ein, den wir im Code erstellen werden

%Vor%

Fügen Sie nun diese praktische Funktion hinzu, die Sie bei Bedarf in allen Ihren Projekten verwenden können:

%Vor%

und hier ist die Methode, die wir verwenden werden, um unseren bitblit Hintergrund zu initialisieren, und den Laggy aus dem Spiel zu entfernen:

%Vor%

Hier ist die fertige Szene:

%Vor%

und es hat die Anzahl der Knoten von 10 auf 4 reduziert ... hoffentlich wird es dir auch bei deiner Ziehung helfen !!

HINWEIS, diese Methode ist EXTREM effektiv mit Shapenodes !!

Wenn Sie dies in einer Schleife tun müssen, stellen Sie sicher, dass Sie es in einen Autorelease-Pool stellen, um sicherzustellen, dass der Speicher freigegeben wird, nachdem er verwendet wurde. Das Erstellen von Texturen aus der Ansicht verwendet viel Speicher, sodass Sie Fehler erwarten können, wenn Sie nicht vorsichtig damit umgehen.

%Vor%     
Fluidity 24.10.2017, 23:03
quelle
5

Etwas, was Sie vielleicht tun möchten:

Trennen Sie Ihren Vordergrund und Hintergrund in separate SKS-Dateien und laden Sie sie in Ihre Haupt-SKS-Datei über SKReferenceNode

Konvertieren Sie diese SKS-Dateien in Texturen anstatt in SKReferenceNode s über den Code mit view!.texture(from: node)

Stellen Sie sicher, dass Ihr Atlas nicht auf eine Art und Weise aufgebrochen wird, die zur Anzahl der Zeichnungen beiträgt.

Entwerfen Sie Ihren Code so, dass nicht alle Knoten in der Szene sind, je mehr Knoten, desto langsamer wird Ihr Code.

Wenn Sie SKPhysicsBody haben, versuchen Sie so wenig wie möglich zu verwenden. Dies kann durch das Zusammenführen mehrerer Körper mit SKPhysicBody(bodies:) oder das Erstellen von 1 Körper mit einem Polygon geschehen, das sich um mehrere Objekte herum erstreckt.

Wenn sich Ihre Körper nicht über die Physik bewegen (nicht nach SKAction s), dann stellen Sie sicher, dass isDynamic auf false

eingestellt ist

Wenn Sie SKAction s ausführen, stellen Sie sicher, dass Sie so wenig wie möglich verwenden. Wenn Sie z. B. 4 verschiedene Knoten haben, die an 10 Punkten pro Sekunde abgefahren sind, können Sie diese 4 Knoten in einen übergeordneten Knoten einfügen und die Aktion für den übergeordneten Knoten ausführen.

    
Knight0fDragon 23.10.2017 15:47
quelle

Tags und Links