2

Cocos2d v2.0.0では、多くの変更が加えられ、多くの人々がスケーリングの問題やその他の競合を経験しています...

彼らがレイ・ヴェンダーリッヒの素晴らしい本を読んでテストした場合、これはさらに真実です:Learning Cocos2d:バイキングの男は大きく、背景は中央に配置されておらず、画像の接尾辞システムは機能していません...

では、どのように進めますか?

4

2 に答える 2

4

基本的に、新しいcocos2d v2プロジェクトを作成するとき、サンプルプロジェクトではすべてがすでに伝えられています。しかし、私たちの中には物事を指摘する必要がある人もいます。

  • iPhone(非網膜および網膜)およびiPad(非網膜および網膜)用の画像サフィックスシステム

AppDelegate.mの68〜71行目を確認してください。覚えておく必要があることは次のとおりです。

  1. あなたはただ電話する必要があります

    CCSprite *mySprite = [CCSprite spriteWithFile:@"mySprite.png"];
    
  2. if(iPad)、else if(iPhone)blablaは必要ありません
  3. AppDelegate.mの68〜71行目のように画像を呼び出していることを確認してください(デフォルト:mySprite.png(iPhone)| mySprite-hd.png(iPhone Retina)| mySprite-ipad.png(iPad)| mySprite-ipadhd.png(iPad Retina)


  • シーンを呼び出す

AppDelegate.mの76行目を確認してください

  1. クラスからシーン関数を呼び出すだけです(pushSceneを使用)

    [director_ pushScene: [MyScene scene]];
    


  • シーンクラスにレイヤーを追加する

  1. シーンクラスが+(CCSene *)シーン関数で呼び出されたと仮定します(これはcocos2d v2の良い習慣です)
  2. +(CCScene *) scene
    {
        // 'scene' is an autorelease object.
        CCScene *scene = [CCScene node];
    
        BackgroundLayer *backgroundLayer = [BackgroundLayer node];
        [scene addChild:backgroundLayer z:0];
    
        GameplayLayer *gameplayLayer = [GameplayLayer node];
        [scene addChild:gameplayLayer z:5];
    
        return scene;
    }
    


  • クラス(CCScene、CCLayer、...)からのinit関数の置き換え

これは、cocos2dのv2からのスケーリングの問題が発生する場所です(しかし、理由はわかりません)。

  1. -(id)initを呼び出す代わりに、

    -(void) onEnter{ //Do some sprite displaying with [self addChild:mySprite]; }
    
  2. スプライトを表示する前にロードする必要がある他のものについては、-(id)init関数を呼び出すことができます。


  • SneakyInputの使用(ジョイスティックオープンソースライブラリ)

cocos2d v2でsneakyinputを使用する方法については、こちらをご覧ください:http: //cl.ly/1J2D2z0f3o0r3h041o3o


  • マルチタッチの有効化

  1. この行をレイヤーに追加します(+(CCScene *)シーン関数またはその他の場所で)

    layer.isTouchEnabled = YES;
    
  2. 次に、これを同じ.mに追加します

    - (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event 
    {
        NSArray *touchArray=[touches allObjects];
    
        if ([touchArray count] == 2)
        {
            NSLog(@"2");
        }
        else if([touchArray count]==1)
        {
            NSLog(@"1");
        }
    }
    
  3. 最後に、AppDelegate.mに移動して、これを追加します。

    [[CCDirector sharedDirector].view setMultipleTouchEnabled:YES];
    


cocos2d v2の開発者が、v1と比較してcocos2d v2を使用する方法について支援し、投稿していただければ幸いです。

于 2012-07-20T06:34:12.180 に答える
0

cocos2d v2.0移行ガイド:

http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:migrate_to_v2.0

于 2012-07-20T06:53:52.160 に答える