Как добавить эффект перехода в текущей бегущей сцене в cocos2d iphone
Как добавить эффект перехода в текущей запущенной сцене в cocos2d iphone. Это значит, что я играю в игру, и после каждой цели я хочу создать эффект затухания или любой другой тип на текущей сцене бега.
Если я напишу это, то заменит текущую сцену на новую. Но я не хочу заменять сцену.
[[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0f scene:[GamePage scene]]];
Есть ли способ показать эффект на текущей странице, как это. Я знаю, что это неправильно, но я хочу что-то вроде этого:
[self transitionEffect:[CCTransitionFade actionWithDuration:0.5]];
2 ответа
Для сцены действие Layer (подкласс CCNode), связанное с непрозрачностью, не будет работать.!
Вы можете использовать переход или использовать CCFadeTo для всех ваших спрайтов.
Но если вы выбираете CCFadeTo для всех спрайтов, это потребует внезапного выделения множества действий! FPS замедлится!!
Еще один лучший подход:
Скажите своему дизайнеру, чтобы получилось изображение квадрата с черной точкой размером 1 х 1 пиксель. Добавьте этот код, наконец, в методе init.
CCSprite *temp=[CCSprite spriteWithFile:@"squaredotBlack.png"];
temp.position=ccp(s.w/2,s.h/2);
[self addChild:temp z:50000]; //set as most top layer
temp.scaleX=s.w;
temp.scaleY=s.h;
temp.opacity=0;
Затем примените, для процесса "Затухания" всего экрана, увеличьте непрозрачность.
temp.opacity=0;
[temp runAction:[CCFadeTo actionWithDuration:1 opacity:255]]; //0 to 255
Затем примените, для процесса "Fade In" всего экрана, уменьшите непрозрачность.
temp.opacity=255; // this will cover whole screen with black color
[temp runAction:[CCFadeTo actionWithDuration:1 opacity:0]]; //255 to 0
Вы можете запустить действие на весь CCLayer
[self runAction:[CCFadeOut actionWithDuration:0.5f]];
или вы можете использовать CCFadeTo для перехода к желаемой непрозрачности.