Cocos2d-X 精灵、动作效果

命名空间宏:
USING_NS_CC; 感觉事实上挺鸡肋的。

NS_CC_BEGIN。 == using namespace cocos2d{
NS_CC_END ; }

推断一个精灵被点击:
1、层要接收点击消息。2、回调函数中取得点击坐标。3、取得精灵用boudingBox().containsPoint函数推断。

(或使用 convertTouchToNodeSpaceAR 方法)


多Layer点击处理:
1、使用ccTouchesBegan()。

此函数返回true,表示中断消息链,本层接收消息;返回false则本层不接收消息。

2、重写个Layer。大体思路是仅仅有最底层的Layer接收消息,然后依据某种方式转发给各层。
详细可參考文章:http://www.myexception.cn/operating-system/1118630.html cocos2d-x 建立自己的层级窗体消息机制

精灵拉长:
setScale() 尽量不用这种变换。由于会虚。


精灵半透明:
setOpacity() 设置半透明0~255 。

精灵旋转:
setRotation() 默认是Z轴旋转。
setRotationX() X轴为对称轴旋转。
setRotationY() Y轴为对称中心。

精灵设定颜色:
setColor() 真没感觉有啥用。有ccBLUE之类的宏。

相反的动作:
reverse() 创建一个相反的动作。之前动作必须是By类型的。与坐标无关,仅仅与动作相关。

相反一系列动作:
将CCSquence创建好的一系列动作赋值给一个CCFiniteTimeAction 指针,然后再调用这个指针的reverse。


动作类型:
CCActionInterval:
类名 功能
CCMoveTo 移动
CCScaleTo 放大
CCSKewTo 斜交(距离无穷的旋转)
CCRotateTo 旋转
CCJumpTo 跳动
CCBezierTo 贝塞尔曲线移动
CCBlink 闪烁
CCFadeIn\Out 渐隐
CCTintTo 上色
CCToggleVisibility 切换可见
CCHide 隐藏
CCShow 显示
CCOrbitCamera 轨道相机?能实现落叶翻转的效果
CCCardinalSplineBy 路径移动
CCCatmullRomTo 也是路径移动,不知道有什么差别

一直反复动作:
CCRepeatForever::create() 在runaAtion中把对应的动作套上这个类型就可以。


反复一次动作:
CCRepeat::create() 在runaAtion中把对应的动作套上这个类型就可以。

同步:
CCSpawn 与CCSquence使用方法一样仅仅只是是同一时候运行。

尾随精灵移动:
CCFollow 执行Layer中的runAction。

第二个參数为Layer的大小。


多个精灵的动作序列:
CCTargetedAction 与精灵相关的动作,创建好之后。可直接放到CCSqence中。

动作叠加:
精灵调用多次runAction能够使不同的动作叠加起来。


动作的暂停与恢复:
动作暂停:
sharedDirector->getActionManager()->pauseAllRunningActions() 就可以暂停全部动作,返回值为一个CCSet* 要将其存入m_pPausedTargets中。使用时可參照:
CC_SAFE_RELEASE(m_pPausedTargets);
m_pPausedTargets = director->getActionManager()->pauseAllRunningActions();
CC_SAFE_RETAIN(m_pPausedTargets);
动作的恢复为:
sharedDirector->getActionManager()->resumeTargets(m_pPausedTargets)

posted @ 2017-08-19 21:17  zsychanpin  阅读(221)  评论(0编辑  收藏  举报