加载纹理 512 * 512 的纹理 + plist 大概是120ms
如果不要求是2次幂的话 100毫秒就足够了
rgb8888 和 4444 加载时间是一样的
std::map用 [ ] 的话
map的int 默认是0
string 默认是 ""
对象指针就是nullptr
map11[110]+=3; 也是可以的
c++拼接字符串效率比较(+=、append、stringstream、sprintf)
根据以上结果,如果是使用Linux系统并且是g++(gcc)编译器,大量拼接字符串的效率从高到低依次为:+=、append()、stringstream、sprintf()。
触摸的事件可以重复添加 所以添加前记得删除旧的!
schedule 在屏幕关闭的时候 不会继续计时
所以还是要用减去gettimer的方法
创建项目的时候 切记不能瞎起名 尤其是包名 必须是 xx.xxx.xxx 在 AndroidMainfest.xml 文件里。。
导入libcocos2dx库的时候一定要从菜单里点。。其他地方的不对!!
只有纯虚函数才可以自动调用子类的实现
EventCustomListener 用create 可以加回调
tableview的诡异问题
tableCellAtIndex(TableView *table, ssize_t idx)
{
TableViewCell * cell = table->dequeueCell();
这句话之前是在属性里直接得到tableview 没想到报错 必须用他提供的形参。。。。妈蛋!!
bool sortFun(const pair<int, int> &v1, const pair<int, int> &v2)
{
return v1.second > v2.second;
}
std::sort(dataVec.begin(), dataVec.end(), sortFun );
只要记住 sortFun 方法 只在cpp里写 就算全局函数了 不过记住 这个方法要写的sort的方法前面。。不然他看不到
TestA::TestA()
{
log("aaaaaaaaaaaa");
}
TestA::~TestA()
{
log("~aaaaaaaaaaaaaa");
}
TestB : public TestA
TesstB::TesstB()
{
log("bbbbbbbbbbbbbbbb");
}
TesstB::~TesstB()
{
log("~bbbbbbbbbbbbbbbbb");
}
aaaaaaaaaaaa
bbbbbbbbbbbbbbbb
~bbbbbbbbbbbbbbbbb
~aaaaaaaaaaaaaa
构造方法 析构方法 不用调父类的
他自己调
构造是 先父 后子
析构是 先子后父
自定义事件 一定要自己移除 2dx不给你移除~
点击是否在矩形内
bool CommonTools::testRect( Touch* touch , Node* node )
{
auto po = node->convertTouchToNodeSpace(touch);//这个po 是在图片左下角的 和锚点无关
Size size = node->getContentSize();
Rect rect(0,0,size.width,size.height);
return rect.containsPoint(po);
}
1.
int 转 float 或者 double 是可能变数字的 所以要注意
2.
schedule ...
他必须addchild进去才会开始计时 不然就不计
否则就
Scheduler* ss = Director::getInstance()->getScheduler();
ss->scheduleSelector(schedule_selector(GuestData::timeup), this, 0, 0, 2.0f, false);
3.
scheduleSelector 如果里面传的时间是0 那么可能会调用两次....
4.
define 和 enum 里的名字不能一样. 不然会报错
5.
官方的时间回调 如果游戏进入后台 就会停止,如果你用他倒计时60秒 然后每次减一秒 进入后台后就停了
所以不能这么做!
6.
注册触摸只能一遍!不然他真的会调两遍!即使是回调同一个函数。。坑爹啊!
7.
3.0 在处理touchbegan的时候不要移除监听~ 因为移除的话,就不会吞噬了。。妈蛋~~
也就是说无论你返回true还是false 都是不吞
8.
设置了父亲的颜色,但孩子的颜色不变,如何应对?
cascade 是 级联的意思