zoukankan      html  css  js  c++  java
  • cocos代码研究(7)即时动作子类学习笔记

    理论部分

    即时动作是会立即被执行的动作。他们没有持续时间动作(ActionInterval)的持续时间属性。
    继承自 FiniteTimeAction。被 CallFunc, FlipX, FlipY, Hide, Place, RemoveSelf, ReuseGrid, Show, StopGrid , 以及 ToggleVisibility 继承。

    • FlipX,FlipX可以立即水平翻转一个精灵。
    • FlipY,FlipY可以立即垂直翻转一个精灵。
    • Hide,隐藏动作用来立即隐藏一个节点。
    • Show,显示动作用来立即显示一个节点
    • Place,Place动作可以将节点放置在特定位置。
    • RemoveSelf,RemoveSelf动作用来删除执行动作的节点。
    • ReuseGrid,ReuseGrid重新使用网格动作。
    • ReuseGrid,StopGrid结束当前网格动作,将其移除。
    • ToggleVisibility,ToggleVisibility动作用来切换一个节点的可见性。
    • CallFunc调用一个回调函数。

    代码部分

    CallFunc类API

    static CallFunc* create (const std::function< void()> & func) //func 需要被执行的回调函数。
    用一个回调函数创建CallFunc动作,回调函数的类型是std::function<void()>。 这是创建回调函数的首选方法。 这个API绑定在js或lua中,输入参数会被改变。 lua: local create(local funcID)。

    static CallFunc* create (Ref * target, SEL_CallFunc selector)
    用下面的函数类型创建CallFunc动作 typedef void (Ref::*SEL_CallFunc)()。

    virtual void execute ()
    执行回调。

    Ref * getTargetCallback ()
    获取回调函数的执行主体。

    void setTargetCallback (Ref *sel)
    设置回调函数的执行主体。

    CallFuncN类

    CallFuncN类继承自CallFunc,使用节点作为第一个参数调用回调函数的CallFuncN动作,N代表节点。

    static CallFuncN * create (const std::function< void(Node *)> &func)
    用一个回调函数创建CallFunc动作,回调函数的类型是std::function<void()>。 这是创建回调的首选方法。

    实例:

    CallFuncN::create(CC_CALLBACK_1(CallFuncNTest1::onCallBackFunc, this))

    static CallFuncN * create (Ref *target, SEL_CallFuncN selector)
    用下面的方法创建CallFuncN动作。 typedef void (Ref::SEL_CallFuncN)(Node)。

    实例:

    auto action = CallFuncN::create(this, SEL_CallFuncN(CallFuncNTest::onCallBackFunc))

    FlipX类API
    static FlipX* create(bool x) //x 如果为true则水平翻转精灵,值为false时则恢复精灵原始状态。

    实例:

    auto action = FlipX::create(true);

    FlipY类API
    static FlipY * create(bool y) //y 如果为true则垂直翻转精灵,值为false时则恢复精灵原始状态。

    实例:

    auto action = FlipY::create(true)

    Hide类API
    static Hide* create()

    实例:

    auto hide = Hide::create();

    Show类API
    static Show* create()

    实例:

    auto show = Show::create();

    Place类API
    static Place * create (const Vec2 &pos) //pos 位置坐标

    实例:

    auto place = Place::create(Vec2(60,60));

    ToggleVisibility类API
    static ToggleVisibility* create() //
    实例:

    auto move1 = MoveBy::create(1, Vec2(250,0));
    auto move2 = MoveBy::create(1, Vec2(0,50));
    auto tog1 = ToggleVisibility::create();
    auto tog2 = ToggleVisibility::create();
    auto seq = Sequence::create( move1, tog1, move2, tog2, move1->reverse(), nullptr);
    auto action = Repeat::create(Sequence::create( seq, seq->reverse(), nullptr), 3);

    RemoveSelf类API

    static RemoveSelf * create (bool isNeedCleanUp=true) //isNeedCleanUp 是否需要清理,默认值是true。

    实例:

        auto action = Sequence::create(
            MoveBy::create( 2, Vec2(240,0)),
            RotateBy::create( 2,  540),
            ScaleTo::create(1,0.1f),
            RemoveSelf::create(),
            nullptr);
    
        _grossini->runAction(action);
  • 相关阅读:
    Windows搭建SkyWalking8.3环境进行JAVA应用性能监控及入门示例(使用Mysql持久化)
    使用JMeter进行压力测试
    IDEA2020.1使用LeetCode插件运行并调试本地样例
    centos7使用Minikube“快速搭建“出Kubernetes本地实验环境(踩坑集锦及解决方案)
    事务的隔离级别与所带来的问题
    深入理解HashMap第一篇
    LoadRunner 与浏览器兼容性
    互联网产品接入支付功能如何测试?
    基于AMF协议的Flex应用程序的性能测试
    centos+mono+nginx+jexus 搭建linux下c#运行环境测试
  • 原文地址:https://www.cnblogs.com/damowang/p/4856110.html
Copyright © 2011-2022 走看看