此代碼在我改變場景時創建一個隨機轉換。有十一個過渡。因爲它們是靜態的,所以我認爲我不能使用NSClassFromString。我還需要傳遞場景(s)對象。 現在開關似乎是多餘的。有沒有一種方法可以重寫這個以提高效率?有沒有更好的方法來寫這個Objective-C的代碼?
-(void) newScene
{
CCScene *s = [CCScene node];
id child = [sceneCharacter node];
[s addChild:child];
int random = arc4random() % 10;
switch (random)
{
case 1:
[[CCDirector sharedDirector] replaceScene:[CCFadeTransition transitionWithDuration:0.5f scene:s]];
break;
case 2:
[[CCDirector sharedDirector] replaceScene:[CCFadeTRTransition transitionWithDuration:0.5f scene:s]];
break;
case 3:
[[CCDirector sharedDirector] replaceScene:[CCJumpZoomTransition transitionWithDuration:0.5f scene:s]];
break;
case 4:
[[CCDirector sharedDirector] replaceScene:[CCMoveInLTransition transitionWithDuration:0.5f scene:s]];
break;
case 5:
[[CCDirector sharedDirector] replaceScene:[CCOrientedTransitionScene transitionWithDuration:0.5f scene:s]];
break;
case 6:
[[CCDirector sharedDirector] replaceScene:[CCPageTurnTransition transitionWithDuration:0.5f scene:s]];
break;
case 7:
[[CCDirector sharedDirector] replaceScene:[CCRotoZoomTransition transitionWithDuration:0.5f scene:s]];
break;
case 8:
[[CCDirector sharedDirector] replaceScene:[CCShrinkGrowTransition transitionWithDuration:0.5f scene:s]];
break;
case 9:
[[CCDirector sharedDirector] replaceScene:[CCSlideInLTransition transitionWithDuration:0.5f scene:s]];
break;
case 10:
[[CCDirector sharedDirector] replaceScene:[CCSplitColsTransition transitionWithDuration:0.5f scene:s]];
break;
case 0:
[[CCDirector sharedDirector] replaceScene:[CCTurnOffTilesTransition transitionWithDuration:0.5f scene:s]];
break;
default:
[[CCDirector sharedDirector] replaceScene:s];
}
}
xscott的回答是,因爲我沒有注意到,你的東西隨機更正確-_- :) – LaN 2010-10-28 03:44:28