トップページ »  » cocos2d Beginners' Guide Lesson2 まとめ

cocos2d Beginners' Guide Lesson2 まとめ

公式サイトのBeginners' Guide Lesson2について、まとめを書きました。

cocos2d公式  プログラミングガイドより
http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:index

■Creating the Sprites スプライトをつくる

ページにのつているUFOみたいなアイコン seeker.png
ダウンロードする
resorseフォルダーの中に入れたあと
プログラミングを開始する


#importのしたに

CCSprite *seeker1;
CCSprite *cocosGuy;

プログラムのいろんな場所で使うためメソッドの外に記述。
こうすると、どのメソッドからも利用できる


をいれる

-(id) init の
if( (self=[super init])) {
}
のなかに書かれているハローワールドの記述を消す
※消した状態でビルドするとハローワールドの文字が消える
消した後下記のものを記入する


// UFOみたいなアイコン seeker.pngを画面に表示する
seeker1 = [CCSprite spriteWithFile: @"seeker.png"];
seeker1.position = ccp( 50, 100 );
[self addChild:seeker1];

// もともと入っているアイコンを画面に表示する
cocosGuy = [CCSprite spriteWithFile: @"Icon.png"];
cocosGuy.position = ccp( 200, 300 );
[self addChild:cocosGuy];

すると Icon.pngとseeker.pngのアイコンが表示される。

■Making Things Move 動くアクションを作る

スプライトを動かすには2つの方法がある
1 アクションを使って動かす
2 ゲームの間 定期的にメソッドをよびだして動かす

initメソッドの

”[self addChild: cocosGuy];”
のあとに下記のものを入れて下さい


[self schedule:@selector(nextFrame:)];
//定期的にメソッド nextFrameを呼び出すコマンド いわゆるタイマー


つぎにdeallocメソッドの前に下記の nextFrame メソッドを入れる


- (void) nextFrame:(ccTime)dt {
seeker1.position = ccp( seeker1.position.x + 100*dt, seeker1.position.y );
if (seeker1.position.x > 480+32) {
seeker1.position = ccp( -32, seeker1.position.y );
}
}
//タイマーがくるたび、seeker.pngの位置をかえる。ここては左から右に動くアクションをする。


そうするとcocosGuyのアイコンが動き出す


■Responding to Touch タッチに反応させる

この解説ではタッチした場所にcocosguyが動くアニメを作る

#import "HelloWorldLayer.h"のあとに


#import "CCTouchDispatcher.h"


をいれる

initメソッドの後に


-(void) registerWithTouchDispatcher
{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
}

をいれる


initの中に
self.isTouchEnabled = YES;
をいれる

あとは2つのメソッドをいれる


- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
return YES;
}

- (void)ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint location = [self convertTouchToNodeSpace: touch];

[cocosGuy stopAllActions];
[cocosGuy runAction: [CCMoveTo actionWithDuration:1 position:location]];
}








by   at 14:03