Appearance
第10回 エフェクトと演出
3 / 4 出来事へエフェクトを接続する
このステップの目的
命中や被弾が成立した位置へエフェクトを表示し、音声と視覚の反応をそろえる
命中位置から生成する
第04回の敵撃破時と第06回の被弾成立時に、EffectManager::Spawn()を呼びます。 Entityがエフェクトを所有せず、Gameが出来事を調停する構造は維持します。
Game.cppcpp
enemy.TakeDamage(tuning::playerShot::Damage);
playerShot.Deactivate();
effects.Spawn(enemy.GetHitbox().GetCenter());
if (!enemy.IsActive())
++score;敵弾がプレイヤーへ命中した場合も、敵弾の位置を中心にエフェクトを生成します。 音声と同じく、入力ではなく出来事が成立した場所へ接続します。
Game.cppcpp
enemyShot.Deactivate();
effects.Spawn(enemyShot.GetHitbox().GetCenter());
if (player.TryTakeDamage())
sounds.PlaySe(SoundId::Damage);更新と描画の順序
プレイ中はエフェクトを更新し、描画ではオブジェクトの上へ重ねます。 結果画面でも最後のプレイ画面を背景に残す場合は、エフェクトを含むプレイ描画を再利用します。
チェックリスト
- 敵撃破時に敵の位置へエフェクトが出る
- 被弾時に接触位置へエフェクトが出る
- エフェクトの所有が
EffectManagerに集まっている - 音声とエフェクトが同じ成立条件へ接続されている