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 }

转载于:https://www.cnblogs.com/deepcho/p/cocos2dx-actioninstant.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值