Cocos2d-x3.2 Grid3D网格动作


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的网格看起来会觉得更舒服。

时间: 2024-10-11 23:37:14

Cocos2d-x3.2 Grid3D网格动作的相关文章

Cocos2d-x Lua中网格动作

GridAction它有两个主要的子类Grid3DAction和TiledGrid3DAction,TiledGrid3DAction系列的子类中会有瓦片效果,如下图所示是Waves3D特效(Grid3DAction子类),如后图所示是WavesTiles3D特效(TiledGrid3DAction子类),比较这两个效果我们会看到瓦片效果的特别之处是界面被分割成多个方格. Waves3D特效  WavesTiles3D特效 网格动作都是采用3D效果给用户的体验是非常震撼和绚丽,但是也给内存和CP

cocos2d x3 6移植安卓-cocos2d-x3.6移植安卓时出现图片中错误如何解决?

问题描述 cocos2d-x3.6移植安卓时出现图片中错误如何解决? 解决方案 这是安卓的版本问题啊.你NDK设置编译的andorid17..但是androidMainfest.xml里设置的是最少 9,改下.把9改成17看看 解决方案二: 这是安卓的版本问题啊.你NDK设置编译的andorid17..但是androidMainfest.xml里设置的是最少 9,改下.把9改成17看看

cocos2d x3 0bate相关-Cocos2d-x3.0bate版,关于粒子特效

问题描述 Cocos2d-x3.0bate版,关于粒子特效 用粒子编辑器生成个.plist文件,如何在代码中加载,以及控制其开启和关闭,求大神指点

Cocosd2d实例教程(五) Cocos2d添加虚拟摇杆控制器

1.介绍 cocos2d为我们提供了好用的摇杆控制器,主要是对ZJoystick.h和ZJoystick.m的添加,实现了如下图的功能.通过摇杆可以控制图中精灵的移动.(但是还有一个技术性问题亟待解决,就是精灵移动后会有一个重影留在初始位置) 2.摇杆的实现 1) 将资源中的ZJoystick文件夹加到工程中(页面下方提供下载地址), 精灵的添加以及移动前面已经讲了,不知道的同学可以看教程四.工程名字为ControlWalking 2)修改HelloWorldLayer.h文件.加入一些需要的节

Cocosd2d实例教程(三) Cocos2d瓦片地图的导入

上一节讲了如何使用Tiled制作瓦片地图,下面讲一下如何将地图导入游戏中. 第一步:将生成的文件导入resource中,如图,分别为地图和图片集 第二步:在HelloWorldLayer.h中修改代码,有一定基础的人还是比较好理解的. #import <GameKit/GameKit.h> // When you import this file, you import all the cocos2d classes #import "cocos2d.h" // Hello

xcode-cocos2D中禁用触屏动作

问题描述 cocos2D中禁用触屏动作 有没有方法在cocos2D中完全禁止触屏动作? 比如在下载文件时用户不能进行任何按钮操作. 谢谢 解决方案 忽略所有用户交互: [[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 恢复: [[UIApplication sharedApplication] endIgnoringInteractionEvents]; 解决方案二: 手动删除对菜单和图层的触摸 //Cocos

《Cocos2d-x实战 C++卷》上线了-源码-样章-感谢大家的支持

<Cocos2d-x实战 C++卷>上线了 感谢大家一直以来的支持!   全面介绍Cocos开发技巧,采用Cocos2d-x3.2版本,并且详细介绍跨平台移植已经多平台发布细节. · 各大商店均开始销售: 京东:http://item.jd.com/11584534.html 亚马逊:http://www.amazon.cn/Cocos2d-x%E5%AE%9E%E6%88%98-C-%E5%8D%B7-%E5%85%B3%E4%B8%9C%E5%8D%87/dp/B00PTYWTLU 当当:

Cocos2d-x开发实例介绍特效演示

下面我们通过一个实例介绍几个特效的使用这个实例下图所示下图是一个操作菜单场景选择菜单可以进入到下图动作场景在下图动作场景中点击Go按钮可以执行我们选择的特性动作点击Back按钮可以返回到菜单场景. 下面我们再看看具体的程序代码首先看一下看HelloWorldScene.h文件它的代码如下 #ifndef __HELLOWORLD_SCENE_H__ #define __HELLOWORLD_SCENE_H__ #include "cocos2d.h" #include "My

《Cocos2d-x实战 Lua卷》上线了

感谢大家一直以来的支持!各大商店均开始销售:京东:http://item.jd.com/11659697.html当当:http://product.dangdang.com/23659810.html<Cocos2d-x实战 Lua卷>源码及样章下载地址:源码下载地址: http://51work6.com/forum.php?mod=viewthread&tid=1198&extra=page%3D1样章下载地址:http://pan.baidu.com/s/1i3fNS&