2013-08-20 1 views
0

Извините, если это звучит слишком основательно, я не получаю его. В моей игре Cocos2d Box2d я хотел бы создать тело каждые 20-30 секунд после его уничтожения (начиная с ожидания 20-30 секунд до его создания в первый раз). Ниже мой метод, который вызывает создание и разрушение. Благодарю., создавая тело каждые 20-30 секунд после его уничтожения.

Создание мяч:

-(void)ballScheduler { 

[self createBall:ballWorld inLayer:ballLayer]; 
} 

Уничтожая мяч:

-(void)destroyBall{ 
ballWorld->DestroyBody(ballBody); 
ballBody = NULL; 
[ballLayer removeChild:ballSprite]; 
} 
+0

У вас должно быть центральное место для управления шарами. – Raptor

+0

да, я понимаю. Оба вышеупомянутых метода будут вызываться в этом центральном месте или методе. Но моя основная проблема заключается в настройке временных интервалов, я считаю, что некоторые BOOL можно использовать для проверки на уничтожение, но я не уверен, как все это сделать. – NSSleeplessNightsOverCode

ответ

0

Используйте действия для измерения временного интервала. Таким образом, код в функции destroyBall будет что-то вроде этого:

[self runAction:[CCSequence actions:[CCDelayTime actionWithDuration:20.0], 
            [CCCallFuncN actionWithTarget:self selector:@selector(createNewBody:)], 
            nil 
       ] 
]; 

Я использовал cocos2d некоторое время назад, так что код может быть не 100% правильно, но где-то в пределах досягаемости правильный. Если я правильно помню, вы можете вызвать runAction только для объекта CCNode или производного класса, поэтому «self» здесь должен быть объектом соответствующего типа или, может быть, CCScene. Все зависит от того, как вы разработали свою игру, я не могу прокомментировать реализацию, не взглянув на код.