【BeeCluster】CCTintByを使いダメージを受けたハチを腐らせる処理を実装
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の各成分を減らします。
実行結果です。
一番奇麗な色がノーダメージの状態、一回通常の攻撃を喰らうとカフェオレ色、もう一回喰らうと赤茶色になり、さらにもう一発で死亡します。このスクリーンキャプチャーだと非常に汚い色に見えますが、実機だともうちょっとマシです。
話は変わりますが、遥か昔セガのガールズガーデンというゲームを持っていました。女の子がひたすら花を摘んで行くゲームなのですが、時間が経つとだんだん花が枯れて行き、腐った花を摘むと女の子がダメージを受けるというようなゲームだったと思います。
ダメージを受けたハチが腐って行く様を見てそれを思い出しました。