CocosCreator-Version: 2.3.4 Die meisten Spiele verfügen über Layer-Management, wie zum Beispiel
Die Szenen in Cocos sind nicht persistent und werden bei jedem Wechsel automatisch zerstört. Wenn Sie diese Ebenen auf die Szene legen, müssen Sie sie dann für jede Szene einmal legen? Und dann bekomme ich es erneut, was sehr ärgerlich ist. Die Szene wird mit cc.director.loadScene geladen. Der Containerknoten der Szene scheint ein nodeActivator im Director zu sein. Lassen wir jetzt den Szenencontainer oder den Container der obersten Ebene von Cocos außer Acht. Mir fallen zwei Ansätze zum Layer-Management ein. 1. Es gibt nur eine SzeneDas ganze Spiel hat eine Szene, nämlich die Szene am Anfang des Spiels. In dieser Szene werden Knoten von Ebenen wie sceneLayer platziert. Diese Eingangsszene entspricht der Bühne von Egret und Laya. Dann werden alle Szenen und Popup-Module in Prefabs umgewandelt und bei jeder Anzeige wird einfach ein Child zur entsprechenden Ebene der Einstiegsszene hinzugefügt. 2. Verwenden Sie residente KnotenBeispielsweise habe ich Ebenen wie „sceneLayer“ in Szene 1 eingefügt. Zur einfacheren Anzeige habe ich jeder Ebene eine einzelne Farbe hinzugefügt. Der residente Knoten muss sich unter dem Stammknoten befinden, also auf derselben Ebene wie die Zeichenfläche. Legen Sie die drei Ebenen als permanente Knoten fest. beim Laden(){ cc.game.addPersistRootNode(cc.find("sceneLayer")); cc.game.addPersistRootNode(cc.find("panelLayer")); cc.game.addPersistRootNode(cc.find("tipLayer")); } Wechseln Sie dann die Szene. In der neuen Szene können Sie weiterhin Ebenen wie Szenenebene anzeigen und abrufen. beim Laden(){ console.log(cc.find("sceneLayer")); //CC.Node von sceneLayer ausgeben } Mithilfe von residenten Knoten können wir Ebenen wie Szenenebene in der Eingangsszene platzieren. Verwenden Sie die Layer-Management-Klasse, um die Referenz zu speichern. Bewährte VorgehensweisenLayer-Management-Klasse, Singleton exportiere Standardklasse LayerManager erweitert cc.Component { private statische Instanz: LayerManager; öffentliche statische ins():LayerManager{ wenn (diese.Instanz == null) { diese.Instanz = neuer LayerManager(); } gib diese Instanz zurück; } öffentliches PanelLayer:cc.Node; öffentliche tipLayer:cc.Node; } Legen Sie in der Einstiegsszene eine residente Knotenebene fest und verwenden Sie die Ebenenverwaltungsklasse, um die Referenz zu speichern. Zur späteren Verwendung. @ccklasse exportiere Standardklasse Helloworld erweitert cc.Component { beim Laden(){ cc.game.addPersistRootNode(cc.find("sceneLayer")); cc.game.addPersistRootNode(cc.find("panelLayer")); cc.game.addPersistRootNode(cc.find("tipLayer")); LayerManager.ins().panelLayer = cc.find("panelLayer"); LayerManager.ins().tipLayer = cc.find("tipLayer"); } } Oben finden Sie Einzelheiten zur Verwendung von Resident Nodes für die Layer-Verwaltung in CocosCreator. Weitere Informationen zu Resident Nodes für die Layer-Verwaltung in CocosCreator finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detailliertes Verständnis von umask in den neuen Linux-Dateiberechtigungseinstellungen
>>: So übertragen Sie Dateien zwischen Docker-Container und lokalem Computer
Das neue Projekt ist im Grunde abgeschlossen. Es ...
Das Format des Textbereichs kann beim Speichern in...
Umsetzungsideen: Zunächst müssen die Alarminforma...
Der vorherige Artikel war eine einfache Überprüfu...
Detaillierte Erklärung zum MySQL-Export von Daten...
1. Verwenden Sie Docker Compose, um den Start zu ...
Inhaltsverzeichnis 1. Szenariobeschreibung: 2. Fa...
In diesem Artikel möchten wir eine Sammlung von 2...
Die Methode zum Abrufen der Zeigerposition in Jav...
Inhaltsverzeichnis 01 Häufige Fehler 1 02 Häufige...
Inhaltsverzeichnis Vorwort Konzept Stabilisierung...
Inhaltsverzeichnis 1. Bedienelemente 1.1. Element...
Konzept von SFTP sftp ist die Abkürzung für Secur...
Beim Erstellen einer Webseite müssen wir normaler...
Ich möchte nur eine kleine Sache machen, die Winf...