【もぐら叩きゲーム】ゲージのようなエフェクトを作る②

画像1

ゲージを上下に微運動させて、エフェクトをアピールさせる。

上下運動はランダムな値をy軸に加えるか引くことで実現する。

今回は固定値10にたいして、0~5を加えて50%の確率でプラス、

マイナスにして計算している。

   int32 tremorRandom = Random(5);
   int32 tremor = RandomBool(0.5) ? 10 + tremorRandom : -(10 + tremorRandom);

x軸はすこし複雑で、lerpメソッドを利用して線形補完を行う。その際にx軸に次のようなぶれが発生するので、それを考慮して実装する。

画像2

   Vec2 whiteLeftBottomCornerVec = Vec2(1625 + (tremor / 5), 800 + tremor);
   Vec2 whiteRightBottomCornerVec = Vec2(1675 - (tremor / 5), 800 + tremor);
   
   easeOutStopwatch.start();
   double t = Min(easeOutStopwatch.sF(), 1.0);
   double easeOut = EaseOutCirc(t);
   
   Vec2 pos1 = whiteLeftBottomCornerVec.lerp(Vec2(1570 + (tremor / 5), 500 + tremor), easeOut);
   Vec2 pos2 = whiteRightBottomCornerVec.lerp(Vec2(1730 - (tremor / 5), 500 + tremor), easeOut);
   Triangle(pos1, Vec2(1650, 950), pos2).draw(ColorF(Palette::Blue, 0.5));

int32型のtremor変数を5で割って、それを加えたり引いたりすることで線形補完による逆三角形のx軸のブレを抑えている。