一下内容纯属自己在码的时候遇到的问题和自身的不足,在此用于记录
1.std::function<void()> //函数对象的容器,类似于模板,主要用法如下:点击打开链接
2.map<Key, Data, Compare, Alloc>每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值。点击打开链接
3.要想构建一个类节点或层,首先该类需要继承节点或者层,其次,每个该类的对象都要记得初始化,如:node::ini();或者Layer::ini()
4.removeFromParentAndCleanup(bool cleanup)
cleanup | true if all actions and callbacks on this node should be removed, false otherwise. removeFromParent removeFromParent |
[protected, virtual]
Initializes a sprite with an image filename.
This method will find filename from local file system, load its content to Texture2D, then use Texture2D to create a sprite.
After initialization, the rect used will be the size of the image. The offset will be (0,0).
6.CC_CALLBACK_0的this不是参数,而是执行这个回调函数的具体对象
然后,这个0也不能理解成多少个参数,而是指的占位符,比如某个回调函数有5个参数,如add(int,int,int,int,int),
然后用CC_CALLBACK_2占上前两个参数,给后面三个参数绑定,可以写成
CC_CALLBACK_2(LogicTest::add, this,15,15,15);
得到的func以后使用的时候直接给前两个参数赋值就ok了,如func(1, 2);点击打开链接7.cocos2dx内存管理宏点击打开链接
然后,这个0也不能理解成多少个参数,而是指的占位符,比如某个回调函数有5个参数,如add(int,int,int,int,int),
然后用CC_CALLBACK_2占上前两个参数,给后面三个参数绑定,可以写成
CC_CALLBACK_2(LogicTest::add, this,15,15,15);
得到的func以后使用的时候直接给前两个参数赋值就ok了,如func(1, 2);点击打开链接7.cocos2dx内存管理宏点击打开链接
8.enum枚举类型
点击打开链接
9.srand((unsigned)time(0))初始化随机种子,使得每次随机数获得不一样
rand()%5 随机取0,1,2,3,4,随机数
10.广度优先搜索算法
11.vector.begin()
指向vector起始位置迭代器
使用(*迭代器名)访问容器内元素,可进行++或--操作:
点击打开链接
12.CREATE_FUNC()
参数类似于Layer
13.延时动作和常见的46种动作:
点击打开链接
14.
非静态成员引用必须与特定对象相对
15.c++ lambda表达式使用时,对于需要使用外部的变量,对于非类对象数据变量需要具体指出(【】中加入相应参数),否则内部使用该值时会出现随机数
16.类对象new和不new有本质区别,new是针对指针动态堆中分配空间,不new则是针对对象栈中分配内存空间且效率更高
点击打开链接
17.color3b\color4b\color4f的区别
区别
18.对象指针负责的是调用,返回的类指针类型,依旧需要赋予新的对象指针
19.sprite更换图片用setTexture;button跟换图片用
loadTextures(还有loadTextureNormal,loadTexturePressed,loadTextureDisabled)
20.android不支持to_string()函数,可以使用ostringstream对象简化类型转化
点击打开链接
21.在初始化静态变量的时候,不要用userdata等存储数据的操作,尽量简单赋值,否则打包时会造成意想不到难以解决的错误
22.error: redefinition of 'class DataOfGame'--------重定义类名,很有可能多次包含一个文件
23.中文字转换问题
点击打开链接 注:.xml文件放在resources文件下;对于链接中使用的第二种方法,要记得包含头文件“sstream”