Cocos2d-X 精灵、动作效果
2017-08-19 21:17
513 查看
命名空间宏:
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:
一直反复动作:
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)
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)
相关文章推荐
- Cocos2d-X 精灵、动作效果
- Cocos2d-X 精灵、动作效果
- Cocos2d-X 精灵、动作效果
- cocos2d-x精灵的动作
- cocos2d的常用动作及效果总结之一: Basic actions(转)
- cocos2d-x--精灵反转效果--CCOrbitCamera
- cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- cocos2d-x学习笔记(五)仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- 学习COCOS2D-x 精灵动画 实现一个《热血传奇》开门效果
- cocos2d的常用动作及效果总结之一: Basic actions
- cocos2d-x 精灵添加描边效果
- cocos2d--仿真树叶飘落效果的实现(精灵旋转、翻转、钟摆运动等综合运用)
- cocos2d-x精灵加亮及变灰效果
- cocos2d-x 利用精灵的可见区域制作字幕滚动效果
- cocos2d-x 动作效果代码集锦
- cocos2d-x中,多个精灵执行同样的动作
- cocos2d的常用动作及效果总结之一: Basic actions
- cocos2d-android——给精灵添加动作
- cocos2d的常用动作及效果总结之二:Composition actions
- cocos2d(CCSprite 用贝塞尔做抛物线,足球精灵并且同时做旋转放大效果)