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

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

发布时间:2020-12-14 20:21:57 所属栏目:百科 来源:网络整理
导读:接上篇: 1. 飘字效果的三个动作用sequence来组合,因为放大和缩小的执行只在一瞬间,然后它会根据设置动作持续时间来播放,但是执行只是一瞬间,所以要是用spawn来组合播放的话只会一下子闪过。 2. create _func这个宏里 写了调用init函数,所以只要有creat

接上篇:

1.飘字效果的三个动作用sequence来组合,因为放大和缩小的执行只在一瞬间,然后它会根据设置动作持续时间来播放,但是执行只是一瞬间,所以要是用spawn来组合播放的话只会一下子闪过。

2.create _func这个宏里 写了调用init函数,所以只要有creat func的类就一定会有init(),并且创建对象,场景等这些需要初始化(写init())的都要写createfunc,创建的时候会自动调用init()。宏里面是一系列代码,所以创建类的时候这么多代码一起执行了,所以create func里的东西一定会被调用)

3.CocoStudio 2.x版本导均使用node*x=csloder::createnode()来创建,而且ui场景想要播放动画,一个节点只能播放同一个文件里创建的动画,并且必须用gotoframeandplay来设置是否循环播放和播放到第几帧,不然不播放

4.(cocos经常使用)参数类型是父类,用其子类作为参数传入没有错误。
因为:参数是父类,可以传递子类进去,但传进去的子类,会失去它特有的属性和函数,只留下父类里有的那些属性和函数,需要通过强制转换回子类型,才能重新获得特有的属性和函数。

5.事件派发机制:首先在需要接受消息的类里写addobserve(a,b,c,d);再在需要发送消息的类里写上postnotification(e,f);来发送,接受方会根据c(必须是string类型,不然要强制转换)来识别是不是该接受这个消息,再利用回调函数b来执行收到消息后该做的响应(全写在里面)。a一般写this表示本类接受。d可以传入传出数据(代替全局变量),f也可以做同样的事,但是必须是ref*类型,不然要自己进行强制转换,而且两个函数里不能同时写不一样的数据,不然会发生冲突导致什么都不显示。。。
传递数据的知识:

直接(int)pData强制转换就可以了
如果需要传递比较复杂的数据,比如又有字符串、又有数字、又有数组的,可以创建一个类,继承Ref,类里包含多种类型的属性
传递这个类对象,就能一次过传递很多数据了,比较方便。

6.cocostudio设置了交互以后,会吞没它下面的所有触摸事件。即表示该控件是否拦截输入,触摸等消息。使得只有这一层有交互属性(暂停跳出的界面就不用担心前一层了啦)

7.Map->getmapsize获取的是瓦片的数量而不是单块瓦片的大小,width是x方向的数量,height是y方向的

8.私有成员在头文件声明的时候没有初始化,记得在init里create或new,不然可能报错

9.?Moveto匀速技巧,算出触摸点和主角之间的距离,然后除以一个比较大的数来获得你满意的移动速度

10.头文件直接不能相互包含,不然会报错说"缺少;在*前面,缺少类型说明符,假定为int"

(编辑:李大同)

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

    推荐文章
      热点阅读