我是新來的coco2d &開發一個簡單的遊戲應用程序。CCRepeatForever動作在切換場景時自動停止......!
我需要兩個屏幕左邊一個&其他右邊,就像在滾動視圖與分頁有2個屏幕之間切換。我在RootViewController類的幫助下檢測滑動,併成功滑動左右屏幕。
但問題是我必須無限地在兩個屏幕上運行rotateBy動作,每個屏幕上都運行這個動作,放在屏幕中心的單個精靈上。
我正在使用一個名爲SelectWorld的主場景&兩個是它的子場景。 第一個屏幕被稱爲工廠&其他被稱爲堆棧。 以下是我的代碼: -
選擇World屏幕....
@implementation SelectWorld
+(CCScene*)scene
{
CCScene* scene = [CCScene node];
SelectWorld* layer = [SelectWorld node];
[scene addChild:layer];
return scene;
}
-(id)init
{
if((self = [super init]))
{
[RootViewController singleton].swipeCallBackHandler = self;
[[RootViewController singleton] enableSwipeDetection];
factory = [[ColorfulFactory scene] retain];
stack = [[CoinsStack scene] retain];
[self addChild:factory];
isOnFactory = YES;
}
return self;
}
-(void)swipedLeft
{
if(isOnFactory)
{
[self removeAllChildrenWithCleanup:YES];
isOnFactory = NO;
CCTransitionScene* transitionalScene = [CCTransitionSlideInR transitionWithDuration:0.3 scene:stack];
[[CCDirector sharedDirector] replaceScene:transitionalScene];
}
}
-(void)swipedRight
{
if(!isOnFactory)
{
[self removeAllChildrenWithCleanup:YES];
isOnFactory = YES;
CCTransitionScene* transitionalScene = [CCTransitionSlideInL transitionWithDuration:0.3 scene:factory];
[[CCDirector sharedDirector] replaceScene:transitionalScene];
}
}
下面是隻有工廠代碼,這同樣適用於重新建立了新
@implementation ColorfulFactory
+(CCScene*)scene
{
CCScene* scene = [CCScene node];
ColorfulFactory* layer = [ColorfulFactory node];
[scene addChild:layer];
return scene;
}
-(id)init
{
if((self = [super init]))
{
CGSize size = [CCDirector sharedDirector].winSize;
CCLabelTTF* info = [CCLabelTTF labelWithString:@"Colorful Factory" fontName:@"Helvetica" fontSize:35.0];
info.position = ccp(size.width/2, size.height-50);
[self addChild:info];
CCSprite* sprite = [CCSprite spriteWithFile:@"Icon.png"];
sprite.position = ccp(size.width/2, size.height/2);
[self addChild:sprite];
sprite.tag = 123;
CCRotateBy* rotateBy = [CCRotateBy actionWithDuration:60 angle:360.0];
CCRepeatForever* repeatForever = [CCRepeatForever actionWithAction:rotateBy];
[sprite runAction:repeatForever];
repeatForever.tag = 456;
}
return self;
}
現在的問題是,在前兩個滑動動作運行良好,但只要我嘗試滑動兩次或三次以上,動作就會停止。我沒有寫過一行來阻止這兩個類。我需要它永遠在運行。
有人可以提出我的錯誤嗎?
謝謝。