zoukankan      html  css  js  c++  java
  • Cocos2d-x 学习笔记(10) ActionInstant

    1.概述

    ActionInstant的子类都是立即完成的动作,即一帧就完成了,不像ActionInterval的子类动作需要定义动作总时间。

    Action类的继承关系图:

    2.具体

    ActionInstant表现在屏幕的变换的逻辑在其update方法中。

     1     // create: _flipY被置true
     2     // update:ActionInstant::update(time)置_done为true,static_cast<Sprite*>(_target)->setFlippedY(_flipY) node默认_flippedY为false, 触发node的flipY()
     3     FlipY *myaction = FlipY::create(true);
     4     
     5     Show *myaction = Show::create();
     6     
     7     // create: 没什么
     8     // update: _target->setVisible(false);
     9     Hide *myaction = Hide::create();
    10     
    11     // create: 本类的_position置参数坐标
    12     // update: _target->setPosition(_position)
    13     Place *myaction = Place::create(Vec2(300,100));
    14     
    15     // create: 本类的_isNeedCleanUp置true
    16     // update: _target->removeFromParentAndCleanup(_isNeedCleanUp) => node:_parent->removeChild(this,cleanup) ,删除这个node
    17     RemoveSelf *myaction = RemoveSelf::create();
    18     
    19     // create: 没什么
    20     // update: _target->setVisible(!_target->isVisible())
    21     ToggleVisibility *myaction = ToggleVisibility::create();
    22     
    23     // create: 本类的_function置为参数
    24     // update: this->execute(), 执行_function
    25     std::function<void()> myCallFunc = [&](){titleFunc();};
    26     CallFunc *myaction = CallFunc::create(myCallFunc);
    27     
    28 void HelloWorld::titleFunc()
    29 {
    30     Label *title = Label::create();
    31     title->setString("HELLO EVERYONE!");
    32     title->setPosition(Vec2(200,200));
    33     this->addChild(title);
    34 }
  • 相关阅读:
    定位属性position,相对定位,绝对定位
    flex弹性盒模型?
    vue生命周期
    理解cookie、session、token
    前端兼容性问题
    JS 如何为一个元素怎么绑定多个事件?
    js数组的操作方法
    vue页面翻页勾选的记忆功能
    Vue中nextTick的正确使用
    Vue用router.push(传参)跳转页面,参数改变,跳转页面数据不刷新的解决办法
  • 原文地址:https://www.cnblogs.com/deepcho/p/cocos2dx-actioninstant.html
Copyright © 2011-2022 走看看