您的位置:首页 > 移动开发 > Cocos引擎

Cocos2d-x系列二:xcode中导入cocos2d_libs到自己项目中

2017-06-26 09:40 330 查看
xcode项目中引入cocos2dx,需要先导入cocos2d_libs静态库。
1、把cocos2dx项目(cocos2dx在Mac上开发环境配置及新建工)中如下图所示资源拷贝到xcode工程根目录下



图1-1

2、在xcode工程中导入cocos2d_libs.xcodeproj



图1-2

注意optiens选择如下



图1-3

3、在项目中配置中选择targets,在Build Phases中添加Target Dependencies和Link Binary With Libraries



图1-4

4、PROJECT中设置Header Search Paths,相对路径,因为我把cocos2d文件夹放在MyCocos.xcodeproj的同级目录,所以是这个路径。$(SRCROOT)是.xcodeproj所在位置



图1-5

$(inherited) $(SRCROOT)/cocos2d $(SRCROOT)/cocos2d/cocos $(SRCROOT)/cocos2d/cocos/base $(SRCROOT)/cocos2d/cocos/physics $(SRCROOT)/cocos2d/cocos/math $(SRCROOT)/cocos2d/cocos/2d $(SRCROOT)/cocos2d/cocos/ui $(SRCROOT)/cocos2d/cocos/audio/include $(SRCROOT)/cocos2d/extensions $(SRCROOT)/cocos2d/external $(SRCROOT)/cocos2d/external/chipmunk/include/chipmunk $(SRCROOT)/cocos2d/cocos/editor-support

5、设置TARGETS中Header Search Paths,这里设置同第4步



图1-6

6、设置预处理的宏定义,Debug和Release,这里是以Iphone版本



图1-7

USE_FILE32API CC_TARGET_OS_IPHONE COCOS2D_DEBUG=1 CC_ENABLE_CHIPMUNK_INTEGRATION=1




图1-8

USE_FILE32API CC_TARGET_OS_IPHONE CC_ENABLE_CHIPMUNK_INTEGRATION=1

7、C / C++编译器的选择,这个与原本项目有关。



图1-9

8、关闭BitCode
上面完成之后,就可以尝试Build了,如果运气好的话,基本就可以成功了。
9、导入Classes和Resource



图1-10

如果直接导入Classes文件和Resource,运行异常如下



图1-11

检测导入后Complie Souces



图1-12

10、导入cocos2dx项目 proj.ios_mac->ios下的几个文件



图1-13

11、修改AppDelegate名称,否则与cocos::AppDelegate冲突

12、在ViewController.cpp中开启游戏
#import "ViewController.h"
#import "GAppDelegate.h"
#import "RootViewController.h"
#include "cocos2d.h"
@interface ViewController ()
{
RootViewController *viewController ;
}
@end

@implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIButton * bt = [[UIButton alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
bt.backgroundColor = [UIColor brownColor];
[bt addTarget:self action:@selector(bt:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:bt];

}

//初始化
- (void)initGame {
cocos2d::Application *app = cocos2d::Application::getInstance();
// Initialize the GLView attributes
app->initGLContextAttrs();
cocos2d::GLViewImpl::convertAttrs();
}
//开启游戏
- (void)startGame {
cocos2d::GLView *glview = cocos2d::GLViewImpl::createWithEAGLView((__bridge void *)viewController.view);
cocos2d::Director::getInstance()->setOpenGLView(glview);
//run the cocos2d-x game scene
cocos2d::Application::getInstance()->run();
}
- (void)bt:(UIButton*)bt {
[self initGame];

// Override point for customization after application launch.

// Use RootViewController to manage CCEAGLView
viewController = [[RootViewController alloc]init];
// viewController.wantsFullScreenLayout = YES;

((GAppDelegate *)[[UIApplication sharedApplication] delegate]).root  = viewController;

// [[UIApplication sharedApplication] setStatusBarHidden:true];

[self presentViewController:viewController animated:YES completion:^{
// IMPORTANT: Setting the GLView should be done after creating the RootViewController
[self startGame];
}];

}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

13.使用经过编译后的libcocos2d IOS.a,避免每次运行都要编译。(Cocos2d-x在xcode下开发生成静态库添加到项目



屏幕快照 2017-06-19 下午4.21.11.png

参考
xcode中导入cocos2d_libs到自己项目中
Cocos2d-x在xcode下开发生成静态库添加到项目
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐