-1

数か月前に cocos2d iphone で開発を開始しました。今、私はゲームを終了しようとしていますが、1 つの位置で立ち往生しています。そして、これはコーディングの問題であることを知っています。

まず、メイン画面について説明したいと思います。ゲームが開始されると、約 7 秒かかるアニメーションがいくつかあり、その後、再生ボタンが表示されます。次に、それをクリックすると、ゲームが開始されます。

今、私は1つのボタンを実装したいと思っています。そのボタンをクリックすると、シーンがトランジットになり、アニメーションなしでメインメニューが直接表示されます。

したがって、基本的には、アニメーションが最初に終了するまでユーザーを待たせたくありません。直接ゲームをしてもらいたい。

ガイドラインやヒントをいただければ幸いです。

4

1 に答える 1

0

3 つの異なるボタンを配置したデモ コードを実装しました。すべてのボタンは同じクラスのシーンに移動しますが、ボタンをクリックすると毎回異なるシーンが表示されます。

これはHelloWorldLayer.hです

#import "cocos2d.h"

@interface HelloWorldLayer : CCLayer
{
}

// returns a CCScene that contains the HelloWorldLayer as the only child
+(CCScene *) scene:(int)level;
+(id)nodeWithGameLevel:(int)level;
-(id) initWithGameLevel:(int)level;
@end

HelloWorldLayer.mクラス

@implementation HelloWorldLayer
+(CCScene *) scene:(int)whichLevel
{
    // 'scene' is an autorelease object.
    CCScene *scene = [CCScene node];

    // 'layer' is an autorelease object.
    HelloWorldLayer *layer = [HelloWorldLayer nodeWithGameLevel:whichLevel];
    // add layer as a child to scene
    [scene addChild: layer];

    // return the scene
    return scene;
}
-(id) initWithGameLevel:(int)level
{
    if( (self=[super init]) ) {
        printf("level:%d",level);
        if (level == 1) {
            //Code for scene with full animation.
        }else if(level == 2){
            //code for scene without animation.
        }else if(level == 3){
            // any other scene which you want.
        }
        CCMenuItemImage *item1 = [CCMenuItemImage itemWithNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(goToMainMenu)];
        CCMenuItemImage *item2 = [CCMenuItemImage itemWithNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(goToRestartMenu)];
        CCMenuItemImage *item3 = [CCMenuItemImage itemWithNormalImage:@"Icon-72.png" selectedImage:@"Icon-72.png" target:self selector:@selector(goToMainPage)];
        CCMenu *menu = [CCMenu menuWithItems:item1,item2,item3, nil];
        [self addChild:menu];
        [menu alignItemsVertically];
    }
    return self;
}

+(id)nodeWithGameLevel:(int)level{
    return  [[[self alloc] initWithGameLevel:level] autorelease];
}
-(void)goToMainMenu{
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[HelloWorldLayer scene:1] withColor:ccWHITE]];
}
-(void)goToRestartMenu{
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[HelloWorldLayer scene:2] withColor:ccWHITE]];
}
-(void)goToMainPage{
    [[CCDirector sharedDirector] replaceScene:[CCTransitionFade transitionWithDuration:1.0 scene:[HelloWorldLayer scene:3] withColor:ccWHITE]];
}
于 2013-06-22T09:49:05.803 に答える