温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
  • 首页 > 
  • 教程 > 
  • 开发技术 > 
  • 24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

发布时间:2020-10-13 01:04:08 来源:网络 阅读:579 作者:danielzzu 栏目:开发技术

重开发者的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/37596763


网格动作类似于动作特效,可以实现翻转、震荡、抖动、水的波纹等效果。

网格的基类:
GridBase* Grid 
获取或设置该节点的网格特效状态。网格应用于绘图平面上,可以实现水纹等 3D 特效;

基类定义:cocos2d/2d/CCGrid.h中;

基于这个基类有两个子类:
Grid3D
TiledGrid3D
这两个子类的共同点是:网格的每个子块都可以分离出来。

集成关系代码:
class CC_DLL GridBase : public Ref  class CC_DLL Grid3D : public GridBase  class CC_DLL TiledGrid3D : public GridBase

网格一般不直接应用,只需要明白Grid3D和TiledGrid3D ,了解网格动作是基于网格的即可;
运行网格动作的节点就像是被分成了大小相同的很多个矩形,通过这些矩形的动作来形成整体的网格动作,
16X12的网格运行的非常快,但是效果并不是很好;
32X24的网格看起来效果不错,但是有时间运行起来不会太快。

使用网格动作之前,需要取消OpenGL的深度检测:
调用      
  Director::getInstance()->setDepthTest(true);

网格动作和普通的动作的使用方式是一样的,可以通过runAction来运行动作,
具体的动作如下表所示:
24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作部分网格动作的运行效果如图所示:
24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作


24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

24、Cocos2dx 3.0游戏开发找小三之网格动作:高炫酷的3D动作

在使用网格动作时,网格动作结束之后,需要把网格清空:
void TextLayer::checkAnim(float dt) {     //auto s2 = getChildByTag(kTagBackground);     if ( _gridNodeTarget->getNumberOfRunningActions() == 0 && _gridNodeTarget->getGrid() != NULL)         _gridNodeTarget->setGrid(nullptr);; }

首先找到目标节点,然后检测目标节点是否还有动作,如果没有并且网格不为空,则调用setGrid函数并传入空参数(nullptr)
就可以清空网格;
当使用schedule一直检测调用该函数时,就可以实现清空无动作的节点网格。



向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI