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

关于Cocos2d-x的一些认识(5)

发布时间:2020-12-14 20:21:55 所属栏目:百科 来源:网络整理
导读:接上篇: 1. 不要头文件里声明了成员变量int a,却在cpp里初始化时加上了auto或者int a=...来初始化啊,否则这个a只是局部变量而不是成员a啊,直接a=...来初始化。 2.把一个指针指赋值给另一个指针,那么两者所指的是同一块地址,所以对两者操作是等同的!但

接上篇:

1.不要头文件里声明了成员变量int a,却在cpp里初始化时加上了auto或者int a=...来初始化啊,否则这个a只是局部变量而不是成员a啊,直接a=...来初始化。

2.把一个指针指赋值给另一个指针,那么两者所指的是同一块地址,所以对两者操作是等同的!但这两个指针自身的地址是不同的,所以log出来会不同

3.同一时间不能让两个精灵执行同一个动作,同样的,也不能同一时间把一个刚体属性传给两个精灵,所以只能创建两个动作和刚体。

4._Eventdispatcher->addeventlistenerwithscenwithscenegraphpriority(listener,node1)这句话只是注册了触摸事件而不具备绑定该事件给node1节点的能力,这里的node1作用是当node1被释放时,该监听事件也会被移除,所以一般改节点设置为this,即这一层,当然有时一个碰撞监听事件也可以随着炸弹爆炸消失而消失,那么就把绑定的节点设置为炸弹对象.
同样的,通过 _Eventdispatcher 调用的pauseeventfortarget(target,bool)停止的是绑定的target对象的所有监听,比如写this,则this绑定的所有监听均被暂停了,但是this子类对象的没有被暂停!比如上面的炸弹如果绑定为炸弹本身,则它的监听未被暂停,同样像按钮什么的也未被停止监听。要想同时停止所包含节点的所有监听,把后面的bool设置为true就行了,它会遍历子类节点暂停所有监听,当然resume时也要后面设置为true.

5.假装移除节点的技巧,把透明度设为0,想用的时候再把透明度设为255。

6.Director的pause暂停以后除了按钮等子类控件回调以外后面的代码就都不执行了,而this->pause()之后还能执行你想要的,它们的原理不同,前者通过限制cpu的fps来形成暂停效果,后者则通过pauseallactions,listener等,当然没有前面来的绝对。

7.拖尾效果实现,如果直接addchild为主角的子节点,虽然能拖尾但是会把主角挡住一部分,所以应该把拖尾效果设为this的子节点,添加在主角之前,这样初始状态由于主角后添加所以能够挡住粒子,再利用update将粒子设置为主角坐标,又由于粒子生命周期所以不会立刻消失,即主角移动的路径上会有即将消失的粒子,实现了粒拖尾效果

8.Paly的和preload的不同(比如prwloadeffecet a,后面却playbackgroundmusic a)也回导致不播放

9.一定要先引入"cocos2d.h"头文件,不然会报错”找不到<jni.h> “

10.芒果平台广告:每次showbanner之前先hidebanner,就不会发生隔一个场景才showbanner的情况了 重新开始游戏按钮里,则要在按钮一开始写一次hide,在replacescene后面再写一次hide.才行

(编辑:李大同)

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

    推荐文章
      热点阅读