@neiraza

2匹の怪獣が寝た後にプログラマーしてる、最近はサイバーエージェントでゼミ長もしてる僕のネタ帳

iPhoneアプリ開発講座を受講する その6

[iPhone][cocos2d]

画像を表示する

CCSprite imageSprite_ = [CCSprite spriteWithFile:@"image0.png"];
[imageSprite_ setAnchorPoint:ccp(1, 0)];
imageSprite_.position = ccp(480, 0);
[self addChild:imageSprite_];

画像を動かしてみる

一定時間ごとに座標位置を適当に変えていくと、
画像が動いているようにみえる。

一定時間ごとに動かす
[self schedule:@selector(update)];
呼び出されるメソッド
-(void)update
{
    NSInteger x = imageSprite_.position.x - 1;
    NSInteger y = imageSprite_.position.y + 1;
    // 適当にクルクルまわす
    [imageSprite_ setRotation:x -20];
    // 適当に移動
    [imageSprite_ setPosition:ccp(x,y)];
    // 座標位置を原点に戻す基準
    if (x < 0 || y > 320)
    {
        [imageSprite_ setPosition:ccp(480, 0)];
        [imageSprite_ setRotation:0];
    }    
}

動いている画像をタップで停止➡再スタート

XXXXX.hにdelegateの宣言を書く

ついでと言ってはなんですがflagも一緒に。

// HelloWorldLayer
@interface HelloWorldLayer : CCLayer<CCTargetedTouchDelegate>
{
    BOOL isNotSchedule_;
}
XXXXX.m
-(id) init
{
    if( (self=[super init])) {
        isNotSchedule_ = NO;
        [[CCTouchDispatcher sharedDispatcher]addTargetedDelegate:self priority:0 swallowsTouches:YES];
        self.isTouchEnabled = YES;
    }
    return self;
}

-(BOOL) ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
    CGPoint location = [self convertTouchToNodeSpace:touch];    
    if(isNotSchedule_){
        isNotSchedule_ = NO;
        [self schedule:@selector(update)];
    }else{
        isNotSchedule_ = YES;
        [self unschedule:@selector(update)];
    }
    return YES;
}

次回の講座は来年になるんだけど、それまでに1本ゲームを制作することになってしまた。
作り終わるかなー。