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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//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);
};

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//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的网格看起来会觉得更舒服。

转载地址:http://idqta.baihongyu.com/

你可能感兴趣的文章
高德开放平台开放源代码 鼓励开发者创新
查看>>
《高并发Oracle数据库系统的架构与设计》一2.5 索引维护
查看>>
Firefox 是 Pwn2own 2014 上攻陷次数最多的浏览器
查看>>
阿里感悟(十八)- 应届生Review
查看>>
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>