cocos2d-objc 3.0+ 游戏开发学习手册(四): 使用CocoaPods 管理cocos2d项目

图片来自网络

关于cocos2d 3.5 新版的默认项目

使用官方的安装器cocos2d Installer创建的工程后,默认的cocos2d-ext路径下是不完整的.

cocos2d-ext

官方的github获取的开源项目工程的cocos2d-ext路径内容如下:

cocos2d 开源项目

之所以出现这种情况,是由于cocos2d 3.5版本后,项目的组织结构变化较大,对很多功能都进行了单独抽离后放置到ext这个部分,不再默认的全部集成在项目中,而是根据大家的具体使用情况,酌情的添加需要的部分.

关于OALSimpleAudio

OALSimpleAudio类是cocos2d中音频处理模块,常常用于游戏开发中管理背景音乐与音效,但这个模块在3.5新版之后,默认是没有集成的,因此需要从cocos2d的官方项目目录中手动添加到自己的项目中(直接拖拽文件夹即可).

cocs2d github工程目录

拖拽到项目时,记得勾选 Copy item if needed选项,完成后的项目工程示例如图:

添加OALSimpleAudio后

编译你的项目工程时如果出现Too many arguments to function call错误:

ObjectAL 编译错误

你需要从github上获取最新的ObjectAL-for-iPhone代码 然后重新拖拽一下就可已使用了.

在cocos2d中使用cocoapods

游戏开发中也常常需要使用第三方库,无论MacOS 和iOS 开发cocospods已成为项目管理的事实标准.下面我们在cocos2d示例项目中添加Podfile文件(AFNetworking为示例)来使用cocoapods管理工程:

Podfile文件

执行命令:

  pod install --no-repo-update

cocoapods会提示两个警告:

cocoapods 警告信息

原因:

从警告信息中我们知道是由于Xcode项目的build setting编译设置中OTHER_LDFLAGS的配置与cocoapods不同,可能会导致调试或者打包发布产生问题.我们先看一下cocos2d示例工程默认在Build setting中的设置:

cocos2d 默认OTHER_LDFLAGS

再看一下cocoapods对OTHER_LDFLAGS的设置:

cocoapods debug config

解决办法:

既然我们使用cocoapods管理项目,那么对OTHER_LDFLAGS的配置,我们就以cocoapods为主,因此只需要将它们的设置统一: 在Build setting中OTHER_LDFLAGS设置项添加$(inherited)即可.

  • Build settingOTHER_LDFLAGS选项添加$(inherited):

添加inherited

再次编译项目,就可以在项目中正常使用cocoapods添加的第三方库了

结束语

cocos2d 3.5 版本开始发生的变化比较大,很多的功能都是以类似组件的方式供开发者使用,例如前面提到的音频处理模块OALSimpleAudio. cocos2d从3.1版本开始去除了对CCScene子类的drawvisit调用,如果你之前使用过draw或者visit方法进行CCScene的绘制或添加颜色,官方都推荐使用CCDrawNode来实现(因为draw方法比较耗费性能,它会在CCNode的每个刷新帧都会自动被调用). 关于粒子系统, 瓦片地图,视觉差效果等常用的类,也需要手动集成到项目中,具体的使用会在讲到的时候再做详细说明~~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云飞学编程

Python爬虫技巧!网站有反爬?我们有selenium!

框架底层使用JavaScript模拟真实用户对浏览器进行操作。测试脚本执行时,浏览器自动按照脚本代码做出点击,输入,打开,验证等操作,就像真实用户所做的一样,从...

5491
来自专栏FreeBuf

漏洞追踪:最新IE UXSS漏洞技术分析

最近David Leo在Full Disclosure上爆出了一个ie的 uxss 漏洞,可以绕过ie的同源策略。FreeBuf也有相关的报道(点我查看)。本文...

2037
来自专栏小特工作室

Navi.Soft31.WebMVC框架(含示例地址)

1概述 1.1应用场景 互联网高速发展,互联网软件也随之越来越多,Web程序越来越被广泛使用.它部署简单,维护方便,深得众多软件公司使用 Bootstrap前端...

2237
来自专栏地方网络工作室的专栏

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来 前情回顾 在上一篇博文《Vue2+VueRou...

22010
来自专栏iOS Developer

微信小程序开发教程-从零开始(3)

2236
来自专栏BeJavaGod

创建线程的几种方式

说道线程,肯定会想到使用 java.lang.Thread.java这个类 那么创建线程也主要有2种方式 第一种方式: ? 然后在调用处,执行start方法即可...

3364
来自专栏Alan's Lab

在 Angular 2 Component 中使用第三方 JS 库

本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言。

1863
来自专栏算法修养

Atom打造 c/c++编译环境(忙了一个上午)

众所周知 Atom是一款非常酷炫的编辑器。因为它就像上古卷轴一样,玩家可以开发各种dlc补丁,实现自己想要的效果。所以Atom 可以被你改造成自己想要的东西,可...

5787
来自专栏乐百川的学习频道

Visual Studio Code介绍

应该有很多人都知道Atom编辑器吧,它是由Github开发的一个跨平台的编辑器。它使用了跨平台的Electron,用前端技术编写图形界面。一开始我也推荐过这个编...

2815
来自专栏wOw的Android小站

[iOS] Win8下在Vmware11中安装使用苹果系统OS X 10.10

  近来因为需要做 iOS 的项目,所以需要多花一些时间看看敲敲代码。因为自己手头上并没有 Mac(过年为了闲的时候能玩玩游戏买了联想,唉),想想不能只靠每天在...

1940

扫码关注云+社区

领取腾讯云代金券