Es ist nicht möglich, die Details von genau dieser hier gezeigten Methode zu kennen. Aber das .parent gibt den Cocos-Elternteil, das Sprite oder den Layer zurück, zu dem das aktuelle cocos-Objekt als Kind gehört. Im Wesentlichen schlägt dieser Code vor, dass Sie ein Sprite oder eine Ebene mit einem Kind haben, das mehr Kinder und mehr Kinder dieser Kinder hat. Dies ist eine Möglichkeit herauszufinden, wer der große Elternteil des Streams ist, und dann ein neues Kind von diesem Elternteil zu bekommen .
Persönlich scheint es ziemlich schlampig zu mir. Ich würde das nie selbst programmieren. Schwer zu lesen (wie Sie sehen können) und so viele Elterneigenschaften zu haben, die so zusammengereiht sind, öffnet viel Platz für Bugs. Es wäre klüger, wenn die obersten Elternteile tun würden, was sie tun müssen, und nicht ein entferntes Enkelkind, das die Kette hinaufgeht; Es bricht das MVC-Modell ein bisschen, um es wie hier gezeigt zu machen.
Ich würde sagen, der Hauptzweck ist es, schlechte Programmierpraxis zu vermitteln. "Das Elternteil meiner Eltern" macht eine kühne Annahme über das Layout der Knoten. Sobald Sie die Hierarchie der Knoten ändern, kann die Annahme falsch sein und diese Indirektion wird fehlschlagen. Das bedeutet, dass die getHUD-Funktion automatisch null zurückgibt und Sie herausfinden müssen, warum. – LearnCocos2D
Können Sie erklären, was genau er sagt? Was bedeutet es, wenn er sagt return (HUDLayer *) ruft er den HUDLayer an, um den Elternknoten zurückzugeben? Diese ganze Syntax ist einfach wirklich komisch. – GPP