今天有个小伙伴在cocos2dx自带的HelloWorldCpp中,添加使用cocos2dx 的九宫格图支持的功能时,遇到了一系列问题,想想也奇怪,在添加之前工程能够正常跑起来,代码也是参考TestCpp里拷过来的,在拷过来之前也能正常运行,纠结了大半天,一直没有找到最终解决办法,主要问题是两个:
1、知道九宫格是引入哪一个头文件,可是引入之后报错,找不到对应的文件;
2、解决了头文件找不到的问题之后,能编译了,又出现链接错误;
出现两个问的根本原因,还是在于对引擎项目架构不熟悉以及对Visual Studio特点不是很了解
整理了一下cocos2dx使用ext遇到这两个问题的解决步骤,也记录一下,方便后面可以直接给自己、给他人看看
首先要引入的头文件是cocos-ext.h,然后一般跟cocos还有一个单独的命名空间,同样引入使用,具体代码如下
#include "cocos-ext.h" USING_NS_CC_EXT;
这时如果是在HelloCpp工程上改的话,那么就会出现头文件找不到咯,当然平常我们搭建项目时,绝大部分都是通过拷贝HelloCpp工程,然后在它的基础上去改,这样可以减少很多项目配置的工作,然而helloCpp在跟cocos2dx完整项目TestCpp是有挺多区别的。
第一个问题,实际上就是项目的C++附加包含目录设置问题,也就是include的目录,使用ext对应的目录就没有,小伙伴用的九宫格就需要有$(ProjectDir)..\..\..\..\extensions,这个是需要我们手动去添加修改的,
在项目上右键,选择属性-->配置属性-->C/C++-->常规-->附加包含目录-->点击,有下拉选择编辑,添加我们需要的附加项,添加之后,如下图
第二个错误,实际是vs链接工程里,没有找到对应的链接库
报的错如下:
HelloWorldScene.obj : error LNK2019: 无法解析的外部符号 "public: static class cocos2d::extension::CCScale9Sprite * __cdecl cocos2d::extension::CCScale9Sprite::create(char const *)" (?create@CCScale9Sprite@extension@cocos2d@@SAPAV123@PBD@Z), 该符号在函数 "public: virtual bool __thiscall HelloWorld::init(void)" (?init@HelloWorld@@UAE_NXZ) 中被引用
对比TestCpp,我们也能发现实际上,缺的就是libExtensions.lib
添加上,即可以正常链接了。
步骤如下:在项目上右键,选择属性-->配置属性-->链接器-->输入-->附加依赖项,点击有下拉框,选择编辑
将libExtensions.lib加上就可以了,
最终如下图:
完成之后,项目就能正常运行了。
相关推荐
cocos2d-objc-ext, Cocos2D iphone的扩展和实用程序类 Cocos2D扩展cocos2d-iphone的扩展和实用程序类。cocos2d-iphone-ext,将包括不同的类和库,而不是suitet发布的官方 cocos2d-iphone 。 一些类最初可以能会被...
cocos2dx-ext是Cocos2d-x社区为解决原生C++与Java之间的交互问题,以及提高游戏性能而设计的扩展库。它包含了各种实用的模块,如物理引擎、粒子系统、UI组件、网络通信等,这些模块可以直接在NDK环境中运行,避免了...
在`BAWaterEffect.h`中,定义了`createArmature`函数,用于创建CCArmature对象,它是Cocos2dx扩展库(cocos2d-ext)中的骨骼动画组件。`onPlayEffect`函数则负责处理动画事件,如播放特定的运动事件。 在`...
在本文中,我们将深入探讨如何使用Cocos2d-x v2.2.1框架来创建一个涉及多点手势的动画Demo。Cocos2d-x是一个跨平台的2D游戏开发框架,广泛应用于移动设备和桌面平台,支持多种操作系统,如iOS、Android、Windows等。...
在介绍CCControlButton控件类之前,首先需要了解Cocos2d-x UI开发的整体环境。与Android和iOS等操作系统提供的控件框架类似,Cocos2d-x也提供了一套控件系统,这包括了用于显示文本的CCLabelTTF,以及用于显示图片的...
引擎-x 这是Cocos2d-x-4.0的另一个更根本的分支,在所有平台上使用OpenAL,单纹理多GPU纹理处理程序,C ++ 14/17等(更多信息,请参见“突出功能”)。目的摘要C ++ 14/17 专注于本机游戏开发人员(快速启动,易于...
文本输入框这个东西相信大家不论做什么游戏总会用到吧,今天我们就来看看这个东西如何使用。文本输入框同样属于扩展库中的内容,所以你...#include cocos2d.h //需要包含扩展库 #include cocos-ext.h using namespace c
- `cocos2d`模块包含了2D图形渲染、动作、动画、物理引擎等基础功能。 - `cocos2dx-ext`扩展模块提供了额外的工具集,如UI界面、音频管理、网络支持等。 - `cocos2dx-lua`或`cocos2dx-js`允许使用Lua或JavaScript...
本文实例为大家分享了cocos2dx实现橡皮...#include cocos2d.h #include cocos-ext.h USING_NS_CC_EXT; USING_NS_CC; class HelloWorld : public cocos2d::Layer { public: // there's no 'id' in cpp, so we recommend
开发环境:Cocos Creator 2.0.10 + VSCode 上传工具:微信开发者工具 测试手机:一加5 Github 地址: 1.2 游戏概况 这是一款2D塔防游戏,游戏设定在17,18世纪之交的大土耳其战争中,一座被奥斯曼军队层层包围的城堡...
Windouws 64 位Tomcat7.0.40 + 64位jdk1.7.0u21 绿色版 part1 纯绿色,官方下载,绝对可用~ 欢迎评论吐槽~ 文件 PATH 列表 │ LICENSE │ NOTICE │ RELEASE-NOTES │ RUNNING.txt │ ...│ bootstrap.jar ...