読者です 読者をやめる 読者になる 読者になる

夏までにiPhone アプリつくってみっか!

趣味でiPhone/Androidアプリを開発し、日々勉強した事を書いています。オープンワールド系レースゲームをUnityで開発中です。

【BeeCluster】CCTintByを使いダメージを受けたハチを腐らせる処理を実装

cocos2d BeeCluster

3週間ぶりのプログラミングなので、リハビリがてら昨日の記事で書いた改善案の一つ、自機がダメージを受けたら色を変える処理を実装してみました。
わずか数行の変更ですが、リリース済みの完璧な(?)プログラムに手を入れるのはなぜか気が重いですね。これも3週間のブランクのせいでしょうか。

こんな処理になりました。

        // ダメージを受けた処理。当たり判定を止め、点滅させる
        _blinking = YES;
        [[SimpleAudioEngine sharedEngine] playEffect:@"hit.caf"];
        id blink = [CCBlink actionWithDuration:0.5 blinks:5];
        // ハチの色を赤黒く変化させる
        GLshort tintValue = sender.attackPoint;
        id tint = [CCTintBy actionWithDuration:0.5 red:-tintValue*2 green:-tintValue*6 blue:-tintValue*8];
        id spawn = [CCSpawn actions:blink, tint, nil];
        id block = [CCCallBlock actionWithBlock:^{
            _blinking = NO; //点滅中フラグをクリア
        }];
        id sequence = [CCSequence actions:spawn, block, nil];
        [self runAction:sequence];

ダメージを受けてハチを点滅させる部分にCCTintByで色を変化させる処理をいれ、CCSpawnで同時にアクションさせています。
sender.attackPointには衝突相手の攻撃力が入っています。
それに適当な数を掛けて、赤黒くなるようスプライトのRGBの各成分を減らします。

実行結果です。
f:id:takujidev:20130724210123p:plain:w480
一番奇麗な色がノーダメージの状態、一回通常の攻撃を喰らうとカフェオレ色、もう一回喰らうと赤茶色になり、さらにもう一発で死亡します。このスクリーンキャプチャーだと非常に汚い色に見えますが、実機だともうちょっとマシです。

話は変わりますが、遥か昔セガのガールズガーデンというゲームを持っていました。女の子がひたすら花を摘んで行くゲームなのですが、時間が経つとだんだん花が枯れて行き、腐った花を摘むと女の子がダメージを受けるというようなゲームだったと思います。
ダメージを受けたハチが腐って行く様を見てそれを思い出しました。