UIKit ViewControllerから、ゲームを開始するためにこれを行います。
if (director.runningScene == nil)
{
[director runWithScene:[MyGameLayer scene]];
}
[director startAnimation];
MyGameLayerは次のようになります。
+(id) scene {
CCScene *scene = [CCScene node];
MyGameLayer* layer = [MyGameLayer node];
[scene addChild:layer z:0 tag:GameSceneLayerTagGame];
return scene;
}
-(id) init {
if ((self=[super init]))
{
NSLog(@"init!");
self.isTouchEnabled = YES;
[self initPhysics];
[self scheduleUpdate];
}
return self;
}
初めてゲームをプレイするときは、すべて正常に動作します。-(void) update: (ccTime) dt
必要に応じて呼び出されます。ゲームを終了してこれを行う場合:
CCDirectorIOS* director = (CCDirectorIOS*)[CCDirector sharedDirector];
[director stopAnimation];
[director end];
そして、もう一度ゲームをプレイします。呼び出されることは-(void) update: (ccTime) dt
わかっていますが、呼び出されません-init()
。ゲームは画面に表示されますが、更新スケジュールは2回目は機能しません。Cocos2dがアップデートをスケジュールしない原因とその修正方法を教えてください。