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