【Cocos2d-x3.0学习笔记 05】嗯,更进一步学习
发布时间:2020-12-14 19:14:59 所属栏目:百科 来源:网络整理
导读:1.MoveTo和MoveBy MoveTo* moveTo = MoveTo::create(0.9f,Point(250,150));sprite-runAction(moveTo); 第一个参数:动作持续时间 第二个参数:要移动的目标位置 MoveBy* moveBy = MoveBy::create(0.9f,150));sprite-runAction(moveBy); 第一个参数:动作持续
1.MoveTo和MoveByMoveTo* moveTo = MoveTo::create(0.9f,Point(250,150)); sprite->runAction(moveTo);
MoveBy* moveBy = MoveBy::create(0.9f,150)); sprite->runAction(moveBy);
2.ScaleTo和ScaleByScaleTo是变成多少倍拉伸,ScaleBy是再次拉伸多少倍 ScaleTo* scaleTo = ScaleTo::create(2.8f,0.4f,1.0f); sprite->runAction(ScaleTo);
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); //创建永久重复动作jump RepeatForever* rf = RepeatForever::create(jumpBy); //创建指定次数的jumpBy Repeat 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(); }
[]符号中可以填写的内容
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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |