Ich habe eine kleine App, die sowohl CCLayer anzeigen und UIView hat. Das funktioniert gut. Ich versuche einfach, eine Nachricht an eine Referenz der Schicht zu senden, damit der Cocos2d CCLayer die Nachricht empfangen kann. Das scheint einfach und ich denke, sollte funktionieren. Ich habe einen CCLayer Zeiger „cocos“ als iVar genannt und sie als dies nach der cocos Ansicht erstellen:Zeiger auf CCLayer von UIView
[[CCDirector sharedDirector] runWithScene: [HelloWorldLayer scene]];
CCScene*tempscene=[[CCDirector sharedDirector] runningScene];
cocos=[tempscene.children objectAtIndex:0];
Da dies ein einfaches kleines Test-App mit nur einer Szene und die Schicht ist, sollte es funktionieren. Aber die iVar cocos
reagiert auf keine der öffentlichen Methoden in HelloWorldLayer
. Irgendeine Idee warum?
UPDATE: Ich habe es funktioniert, indem Sie einfach den Code ein wenig neu ordnen. Nicht sicher, warum es auf diese Weise gearbeitet und nicht die Art und Weise vor:
CCScene*tempscene=[HelloWorldLayer scene];
[[CCDirector sharedDirector] runWithScene: tempscene];
cocos=[tempscene.children objectAtIndex:0];
eine Idee * wenn * 'runningscene' verfügbar wird? – johnbakers
Ich glaube, sobald Sie runWithScene aufgerufen haben, wird runningScene aktiv, denn solange und bis Sie wirklich eine Szene starten, ist keine Szene als laufende Szene verfügbar. –
ich rief es nach runWithScene, wie in meinem Code erwähnt, aber anscheinend runningscene noch nichts – johnbakers