cocos2d-x v3.3 Hide and Show

来源:互联网 发布:初中英语软件哪个好 编辑:程序博客网 时间:2024/05/17 06:52

Hide和Show可以使精灵显示和隐藏。这些动作都是瞬间完成的,如果想要精灵实现逐渐显示或是逐渐隐藏的效果请使用FadeIn、FadeOut或FadeTo。

image          image

Hide:

1、成员变量:

private:
           CC_DISALLOW_COPY_AND_ASSIGN(Hide);

很简单,没有什么成员变量,就是禁用拷贝构造函数和拷贝赋值操作符。

2、成员方法:

(1) static Hide * create();

使用该函数创建一个Hide动作。

实例:

auto myHide = Hide::create();

mySprite->runAction(myHide);

实现源码:

Hide * Hide::create()
       {
           Hide *ret = new (std::nothrow) Hide();    // 创建Hide对象。

    if (ret) {
               ret->autorelease();    // 创建成功的情况下,在不使用时自动释放。
           }

    return ret;
       }

(2) virtual Hide* clone() const override;

使用该函数复制一个Hide动作。

实例:

auto myHideClone = myHide->clone();

mySprite->runAction(myHideClone);

实现源码:

Hide * Hide::clone() const
       {
           // no copy constructor
           auto a = new (std::nothrow) Hide();
           a->autorelease();
           return a;
       }

又自己重新写了一遍,为啥不用create()?

(3) virtual ActionInstant* reverse() const override;

使用该函数创建一个与Hide相反的动作,实际上创建了一个Show动作。

实例:

auto myHideReverse = myHide->reverse();

mySprite->runAction(myHideReverse);

实现源码:

ActionInstant *Hide::reverse() const
       {
           return Show::create();
       }

(4) virtual void update(float time) override;

该函数是引擎内部调用函数,用于更新精灵的状态。

实现源码:

void Hide::update(float time) {
           CC_UNUSED_PARAM(time);
           _target->setVisible(false);
       }

没有时间的概念,直接使用的是设置可见度的函数。

Show:

Show与Hide类似,均是与其相反的操作,在这里就不再赘述了。

0 0
原创粉丝点击