Cocos2dx 3.1.1 将一个2.X的项目改成3.1版本
最近在论坛上下载到了一个Cocos2dx的单机跑酷例子,
也不知道是2.x版的,
花了一天时间试着把他改成3.1.1的试试,
现在已经可以顺利编译的,
但是还是有Heap Free的问题,调试了好几天,真心累了。
代码地址如下:
https://github.com/AdoBeatTheWorld/waytomobile/tree/master/projects/RunPiggy
问题列表如下:
1 error C2064: 项不会计算为接受 2 个参数的函数
这个是一个回调函数的问题,
#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)
#define CC_CALLBACK_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARGS__)
#define CC_CALLBACK_2(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, ##__VA_ARGS__)
#define CC_CALLBACK_3(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3, ##__VA_ARGS__)
CC_CALLBACK_{num}的意思是函数接收num数量的参数,__selerector__是回调函数的引用,__target__是引用此函数的对象
例如
CC_CALLBACK_1(GameMenu::menuAboutCallback,this)
这个this一定要是GameMenu的实例,
void GameMenu::menuAboutCallback(Ref* pSender)
GameMenu::menuAboutCallback一定要接收一个参数。
2 删除掉"HelloWorldScene.cpp"之后编译找不到的问题。
下载下来的项目没有HelloWorldScene.cpp,所以我把项目模版生成的此文件也删掉了, 以免影响项目尺寸。
但是编译的时候报了以上的错误,于是猜想是项目设置的问题。
在项目.vcxproj的ItemGroup节点中找到HelloWorldScene.cpp和HelloWorldScene.h删除掉就可以了。
3 CC_USE_MEM_LEAK_DETECTION
项目遇到了内存泄漏,各种debug,也无济于事,突然间在CCRef.h中看到这么个定义,就觉得跟内存泄漏的调试有莫大的关系,默认值为0,OK,改为1.
满以为设置了这个之后会对heap free问题有所进展,谁知道,还是无济于事,也许是我不大习惯vs的调试吧,看到搞C++服务端的朋友各种调试方式,真心羡慕啊。
Cocos2dx 3.1.1 将一个2.X的项目改成3.1版本的更多相关文章
- cocos2d-x升级到3.4与创建android项目
cocos2d-x升级到3.4与创建android项目 1 升级安装cocos2d-x windows7 64位机器, 到官网下载cocos2d-x-3.4: http://www.cocos2d-x ...
- 编程实现将一个N进制数转换成M进制数
问题:编程实现将一个N进制数转换成M进制数.(c/c++.Java.Javascript.C#.Python) 1.Python 手写算法版 def conversion_num(num, src, ...
- 将一个字符串中的空格替换成“%20”(C、Python)
将一个字符串中的空格替换成“%20” C语言: /* ----------------------------------- 通过函数调用,传地址来操作字符串 1.先计算出替换后的字符串的长度 2.从 ...
- 关于Cocos2d-x手机上运行游戏的时候屏幕横屏改竖屏的解决方案
cocos2d-x打包的时候默认是横屏,如果要改成竖屏,步骤如下: 1.打开项目 2.打开proj.android 3.编辑AndroidManifest.xml 4. 找到这一句android:sc ...
- cocos2d-x:将iOS项目编译成Andriod项目
来源:http://www.cnblogs.com/angzn/p/3328049.html 一.Android 环境搭建 1.安装Andriod-NDK(Native Development Kit ...
- cocos2d-x 学习笔录:将iOS项目编译成Andriod项目
一.Android 环境搭建 1.安装Andriod-NDK(Native Development Kit) 新建一个文件夹(eg:NDK),解压Android-NDK,将解压文件与压缩包放在一个目录 ...
- 如何将一个Maven项目转化成一个Eclipse项目
有时候我们需要将一个Maven项目导入到Eclipse中,直接作为一个普通的eclipse项目来导入是不行的,我们可以通过一个命令来实现:mvn eclipse:eclipse 1. 进入该Maven ...
- excel将一个工作表根据条件拆分成多个sheet工作表与合并多个sheet工作表
本例介绍在excel中如何将一个工作表根据条件拆分成多个工作表. 注意:很多朋友反映sheets(i).delete这句代码出错,要注意下面第一个步骤,要拆分的数据工作表名称为“数据源”, 而不是你新 ...
- Cocos2d-x v3.0 正式版 如何创建一个项目,TestCpp执行
欢迎增加 Cocos2d-x 交流群: 193411763 转载请注明原文出处:http://blog.csdn.net/u012945598/article/details/24456579 首先到 ...
随机推荐
- docker !veth
https://github.com/docker/docker/issues/11889
- 11g init DB software and database
oadmin->administrator2.169set ORACLE_HOME=C:\app\oracle\product\11.2.0\dbhome_1set ORACLE_SID=csm ...
- POJ 2182/暴力/BIT/线段树
POJ 2182 暴力 /* 题意: 一个带有权值[1,n]的序列,给出每个数的前面比该数小的数的个数,当然比一个数前面比第一个数小的个数是0,省略不写,求真正的序列.(拗口) 首先想到的是从前到后暴 ...
- php 四种基础算法 ---- 选择排序法
2. 选择排序法: 选择排序法思路: 每次选择一个相应的元素,然后将其放到指定的位置 代码: function select_sort($arr) {//实现思路 双重循环完成,外层控制轮数,当前的最 ...
- iOS 开发中的各种证书
公钥和私钥 转载自:http://www.samirchen.com/ios-certificates/ 先简单的介绍一下公钥和私钥.我们常见的加密算法有两类:对称加密算法(Symmetric Cry ...
- HDU 3038 How Many Answers Are Wrong (并查集)---并查集看不出来系列-1
Problem Description TT and FF are ... friends. Uh... very very good friends -________-bFF is a bad b ...
- 1--OC -- HelloWorld
一.点击Xcode,选择“Create a new Xcode project” 二.左边选择“OS X Application”,右边选择“Command Line Tool”,Next 三.输 ...
- “玲珑杯”ACM比赛 Round #1 题解
A:DESCRIPTION Eric has an array of integers a1,a2,...,ana1,a2,...,an. Every time, he can choose a co ...
- Java 多态,重载,重写
1.多态(polymorphism): 多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象, ...
- 转: 理解 JMeter 聚合报告(Aggregate Report)
Aggregate Report 是 JMeter 常用的一个 Listener,中文被翻译为“聚合报告”.今天再次有同行问到这个报告中的各项数据表示什么意思,顺便在这里公布一下,以备大家查阅. 如果 ...