Moveto* moveto = Moveto::create(0.9f,Point(250,150));sprite->runAction(moveto);第一个参数:动作持续时间 第二个参数:要移动的目标位置
MoveBy* moveBy = MoveBy::create(0.9f,150));sprite->runAction(moveBy);第一个参数:动作持续时间 第二个参数:要移动的距离 2.Scaleto和ScaleBy
Scaleto是变成多少倍拉伸,ScaleBy是再次拉伸多少倍
Scaleto* scaleto = Scaleto::create(2.8f,0.4f,1.0f);sprite->runAction(Scaleto);第一个参数:持续时间 第二个参数:X方向上的拉伸值 第三个参数:Y方向上的拉伸值
ScaleBy* scaleBy = ScaleBy::create(2.8f,1.0f);sprite->runAction(scaleBy);3.Blink闪烁动画
Blink* blink = Blink::create(2.8f,3);sprite->runAction(blink);第一个参数:持续时间 第二个参数:闪烁次数 4.BezIErTo和BezIErBy
贝赛尔曲线运动
//创建贝塞尔曲线的配置ccBezIErConfig config;config.controlPoint_1 = Point(100,0);//波谷偏向值config.controlPoint_2 = Point(200,250);//波峰偏向值config.endposition = Point(300,50);//动作终点BezIErTo* bezIErTo= BezIErTo::create(2.8f,3);sprite->runAction(bezIErTo);BezIErBy是从当前位置进行偏移的 5.RepeatForever
//创建jumpBy 作用:创建一个跳的动作// // 参数1:跳到目标动作位子的所需时间// // 参数2:目标位置// // 参数3:跳的高度// // 参数4跳到目标位置的次数JumpBy* jumpBy= JumpBy::create(2.8f,Point(50,1),100,1);//创建永久重复动作jumpRepeatForever* rf = RepeatForever::create(jumpBy);//创建指定次数的jumpByRepeat r = Repeat::create(jumpBy,3);sprite->runAction(rf);6.Sequence与Spawn动作的集合
Blink* blink = Blink::create(2.8f,3);ScaleBy* scaleBy = ScaleBy::create(2.8f,1.0f);MoveBy* moveBy = MoveBy::create(0.9f,150));//创建组合动作Action* actions = Spawn::create(blink,scaleBy,moveBy,NulL);sprite->runAction(actions);所有动作一起执行了
将Spawn换成Sequence,动作依次执行
7.动作监听ScaleBy* scaleBy = ScaleBy::create(2.8f,1.0f);//回调对象也是一个动作,这个动作调用了一个函数auto myFunc = [&](){ sayHello();};CallFunc* call = CallFunc::create(myFunc);Action* actions = Sequence::create(scaleBy,call,NulL);sprite->runAction(actions);
8.lambda函数
auto myFunc = [&](){ sayHello();}[]符号,表示要开始一个lambda函数; ()符号,填写函数的参数 {}符号,函数的内容
[]符号中可以填写的内容
[]:不截取任何变量 [&]:截取外部作用域中的变量,并且作为引用在lambda函数中使用 [=]:截取外部作用域中的变量,并且复制一份到lambda函数中使用 [=,&hehe]:和[=]功能一样,但是对hehe变量是引用 [hehe]:和[=]功能一样,但只针对hehe变量,其他忽略 9.屏幕触摸事件①单点触摸
//创建auto Listener = EventListenertouchOneByOne::create();//触摸开始,移动,结束Listener->ontouchBegan = [](touch* touch,Event* event){ //取出当前点击的对象 auto target = static_cast<Sprite*>(event->getCurrentTarget()); return true;};Listener->ontouchmoved = [](touch* touch,Event* event){};Listener->ontouchendEd = [](touch* touch,Event* event){};//截取监听,不传给其他人Listener->setSwallowtouches(true);//注册触摸监听_eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);
②多点触摸
//创建auto Listener = EventListenertouchAllAtOnce::create();//触摸开始,移动,结束Listener->ontouchesBegan = [](const_std::vector<touch*>& touches,Event* event){};Listener->ontouchesMoved = [](const_std::vector<touch*>& touches,Event* event){};Listener->ontouchesEndEd = [](const_std::vector<touch*>& touches,Event* event){};//注册触摸监听_eventdispatcher->addEventListenerWithSceneGraPHPriority(Listener,this);总结
以上是内存溢出为你收集整理的【Cocos2d-x3.0学习笔记 05】嗯,更进一步学习全部内容,希望文章能够帮你解决【Cocos2d-x3.0学习笔记 05】嗯,更进一步学习所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)