我刚刚完成了我的iPhone应用程序概念.我有一个主程序,在那个程序中我想开始一个游戏.
主程序(按钮1 /按钮2 /开始游戏)| | Cocos2d游戏
这可能吗?在正常的"iPhone应用程序"中使用cocos2D ???
非常感谢!!!
将UIKit与Cocos2d混合绝对是可能的.通常人们通过将他们的UIKit视图放在Cocos2d层中来实现这一点.听起来你想要将Cocos2d游戏嵌入到UIKit视图中.这应该是可能的,但我不确定所涉及的细节.尝试-(BOOL)attachInView:(UIView *) view
在CCDirector中查看.
请注意,Cocos2d使用OpenGL,混合OpenGL和UIKit时可能会出现性能问题.在使用应用程序的其他部分时暂停Cocos2d会有所帮助.
我在Ray Wenderlich的网站上找到了大量关于iPhone的Cocos2D的精彩教程.您可能特别想要查看的一个教程是 如何集成Cocos2D和UIKit
注意:最初的"Cocos2D"框架是用Python编写的,不是为iOS设计的; 这是iOS端口的实际主页.
这是可能的,但您应该知道应用程序的主要核心必须由Cocos2D控制,这意味着CCDirector需要在AppDelegate中实例化.
从...开始:
一个).安装Cocos2D:
转到终端并写入(如果在桌面上保存cocos2D文件,如果不使用保存它的路径)
cd Desktop/cocos2d-iphone-1.1-beta sudo ./install-templates.sh
如果你无法安装再试一次
./install-templates.sh -f -u
B).在AppDelegate中导入cocos2d.h
C).在AppDelegate中的applicationDidFinishLaunching方法中声明CCDirector(你应该在Cocos2D模板中检查这个代码非常简单)
我在applicationDidFinishLaunching方法中做到了这一点:
- (void)applicationDidFinishLaunching:(UIApplication *)application { window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [window setUserInteractionEnabled:YES]; [window setMultipleTouchEnabled:YES]; CCDirector *director = [CCDirector sharedDirector]; // Create an EAGLView with a RGB8 color buffer, and a depth buffer of 24-bits EAGLView *glView = [EAGLView viewWithFrame:[window frame] pixelFormat:kEAGLColorFormatRGB565 // kEAGLColorFormatRGBA8 depthFormat:0 // GL_DEPTH_COMPONENT16_OES ]; [glView setMultipleTouchEnabled:YES]; // attach the openglView to the director [director setOpenGLView:glView]; // Enables High Res mode (Retina Display) on iPhone 4 and maintains low res on all other devices if( ! [director enableRetinaDisplay:YES] ) CCLOG(@"Retina Display Not supported"); // make the OpenGLView a child of the main window [window addSubview:glView]; // make main window visible [window makeKeyAndVisible]; GameScene *gs = [GameScene node]; [[CCDirector sharedDirector] runWithScene:gs]; //General is part of UIKit where I load the tabbar General *principal; if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { principal = [[General alloc] initWithNibName:@"General-iPad" bundle:nil]; } else { principal = [[General alloc] initWithNibName:@"General" bundle:nil]; } self.general = principal; [principal release]; [self showUIViewController:general];
}
从UIKit中的tabbar推送场景
[[CCDirector sharedDirector] pushScene: [CCTransitionMoveInB transitionWithDuration:0.0f scene:[MyScene scene]]];
接下来我建议你按照Ray Wenderlich的教程如何集成Cocos2D和UIKit阅读这篇文章以及我们如何使用cocos2d展示UIViewController和UIView?也许你应该在Cocos2D论坛中搜索一些代码,总是帮助看到它.
编辑:
1)您可以从这里下载一个简单的例子:UIKit Cocos2D
你也可以查看这个框架:Kobol2D"是流行的Cocos2D for iPhone游戏引擎的扩展和改进版本.你所知道的关于Cocos2D的一切仍然可以应用,而且Kobold2D更容易上手,使用起来更方便,更多比Cocos2D强大而灵活,可以在线和离线使用所有文档.使用Kobold2D为Apple App Stores开发iPhone,iPod touch,iPad和Mac OS X游戏.它有一些使用UIKIT和Cocos2D的例子.