【もぐら叩きゲーム】ゲージのようなエフェクトを作る②
ゲージを上下に微運動させて、エフェクトをアピールさせる。
上下運動はランダムな値をy軸に加えるか引くことで実現する。
今回は固定値10にたいして、0~5を加えて50%の確率でプラス、
マイナスにして計算している。
int32 tremorRandom = Random(5);
int32 tremor = RandomBool(0.5) ? 10 + tremorRandom : -(10 + tremorRandom);
x軸はすこし複雑で、lerpメソッドを利用して線形補完を行う。その際にx軸に次のようなぶれが発生するので、それを考慮して実装する。
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軸のブレを抑えている。