1 Sprite * sp= Sprite::create("Icon.png"); 2 sp->setPosition(Vec2(150, 150)); 3 addChild(sp,0,922); 4
5 // Action动作 6
7 // MoveBy 创建一个移动的动作 参数1:移动到目标坐标所需的时间 参数2:目标坐标 支持reverse 可以获取其反向动作 8 // MoveTo 一样的
9 ActionInterval * moveBy = MoveBy::create(5,Vec2(300, 100)); 10 ActionInterval * actionmoveback= moveBy->reverse(); 11 sp->runAction(actionmoveback); 12
13 // ScaleTo 作用:创建一个缩放的动作 14 // 参数1:达到缩放大小所需的时间 15 // 参数2 :缩放的比例
16 ActionInterval * scaleto = ScaleTo ::create(2, 2); 17 sp->runAction(scaleto); 18
19 // ScaleBy 作用:创建一个缩放的动作 20 // 参数1:达到缩放大小的所需时间 参数2:缩放比例
21 ActionInterval * scaleby = ScaleBy::create(2, 2); 22 ActionInterval * actionbyback = scaleby->reverse(); 23 sp->runAction(actionbyback); 24
25 // RotateTo 26 // 作用创建一个旋转的动作 27 // 参数1:旋转的时间 参数2:旋转饿角度 0 - 360
28 ActionInterval * rotateto = RotateTo::create(2, 90); 29 sp->runAction(rotateto); 30
31 // SkewTo 32 // 作用创建一个倾斜的动作 33 // 参数1:倾斜到特定角度所需的时间 34 // 参数2:x轴的倾斜角度 35 // 参数3:y轴的倾斜角度
36 ActionInterval * skewto = SkewTo::create(2, 10, 10); 37 sp->runAction(skewto); 38
39 // JumpTo 40 // 作用:创建一个跳的动作 41 // 参数1:跳到目标动作位子的所需时间 42 // 参数2:目标位置 43 // 参数3:跳的高度 44 // 参数4跳到目标位置的次数
45 ActionInterval* jumpto = JumpTo ::create(2, Vec2(300, 200), 50, 4 ); 46 sp->runAction(jumpto); 47
48 // JumpBy 49 // 作用:创建一个跳的动作 50 // 参数1:跳到目标动作位子的所需时间 51 // 参数2:目标位置 52 // 参数3:跳的高度 53 // 参数4跳到目标位置的次数 54 // 这个支持方向动作reverse
55 ActionInterval * jumpby = JumpBy ::create(3, Vec2(300, 200), 50, 4); 56 ActionInterval * ac= jumpby->reverse(); 57 sp->runAction(ac); 58
59
60
61 // Bezier 62 // BezierConfig结构体
63 BezierConfig bezierCon; 64 bezierCon.controlPoint_1=Vec2(200, 150);//控制点1
65 bezierCon.controlPoint_2=Vec2(200, 160);//控制点2
66 bezierCon.endPosition =Vec2(340, 100);// 结束位置 67 //BezierTo 68 // 创建一个贝塞尔曲线运动的动作 69 // 参数1:贝塞尔曲线运动的时间 70 // 参数2 : BezierConfig结构体
71 ActionInterval * action = BezierTo::create(2, bezierCon); 72 ActionInterval * action1 = BezierBy::create(3, bezierCon);//支持反向
73 ActionInterval * action2 = action->reverse(); 74 sp->runAction(action1); 75
76
77 //FadeIn 78 //作用:创建一个渐变出现的动作 79 //参数是时间
80 ActionInterval * fadein = FadeIn::create(2); 81 sp->runAction(fadein); 82
83
84 // FadeOut 85 // 作用:创建一个渐变消失的动作 86 // 参数是时间
87 ActionInterval * fadeout = FadeOut::create(2); 88 sp->runAction(fadeout); 89
90
91 // TintTo 92 // 作用:创建一个色彩变化的消失动作 93 // 参数1:色彩变化的动作 94 // 参数2 :红色分量 95 // 参数3:蓝色分量
96 ActionInterval * tinto = TintTo ::create(3, 255, 255, 0); 97 sp->runAction(tinto); 98
99
100 // TintBy 101 // 作用:创建一个色彩变化的出现动作 102 // 参数1:色彩变化的动作 103 // 参数2 :红色分量 104 // 参数3:蓝色分量 但是家了reverse就是 反向的
105 ActionInterval * tintby = TintBy::create(3, 0, 255, 255); 106 ActionInterval * tintby1 = tintby->reverse(); 107 sp->runAction(tintby1); 108
109 // Blink 110 // 作用 :创建一额闪烁的动作 111 // 参数1:闪烁完成的时间 112 // 参数2:闪烁的次数
113
114 ActionInterval * blink = Blink ::create(3, 10); 115 sp->runAction(blink); 116
117
118
119 // DelayTime 120 // 创建一个延迟的动作 121 // 参数 延迟的时间
122 ActionInterval * delaytime = DelayTime::create(3); 123 sp->runAction(delaytime); 124
125 // OrbitCamera 126 // 作用:创建一个球面坐标轨迹进行旋转的动作 127 // 参数1 : 旋转轨迹的时间 128 // 参数2 :起始半径 129 // 参数3:半径差 130 // 参数4:起始z角 131 // 参数5:旋转z角的差 132 // 参数6:起始x角 133 // 参数7:旋转x角的差
134 ActionInterval * orbitcameraa = OrbitCamera::create(3, 10, 0, 45, 180, 90, 0); 135 sp->runAction(orbitcameraa); 136
137
138 // CardinalSpline 139 // 作用:创建数组 点的数组
140 PointArray * array = PointArray::create(20); 141 array->addControlPoint(Vec2(0,0)); 142 array->addControlPoint(Vec2(210,0)); 143 array->addControlPoint(Vec2(210,240)); 144 array->addControlPoint(Vec2(0,160)); 145 array->addControlPoint(Vec2(0,0)); 146 // CardinalSplineTo 147 // 作用:创建一个样条曲线轨迹的动作 148 // 参数1:完成轨迹所需的时间 149 // 参数2:控制点的坐标数组 150 // 拟合度 其值= 0 路径最柔和
151 ActionInterval * CardinalSplineTo=CardinalSplineTo::create(3, array, 0); 152 sp->runAction(CardinalSplineTo); 153
154
155 // CardinalSplineBy 156 // 作用:创建一个样条曲线轨迹的动作 157 // 参数1:完成轨迹所需的时间 158 // 参数2:控制点的坐标数组 159 // 拟合度 其值= 0 路径最柔和
160 ActionInterval * CardinalSplineBy = CardinalSplineBy::create(3, array, 0); 161 sp->runAction(CardinalSplineBy); 162
163 // CatmullRomTo CatmullRomBY 164 // 作用:创建一个样条插值轨迹 165 // 参数1:完成轨迹的时间 166 // 参数2:控制点的数组坐标
167 ActionInterval * catmullRomTo = CatmullRomTo::create(3, array); 168 sp->runAction(catmullRomTo); 169
170 // Follow 171 // 作用:创建一个跟随动作 172 // 参数1:跟随的目标对象 173 // 跟随范围,离开范围就不再跟随 174 //创建一个参照物spT
175 Sprite * spt = Sprite::create("Icon.png"); 176 spt->setPosition(Vec2(420,40)); 177 addChild(spt); 178 sp->runAction(MoveTo::create(3, Vec2(940,sp->getPositionY()))); 179
180 Follow * follow = Follow::create(sp,Rect(0, 0, 960, 320)); 181 this-> runAction(follow); 182
183 // EaseBounceIn 184 // 目标动作
185 ActionInterval* move = MoveTo::create(3, Vec2(300, sp->getPositionY())); 186 //// 让目标动作缓慢开始 187 //// 参数:目标动作
188 ActionInterval * EaseBounceIn = EaseBounceIn::create(move); 189 sp->runAction(EaseBounceIn); 190
191 // EaseBounceOut 192 // 作用:让目标动作赋予反弹力,且以目标动作结束位子开始反弹 193 // 参数目标动作
194 ActionInterval * easeBounceOut = EaseBounceOut ::create(move); 195 sp->runAction(easeBounceOut); 196
197 // EaseBounceInOut 198 // 作用:让目标动作赋予反弹力,且以目标动作起始与结束位子开始反弹
199 ActionInterval * easeBounceInOut= EaseBounceInOut::create(move); 200 sp->runAction(easeBounceInOut); 201
202 // EaseBackIn 203 // 作用:让目标动作赋予回力 , 且以目标动作起点位置作为回力点 204 // 参数:目标动作
205 ActionInterval * easeBackIn = EaseBackIn::create(move); 206 sp->runAction(easeBackIn); 207
208 // EaseBackOut 209 // 作用:让目标动作赋予回力 , 且以目标动作终点位置作为回力点 210 // 参数:目标动作
211 ActionInterval *easeBackOut = EaseBackOut::create(move); 212 sp->runAction(easeBackOut); 213
214 // EaseBackInOut 215 // 作用:让目标动作赋予回力 , 且以目标动作起点和终点位置作为回力点 216 // 参数:目标动作
217 ActionInterval * easeBackInOut = EaseBackInOut::create(move); 218 sp->runAction(easeBackInOut); 219
220 // EaseElasticIn 221 // 作用:让目标动作赋予弹性 ,且以目标动作起点位子赋予弹性 222 // 参数:目标动作
223 ActionInterval * easeElasticIn= EaseElasticIn::create(move); 224 sp->runAction(easeElasticIn); 225
226 // EaseElasticOut 227 // 作用:让目标动作赋予弹性 ,且以目标动作终点位子赋予弹性 228 // 参数:目标动作
229 ActionInterval *easeElasticOut = EaseElasticOut::create(move); 230 sp->runAction(easeElasticOut); 231
232 // EaseElasticInOut 233 // 作用:让目标动作赋予弹性 ,且以目标动作起点和终点位子赋予弹性 234 // 参数:目标动作
235 ActionInterval *easeElasticInOut = EaseElasticOut::create(move); 236 sp->runAction(easeElasticInOut); 237
238
239 // EaseExponentialIn 240 // 让目标动作缓慢开始 241 // 参数:目标动作
242 ActionInterval * easeExponentialIn= EaseExponentialIn::create(move); 243 sp->runAction(easeExponentialIn); 244
245 // EaseExponentialOut 246 // 让目标动作缓慢中止 247 // 参数:目标动作
248 ActionInterval * easeExponentialInt= EaseExponentialOut::create(move); 249 sp->runAction(easeExponentialInt); 250
251 // EaseExponentialInOut 252 // 让目标动作缓慢开始和中止 253 // 参数:目标动作
254 ActionInterval * easeExponentialInOut= EaseExponentialInOut::create(move); 255 sp->runAction(easeExponentialInOut); 256
257 // EaseRateAction 258 // 作用 : 让目标动作设置速率 259 // 参数1:目标动作 260 // 参数2:速率
261 ActionInterval * moveto = MoveTo::create(5, p(300,sp->getPositionY())); 262 ActionInterval * easeRateAction = EaseRateAction::create(move, 3); 263 sp->runAction(easeRateAction); 264
265 // EaseSineIn 266 // 作用:动作由慢到快 267 // 参数:目标动作
268 ActionInterval * easeSineIn = EaseSineIn::create(move); 269 sp->runAction(easeSineIn); 270
271 // EaseSineOut 272 // 作用:动作由快到慢 273 // 参数:目标动作
274 ActionInterval * easeSineOut = EaseSineOut::create(move); 275 sp->runAction(easeSineOut); 276
277 // EaseSineInOut 278 // 作用:动作由慢到快再快到慢 279 // 参数:目标动作
280 ActionInterval * easeSineInOut = EaseSineInOut::create(move); 281 sp->runAction(easeSineInOut); 282
283
284
285 // Speed 286 // 作用:让目标动作运行速度加倍 287 // 参数1:目标动作 288 // 参数2:倍速
289 ActionInterval * move = MoveTo::create(10, p(300,sp->getPositionY())); 290 Speed * speed = Speed::create(move, 100); 291 sp->runAction(speed); 292
293 // Spawn 294 // 作用:让多个动作同时执行 295 // 参数:目标动作的可变参数
296 ActionInterval * move1 = MoveTo::create(10, p(300,sp->getPositionY())); 297 ActionInterval * scale = ScaleTo::create(2, 3); 298 ActionInterval * rotate = RotateTo::create(4, 190); 299 FiniteTimeAction * spawn = Spawn::create(move1,scale,rotate,NULL); 300 sp->runAction(spawn); 301
302 // Sequence 303 // 作用:让多个动作按照前后顺序逐一执行 304 // 参数:目标动作的可变参数
305 ActionInterval * move2 = MoveTo::create(2, p(300, sp->getPositionY())); 306 ActionInterval * scalet = ScaleTo::create(2, 3); 307 FiniteTimeAction * seq= Sequence::create(move2,scalet,NULL); 308 sp->runAction(seq); 309
310
311 // 扩展如果要对目标动作全部进行方向运动,可以使用如下形式操作
312 FiniteTimeAction *seqe= Sequence::create(moveby,scaleby,...NULL); 313 FiniteTimeAction * reverseseq = Sequence::create(seqe,seq->reverse(),NULL) 314
315
316
317 //注意 Sequence中的所有动作都必须支持reverse函数,否则会出现异常
318 ActionInterval * move = MoveBy::create(2, p(300, sp->getPositionY())); 319 ActionInterval * scale = ScaleBy::create(2, 3); 320 FiniteTimeAction * seq= Sequence::create(move,scale,NULL); 321 FiniteTimeAction * reveseseq = Sequence::create(seq,seq->reverse(),NULL); 322 sp->runAction(reveseseq); 323
324
325
326
327 // Repeat 328 // 作用:对目标动作进行重复运动(目标动作可以是 Sequence , Spawn) 329 // 参数1:目标动作 330 // 参数2:重复次数
331 ActionInterval * move = MoveTo::create(2, p(300, sp->getPositionY())); 332 ActionInterval * move2 = MoveTo::create(2, p(100,100)); 333 FiniteTimeAction*seq = Sequence::create(move,move2,NULL); 334 FiniteTimeAction *repeat = Repeat::create(seq, 3); 335 sp->runAction(repeat); 336
337
338 // RepeatForever 339 // 作用:对目标动作进行永久性的重复运动(目标动作可以是 Sequence , Spawn) 340 // 参数:目标动作
341 ActionInterval * move = MoveTo::create(1, p(300, sp->getPositionY())); 342 ActionInterval * move1 = MoveTo::create(1, p(100,100)); 343 FiniteTimeAction* seq = Sequence::create(move,move1,NULL); 344 ActionInterval * repeatForever = RepeatForever::create(( ActionInterval* )seq); 345 sp->runAction(repeatForever); 346
347 // CallFunc 348 // 作用:创建一个回调动作(调用不带参数的回调方法); 349 // 参数1:目标动作 350 // 参数2:目标回调函数
351 ActionInterval * move = MoveTo::create(1, p(300, sp->getPositionY())); 352 CallFunc * funcall= CallFunc::create(this, callfunc_selector(HelloWorld::callbackC)); 353 FiniteTimeAction * seq = Sequence::create(move,funcall,NULL); 354 sp->runAction(seq); 355
356 // CallFuncN 357 // 作用:创建一个回调动作(调用 带一个参数的回调方法); 358 // 参数1:目标动作 359 // 参数2:目标回调函数
360 ActionInterval * move = MoveTo::create(1, p(300, sp->getPositionY())); 361 CallFuncN * funcall= CallFuncN::create(this, callfuncN_selector(HelloWorld::callbackN)); 362 FiniteTimeAction * seq = Sequence::create(move,funcall,NULL); 363 sp->runAction(seq); 364
365 // CallFuncND 366 // 作用:创建一个回调动作(调用 带两个参数的回调方法); 367 // 参数1:目标动作 368 // 参数2:目标回调函数
369 ActionInterval * move = MoveTo::create(1, p(300, sp->getPositionY())); 370 CallFuncND * funcall= CallFuncND::create(this, callfuncND_selector(HelloWorld::callbackND) ,(void*)0xbebabeba); 371 FiniteTimeAction * seq = Sequence::create(move,funcall,NULL); 372 sp->runAction(seq); 373
374