特殊なアクション

CallFuncアクション

CCCallFuncアクションでは, アクションからメソッドを呼び出すことを可能にします. これは, シーケンス.アクションの最後で役立ちます.

例:

 
id actionTo = [CCMoveTo actionWithDuration: 2 position: ccp(s.width-40, s.height-40)];
id actionBy = [CCMoveBy actionWithDuration: 2 position: ccp(80,80)];
id actionCallFunc = [CCCallFunc actionWithTarget:self selector:@selector(doATask)];
 
id actionSequence = [CCSequence actions: actionTo, actionBy, actionCallFunc, nil];
 
-(void) doATask
{
   //some code
}
 

CallFuncNアクションとCallFuncNDアクション

CCCallFuncアクションにはさらに2つのバリエーションがあります. CCCallFuncNアクションとCCCallFuncNDがあります.

CCCallFuncNアクションは引数としてノードを取得し, CCCallFuncNDアクションは, ノードといくつかのデータへのポインタを取得します.

例:

 
id actionCallFuncN = [CCCallFuncN actionWithTarget:self selector:@selector(doATaskN:)];
id actionCallFuncND = [CCCallFuncND actionWithTarget:self selector:@selector(doATaskND:data:) data:pointerToSomeData];
 
- (void) doATaskN: (id)node
{
   //some code
}
 
- (void) doATaskND: (id)node data:(void*)d
{
//some code
}
 

CallBlockアクションとCallBlockNアクション

例:

 
// BCAは"Block Copy Autorelease"を意味するcocos2dマクロ
 
// CCCallBlock (引数なし)
id blockAction = [CCCallBlock actionWithBlock:BCA(^{
			[label setString:@"Called Block!"];
		})];
 
// CCCallBlockN (引数としてノードを渡す)
void (^block)(CCNode*) =  BCA(^(CCNode *n) {
		// some code
		CCLOG(@"called block for %@", n);
});
id blockAction2 = [CCCallBlockN actionWithBlock:block];
 

CCFollow

"カメラ"をシミュレートします. この時フォローされたノードがカメラの中心になります.

例:

 
// スプライトの作成
id sprite = [CCSprite xxxx];
 
[self addChild:sprite];
 
[self runAction: [CCFollow actionWithTarget:sprite worldBoundary:CGRectMake(0, 0, (winSize.width*2)-100, winSize.height)]];
 

CCPropertyAction

Objective-Cクラスの任意のプロパティを変更させる"一般的な"アクションです.

例:

 
// "rotation"プロパティを2秒間で0から-270に変更し, リバースアクションで実行
	id rot = [CCPropertyAction actionWithDuration:2 key:@"rotation" from:0 to:-270];
	id rot_back = [rot reverse];
	id rot_seq = [CCSequence actions:rot, rot_back, nil];
 

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-24 (日) 17:14:27 (2526d)