Cocos2d v2.0-设置场景、图层、精灵等



使用Cocos2d v2.0.0,进行了大量更改,许多人遇到了一些缩放问题和其他冲突。。。

如果他们阅读并测试Ray Wenderlich的新书:Learning Cocos2d:维京人太大了,背景不居中,图像的后缀系统不起作用。。。

那么,如何进行呢?

基本上,在创建新的cocos2d v2项目时,示例项目中已经告知了所有内容。但是,我们中的一些人需要指出一些事情。

  • 适用于iPhone(非视网膜和视网膜)和iPad(非视网膜)的图像后缀系统

查看AppDelegate.m中的第68-71行以下是您需要记住的内容:

  1. 你只需要打电话给

    CCSprite *mySprite = [CCSprite spriteWithFile:@"mySprite.png"];
    
  2. 不需要一些if(iPad)然后其他if(iPhone)blabla
  3. 确保您调用了AppDelegate.m中的图像,如第68-71行(默认值:mySprite.png(iPhone)|mySprite hd.png(iPhone视网膜)|mySprite ipad.png


  • 调用场景

查看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(操纵杆开源库)

你可以在这里找到如何将sneakinput与cocos2d v2一起使用: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的内容,我将不胜感激。

cocos2d v2.0迁移指南:

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

最新更新