加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何将Box2d添加到现有的Xcode / Cocos2d项目中

发布时间:2020-12-14 19:27:37 所属栏目:百科 来源:网络整理
导读:我有一个工作的 Xcode项目,其中一个视图中包含Cocos2d.我现在需要添加Box2d.我尝试将Box2D文件夹拖到我的cocos2d-2.x-ARC-iOS文件夹的libs目录中并添加到该目标,但是我在编译时得到了这个: (in b2BroadPhase.cpp)'Box2D/Collision/b2BroadPhase.h' file not
我有一个工作的 Xcode项目,其中一个视图中包含Cocos2d.我现在需要添加Box2d.我尝试将Box2D文件夹拖到我的cocos2d-2.x-ARC-iOS文件夹的libs目录中并添加到该目标,但是我在编译时得到了这个:

(in b2BroadPhase.cpp)
'Box2D/Collision/b2BroadPhase.h' file not found

我敢肯定,这只是我将遇到的许多错误中的第一个.我错过了什么步骤才能获得我项目中编译的所有Box2d文件?

所有box2d文件都列在cocos2d-library目标的编译源中.

为什么这么难做呢?为什么它不像其他图书馆那样工作?

AND – 我必须将项目中的每个.m重命名为.mm吗?这几乎是不可能的,因为这是一个包含许多文件的大型xcode项目.我只想在一个视图中使用Box2d.

针对LearnCocos2D给出的答案的其他信息 –

我的文件夹结构(在Finder中)如下所示:

Root = MyProject.xcodeproj,MyProject文件夹,cocos2d-2.x-ARC-iOS文件夹
在cocos2d-2.x-ARC-iOS文件夹中有一个名为libs的文件夹.在该文件夹中,我有Box2D文件夹,以及Cocos2d,CocosDenshion等.

在XCode中我有一个PROJECT(MyProject)
和2个TARGETS(cocos2d-library,MyProject)
PROJECT和TARGETS都有“标题搜索路径”.我设置哪一个?它应该是递归的还是非递归的?当我将Box2D文件夹拖入Xcode时,我将其设置为哪个目标?

我的项目文件位于/ Users / me / Dropbox / iOS / MyProject.那么我究竟要为标题搜索路径输入什么? /Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs似乎不起作用.

另一个更新 – /Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs作为MyProject TARGET中的标题搜索路径似乎让我超过了Box2D错误.然后我找到了’cassert’文件找不到错误.通过将视图控制器,它的父级和AppDelegate更改为文件类型“Objective-C Source”,就像你建议的那样.现在…

现在我在NSObjCRuntime.h NSZone.h,NSObject(预期的非限定ID,未知类型名称’NSString’等)中遇到了一连串的错误.因此,您似乎要么使用Box2d / Cocos2d或UIKit应用程序创建应用程序.试图让两者都是一场彻头彻尾的噩梦.

解决方法

最简单的解决方案:启动已集成Box2D的新项目.然后添加您的源文件&它的资源.相信我,它并不容易.

Box2D需要我的头顶几件事:

由于搜索路径使用Box2D.h文件的路径减去一个级别.好的,这需要一个更好的解释:

如果Box2D.h位于/ Projects / MyProject / libs / Box2D中

…然后搜索路径应该是/ Projects / MyProject / libs

这是因为Box2D #include语句总是包含Box2D路径:

#include <Box2D/Common/b2Settings.h>

总之,标头搜索路径加上#include / #import路径应该提供文件的完整路径:

/Projects/MyProject/libs/Box2D/Common/b2Settings.h

然后很容易检查您是否正确搜索路径.

请务必将搜索路径添加到标题搜索路径而不是其他库的用户标题搜索路径设置.这是因为Box2D使用尖括号< file.h>包括.大多数其他库使用“file.h”,它使用用户头搜索路径来查找其头文件.

为什么这很难?编译器设置.有很多.错误和警告并不总是显而易见的.实际上,这是常态.还有很多方法可以编写和添加代码.哦,这么多不同的语言和语言版本.这主要是经验问题.在5级和更高级别它变得更容易,在10级它只是一个麻烦.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读