2012-09-11 120 views
1

我做了一些Google搜索和堆棧溢出,但仍然存在問題該怎麼辦。 我有一個大的基於導航的項目,iOS5.1,爲iPhone。 在幾個VC中,我需要包含一些或多或少複雜的動畫,比如男孩角色的咀嚼動畫。 我已經與cocos2d合作過,我知道用cocos2d完成我的目標很容易。但是是否有可能將coco2sd的場景和圖層包含到所需的VC中?或者以某種方式將視圖與S場景重疊? 任何提示將不勝感激。在非cocos2d項目中包含cocos2d

回答

1

首先,你需要在你的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]; 
} 

而在你-viewDidLoad方法,它是由Cocos2D中創建的視圖添加到self.view作爲一個子視圖:

- (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]; 
} 

然後您可以創建自己的場景來替換blankScene


我強烈建議你在這個技術上的帖子:"How To Integrate Cocos2D and UIKit"。我通過閱讀@ Ray的帖子成功實現了這一點! ;)

2

我這樣做的方式只是在初始化ViewController時創建CCDirector,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]; 
+0

好評,謝謝! – Dumoko