博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cocos2d-x3.2 Grid3D网格动作
阅读量:7041 次
发布时间:2019-06-28

本文共 2318 字,大约阅读时间需要 7 分钟。

  hot3.png

//GameScene.h#include "cocos2d.h"class GameScene : public cocos2d::Layer{public:    static cocos2d::Scene* createScene();        virtual bool init();        void menuCallback(cocos2d::Ref* pSender);        CREATE_FUNC(GameScene);};

//GameScene.cpp#include "GameScene.h"USING_NS_CC;cocos2d::Scene* GameScene::createScene(){    auto scene = Scene::create();   //创建一个场景    auto layer = GameScene::create();   //创建一个图层    scene->addChild(layer);    return scene;}//初始化当前的图层bool GameScene::init(){    if(!Layer::init())      //初始化父类        return false;        //获取屏幕大小    auto visibleSize = Director::getInstance()->getVisibleSize();    auto size = Director::getInstance()->getWinSize();        //创建网格节点    auto nodegrid = NodeGrid::create();        auto sprite = Sprite::create("OnePiece_1.png");    sprite->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2));    nodegrid->addChild(sprite);     //这里注意是将精灵节点加到网格节点上    this->addChild(nodegrid);        Director::getInstance()->setDepthTest(false);   //使用网格之前需要取消OpenGL的深度测试    //    //翻页效果//    Director::getInstance()->setDepthTest(true);     //开启深度检测//    auto pageturn = PageTurn3D::create(2, Size(20, 18));//    nodegrid->runAction(pageturn);//    //    //震动效果//    auto shaky = Shaky3D::create(6, Size(2, 1), 5, false);//    nodegrid->runAction(shaky);//    //    //翻转效果//    auto flipX = FlipX3D::create(2);//    auto reFlipX = flipX->reverse();//    auto delay = DelayTime::create(2);      //延时2秒//    nodegrid->runAction(Sequence::create(flipX, delay, reFlipX, NULL));        //透镜效果    auto lens = Lens3D::create(5, Size(32, 24), Vec2(size.width/2, size.height/2), 300);  //参数依次为:持续时间、网格大小、中心坐标、半径    nodegrid->runAction(lens);    //    //液体效果//    auto liquid = Liquid::create(3, Size(16, 12), 4, 10);   //参数依次为:持续时间、网格大小、波纹数、振幅//    nodegrid->runAction(liquid);//    //    //波纹效果//    auto ripple = Ripple3D::create(5, Size(20, 16), Vec2(size.width/2, size.height/2), 300, 6, 50);//    nodegrid->runAction(ripple);//    //    //波浪效果//    auto wave = Waves3D::create(5, Size(25, 20), 6, 30);//    nodegrid->runAction(wave);        return true;}

备注:1、使用网格之前需要取消OpenGL的深度测试,深度其实就是该象素点在3d世界中距离摄象机的距离,深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值,深度测试决定了是否绘制较远的象素点(或较近的象素点),通常选用较近的,而较远优先能实现透视的果;

          2、32*24的网格看起来会觉得更舒服。

                                                                                                               --湖南科技大学--贾则栋

转载于:https://my.oschina.net/Jacedy/blog/301575

你可能感兴趣的文章
中间件
查看>>
数组键值 拆分 与合并
查看>>
8088 与 8086 CPU 以及 tips
查看>>
jQuery调用ajax获取json格式数据
查看>>
小工具xml生成记录
查看>>
用下饭小菜炒一道鲜美下酒菜——榄豉酱炒虾
查看>>
十一婚礼:美丽的邂逅 白色圣洁奢华婚典【奥帆婚礼顾问】
查看>>
春装之打造魅力潘多拉潮流饰品
查看>>
Github注册账户
查看>>
ExceptionLess新玩法 -- 审计日志
查看>>
Spring boot @Scheduled(cron = "* * * * * *") cron表达式详解
查看>>
每天一道算法题(1) ——不用乘除法求和1+2+…+n
查看>>
Math.abs
查看>>
[算法&数据结构]深度优先搜索(Depth First Search)
查看>>
HDU4055:Number String(DP)
查看>>
[Eclipse] Ivy 在eclipse里的配置
查看>>
团队第二日工作总结
查看>>
建视图跟查视图
查看>>
Xml解析过程中遇到“” 1 字节的 UTF-8 序列的字节 1 无效“”问题---idea与eclipse同适用...
查看>>
[Swift A] - A Swift Tour
查看>>