【もぐら叩きゲーム】ゲージのようなエフェクトを作る①
逆三角形を描いてメーターのようなエフェクトを作成する。
Color color = //メーターを上昇させる条件
? Palette::Blue
: Palette::White;
Triangle(Vec2(1500, 100), Vec2(1650, 950), Vec2(1800, 100))
.draw(ColorF(color, 0.3));
Vec2 leftBottomCornerVec = Vec2(1625, 800);
Vec2 rightBottomCornerVec = Vec2(1675, 800);
if (//メーターを上昇させる条件) {
double t = Min(stopwatch.sF(), 1.0);
double easeOut = EaseOutCirc(t);
Vec2 pos1 = leftBottomCornerVec.lerp(Vec2(1570, 500), easeOut);
Vec2 pos2 = rightBottomCornerVec.lerp(Vec2(1730, 500), easeOut);
Triangle(pos1, Vec2(1650, 950), pos2)
.draw(ColorF(Palette::Blue, 0.5));
} else {
Triangle(whiteLeftBottomCornerVec,
Vec2(1650, 950),
whiteRightBottomCornerVec)
.draw(ColorF(Palette::White, 0.5));
}
まずはベースとなる背景側メーターを逆三角形で描画する。
(メーターの横ラインについてのコードは割愛)
色は上昇前と上昇後で変えるので、条件を指定しておく。
次に実メーター(実際に移動するメーター)のVec2を指定する。
メーター上昇前と上昇後のVec2をそれぞれ条件式で分岐させ、処理を記述する。上昇させる際はイージング関数(例:EaseOutCirc)を使用して移動をなめらかにする。
エンジンメーターのようなゲージの微動に関しては次回の記事で紹介する。