Iphone 在非cocos2d项目中包括cocos2d

Iphone 在非cocos2d项目中包括cocos2d,iphone,ios,animation,cocos2d-iphone,Iphone,Ios,Animation,Cocos2d Iphone,我做了一些谷歌搜索和堆栈溢出,但仍然有问题该怎么办。 我有一个很大的基于导航的项目,iOS5.1,用于iphone。 在一些VCs上,我需要包括一些或多或少复杂的动画,比如一个男孩角色的咀嚼动画。 我曾经使用过cocos2d,我知道用cocos2d实现我的目标是非常容易的。但是,是否有可能在所需的VC中加入含有coco2sd的场景和图层?或者以某种方式将视图与场景重叠? 任何提示都将不胜感激。我这样做的方式只是创建一个CCDirector当我初始化ViewController时,CCDirect

我做了一些谷歌搜索和堆栈溢出,但仍然有问题该怎么办。 我有一个很大的基于导航的项目,iOS5.1,用于iphone。 在一些VCs上,我需要包括一些或多或少复杂的动画,比如一个男孩角色的咀嚼动画。 我曾经使用过cocos2d,我知道用cocos2d实现我的目标是非常容易的。但是,是否有可能在所需的VC中加入含有coco2sd的场景和图层?或者以某种方式将视图与场景重叠?
任何提示都将不胜感激。

我这样做的方式只是创建一个CCDirector当我初始化ViewController时,CCDirector使用OpenGL视图,您可以创建ViewController的子视图。有了CCDirector,您就可以在Cocos2D中完成通常要做的所有事情

if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
    [CCDirector setDirectorType:kCCDirectorTypeMainLoop];

CCDirector *director = [CCDirector sharedDirector];

EAGLView *glview = [EAGLView viewWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];

[self.view insertSubview:glview atIndex:1];
[director setOpenGLView:glview];

首先,您需要在AppDelegate中创建一个控制器:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  // ...

  // Create Cocos2D Director
  //
  // Try to use CADisplayLink director
  // if it fails (SDK < 3.1) use the default director
  if( ! [CCDirector setDirectorType:kCCDirectorTypeDisplayLink] )
    [CCDirector setDirectorType:kCCDirectorTypeDefault];

  CCDirector *director = [CCDirector sharedDirector];
}
您可以创建自己的场景来替换
空白场景


我强烈推荐你在这项技术上发表一篇帖子:。我通过阅读@Ray的帖子成功地实现了这一点!;)

- (void)viewDidLoad {
  [super viewDidLoad];

  // configre subviews
  // ...

  // Add your Cocos2D view
  EAGLView * glView = [EAGLView viewWithFrame:self.view.bounds
                                  pixelFormat:kEAGLColorFormatRGB565
                                  depthFormat:0];
  [glView setAutoresizingMask:UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight];
  [[CCDirector sharedDirector] setOpenGLView:glView];
  [self.view addSubview:glView];

  // Run a blank scene for testing
  CCScene * blankScene = [CCScene node];
  [[CCDirector sharedDirector] runWithScene:blankScene];
}