使用 Cocos2d v2.0.0,进行了很多更改,很多人遇到了一些缩放问题和其他冲突......
如果他们阅读并测试了 Ray Wenderlich 的好书,那就更是如此:学习 Cocos2d:维京人太大,背景不居中,图像后缀系统不起作用,...
那么,如何进行呢?
使用 Cocos2d v2.0.0,进行了很多更改,很多人遇到了一些缩放问题和其他冲突......
如果他们阅读并测试了 Ray Wenderlich 的好书,那就更是如此:学习 Cocos2d:维京人太大,背景不居中,图像后缀系统不起作用,...
那么,如何进行呢?
基本上,在创建新的 cocos2d v2 项目时,样例项目中已经说明了一切。但是,我们中的一些人需要指出一些事情。
查看 AppDelegate.m 中的第 68-71 行以下是您需要记住的内容:
你只需要打电话
CCSprite *mySprite = [CCSprite spriteWithFile:@"mySprite.png"];
从 AppDelegate.m 查看第 76 行
只需从您的班级调用场景函数(使用 pushScene)
[director_ pushScene: [MyScene scene]];
+(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;
}
这就是来自 cocos2d v2 的缩放问题的来源(但我不知道为什么)。
而不是调用 -(id)init,调用
-(void) onEnter{ //Do some sprite displaying with [self addChild:mySprite]; }
您仍然可以调用 -(id)init 函数来处理在显示精灵之前需要加载的其他内容。
你可以在这里找到如何在 cocos2d v2 中使用偷偷摸摸的输入:http: //cl.ly/1J2D2z0f3o0r3h041o3o
将此行添加到您的图层(在 +(CCScene*) 场景函数中或其他位置)
layer.isTouchEnabled = YES;
然后将其添加到相同的 .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");
}
}
最后,转到 AppDelegate.m 并添加以下内容:
[[CCDirector sharedDirector].view setMultipleTouchEnabled:YES];
如果 cocos2d v2 开发人员可以提供帮助并发布有关如何使用 cocos2d v2 与 v1 相比的内容,我将不胜感激。
cocos2d v2.0 迁移指南:
http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:migrate_to_v2.0