使用Cocos2d v2.0.0,进行了很多更改,很多人遇到了一些扩展问题和其他冲突......
如果他们阅读并测试Ray Wenderlich的伟大着作更为真实:学习Cocos2d:维京人很大,背景不居中,图像的后缀系统不起作用,......
那么,如何进行?
答案 0 :(得分:4)
基本上,在创建新的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中使用sneakyinput: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相比的内容。
答案 1 :(得分:0)
cocos2d v2.0迁移指南:
http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:migrate_to_v2.0