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