スプライトを移動させたい場合はアクションをつくる
- アクションのクラスはだいたい、目標座標まで移動するCCXxxToと、移動量を指定するCCXxxByの2種類ある
- 作ったアクションと反対の動きをさせたい場合は、reverseメソッドを使う
- 複数のアクションを順番に実行したい場合は、CCSequenceにまとめる
- アクションを繰り返したい場合は、CCRepeat/CCRepeatForeverを使う
- (CCNodeの)runActionメソッドで作ったアクションまたはシーケンスを設定する
回転移動をするアクション
CCSprite* rotateObstacle = [CCSprite spriteWithFile:RESOURCE_SPRITE_WALL]; rotateObstacle.position = ccp(winSize.width/2-50, 50); rotateObstacle.anchorPoint = ccp(0.5f, 0); rotateObstacle.scaleY = 2.0f; CCRotateBy* rotateAction = [CCRotateBy actionWithDuration:3 angle:360]; // 3秒で360度回転 [rotateObstacle runAction:rotateAction]; [self.baseLayer addChild:rotateObstacle z:kZBaseLayer tag:kTagWall];
上下移動を継続するアクション
CCSprite* moveObstacle = [CCSprite spriteWithFile:RESOURCE_SPRITE_WALL]; moveObstacle.position = ccp(winSize.width/2+50, 50); moveObstacle.scaleX = 3.0f; CCMoveBy* upAction = [CCMoveBy actionWithDuration:1 position:ccp(0, 50)]; // 1秒で右に50移動 CCActionInterval* downAction = [upAction reverse]; CCSequence* updownSequence = [CCSequence actions:upAction, downAction, nil]; CCRepeatForever* updownRepeat = [CCRepeatForever actionWithAction:updownSequence]; [moveObstacle runAction:updownRepeat]; [self.baseLayer addChild:moveObstacle z:kZBaseLayer tag:kTagWall];
参考サイト
- cocos2d for iPhone: CCNode Class Reference
- cocos2d for iPhone: CCAction Class Reference
- cocos2d for iPhone: CCSequence Class Reference
cocos2dでつくるiPhoneゲーム―自由で速い、ゲーム用フレームワークを使う! (I・O BOOKS)
posted with amazlet at 13.05.28
久保島 祐磨
工学社
売り上げランキング: 6,614
工学社
売り上げランキング: 6,614
cocos2d for iPhoneレッスンノート
posted with amazlet at 13.05.28
加藤寛人 佐藤伸吾
ラトルズ
売り上げランキング: 152,450
ラトルズ
売り上げランキング: 152,450
関連エントリーはありません