ここは森のゲーム開発室・・・
新作アプリをマ夏にリリースとか言って、8月中旬くらいかなーと思ってたら、7月上旬から猛暑になってしまい、公約違反が囁かれる・・・
(激烈な猛暑の中、デスマーチは続く)
OL「森クマ!前に指摘したバグが残ったままじゃない!」
森クマ「えぇっこの完璧なコーディングにバグがあると、そう申すクマ!?そう申すクマ!!??」
OL「ほら!あんた(プレイヤーキャラ)や敵キャラが回転して攻撃するときに、HPゲージやパーティクルまで一緒に回ってる!!」
・マジックまッシュルーム
— SleepingMuseum@ふりふら (@sleepmuse) 2017年4月25日
回転攻撃に加え、怪しい粉を振りまく森の可愛いきのこクマ。
迂闊に攻撃すると毒状態を付与されてしまうこのきのこヤバイきのこクマ。#クマVSマから始まる生物図鑑 pic.twitter.com/eY3xL97qPz
(キャラの回転に合わせて一緒に回転するHPゲージ。もはやライトサーベルである)
森クマ「ぐぅっ・・・良いじゃないですか、回転していることがより鮮明にわかって。」
OL「直せ!!ただでさえごちゃごちゃする戦闘画面なんだから!!」
森クマ「ぎぃー!!」
・
・
・
夜(25℃超え)
森クマ「ぐぎぎぎ・・・だめだぁ、どうしてもHPゲージが一緒に回転してしまうクマ」
戦闘画面におけるキャラ表示の仕組みは、ベースとなる透明のSpriteに、キャラ画像のSpriteやステータス情報を表示するSpriteを子供として追加しているクマ。
(これが良いやりかたなのかは謎)
ベースのSpriteをActionで動かすと、子SpriteのHPゲージとかも追随して動いてくれる。 しかし、「回転しながら移動して攻撃」を実現しようとすると、HPゲージも一緒に回ってしまうのだ。
baseSprite->addChild(charaSprite);
baseSprite->addChild(statusSprite);
baseSprite->runAction(Spawn::create(
MoveBy::create(0.5, Vec2(0, 500)), // 移動しつつ
RotateBy::create(0.5, 360*3), // 回転だー!
NULL)
);
HPゲージは、「座標の移動」には追随してほしいけど、「回転」には追随してほしくない・・・
MoveActionはベースSpriteに、RotateActionはステータスSpriteにだけ効かせるように、それぞれActionを設定すれば良いのか・・・しかし実際には、Sequenceを利用して、「回転移動→垂直ジャンプ(回転しない)→元の位置に回転して移動・・・」みたいに複数のアクションを順次実行したいクマ・・・その場合、SpriteごとにActionを分離して動作を無理やり同期させるのは難しすぎる・・・
他の対策として考えられるのは、HPゲージを親ノードに追加せずに、毎フレーム座標を書き換えながら追随させるとか・・・しかし今からそんなふうに作り変えるのは面倒クマ・・・もう知らん・・・
?「げひひ・・・お困りのようだな」
そ、その声は・・・
ビスクアット先生!!
(ビスクアット先生は、森の開発室のPGリーダークマ!少女さんの絵に囚われて、永遠のデスマーチを強いられ、厳しいソースレビューを続けているうちにプログラマたちからの反感を買い、心を壊してしまったクマ!)
森クマ「結構ですクマ!!お帰りください!!」
ビスクアット「ぐへへへ・・・まぁそう言うな。少女様から早くおまえのタスクを終わらせてこっちの開発チームに連れてこいって言われてんだ・・・」
森クマ「えぇっ・・・いやクマ・・・」
「今日紹介する関数はTargetedActionだ!これを利用すれば、親ノードの一連の動作を定義したSequenceActionの中に、別のNode(子ノードも可)を個別に動かすActionを含めることもできるんだぜ・・・最高だろう」
森クマ「えぇっ!?子ノードを個別に!?」
baseSprite->addChild(charaSprite);
baseSprite->addChild(statusSprite);
baseSprite->runAction(Spawn::create(
MoveBy::create(0.5, Vec2(0, 500)),
TargetedAction::create(charaSprite, RotateBy::create(0.5, 360*3)), // キャラの画像だけ回転させる
NULL)
);
やったぁ・・・!!!ついにクマとマリモがどんなに転がっても
— SleepingMuseum@ふりふら (@sleepmuse) 2017年7月29日
HPゲージが一緒に転がらなくなったクマ・・!!
これがTargetedActionの力・・・!!#クマVSマから始まる生物図鑑 pic.twitter.com/YJa4fbXEMF
森クマ「できたー!!!!ありがとうございますビスクアット先生!お帰りはこちらですクマ!!」
ビスクアット「それにしても汚いコードだな・・・どれ、俺様が少しレビューしてやろう・・・」
森クマ「あぁーっ!!!」
Android/iOS合わせて予約500人突破!あと少しで伝説のあのスタンプが解禁クマ!
(これ以上解禁しちゃうと序盤のゲームバランスが死ぬクマ)
(はやく絵の中に帰っておくれクマ・・・)