В качестве простого способа я могу порекомендовать вам создать круг и установить его масштаб на ноль.Затем создайте действие CCScale и запустите его.Это даст вам растущий круг.Вот код:
CCSprite *sprite = [CCSprite spriteWithFile:@"mySprite.png"];
[sprite setScale:0.01];
id scale = [CCScale actionWithDuration:0.3 scale:1];
[sprite runAction:scale];
Другое действие, которое можно использовать, это CCFadeIn. Вы можете сделать свой спрайт невидимым после создания и затемнить его:
CCSprite *sprite = [CCSprite spriteWithFile:@"mySprite.png"];
[sprite setOpacity:0];
id fade = [CCFadeIn actionWithDuration:0.3];
[sprite runAction:fade];
Также вы можете комбинироватьэто действия:
[sprite runAction:fade];
[sprite runAction:scale];
Также вы можете сделать его большим (например, установить масштаб 3) и прозрачным.И сделайте его плавнее и уменьшите, чтобы выделить ваше изображение
Чтобы нарисовать круг с помощью эффекта рисования, вы можете сделать его из маленьких частей (дуг), а затем построить из них свой круг.Я думаю, это также будет круто, если вы сделаете так, чтобы при добавлении не делали деталь видимой, а делали ее более заметной. Я имею в виду что-то вроде этого:
-(void) init
{
NSMutableArray *parts = [[NSMutableArray array] retain]; //store it in your class variable
parts_ = parts;
localTime_ = 0; //float localTime_ - store the local time in your layer
//create all the parts here, make them invisible and add to the layer and parts
}
-(void) update: (CCTime) dt //add update method to your layer that will be called every simulation step
{
localTime_ += dt;
const float fadeTime = 0.1;
int currentPart = localTime_ / fadeTime;
int i = 0;
for (CCSprite *part in parts)
{
//setup the opacity of each part according to localTime
if (i < currentPart) [part setOpacity:255];
else if (i == currentPart)
{
float localLocalTime = localTime - i*fadeTime;
float alpha = localLocalTime / fadeTime;
[part setOpacity:alpha];
}
++i;
}
}