Siv3D にはゲーム開発に役立つ機能がたくさんありますが、中でも実際に私がゲームを作るときよく使っている便利な機能を、使用例とともにピックアップしてみました。
Periodic
画像やテキストを点滅させたり、揺らしたりなどの動きを加えるときに便利です。
点滅させるときは .draw(ColorF(色, Periodic::Square0_1(100ms)));
とか。
例:テキストの点滅(ゲームスタート)
例:カーソルの点滅
Stopwatch, Timer
一定時間後になにかしたいとき。例えば、タイトル画面でマウスをクリックしてから T 秒後に次のシーンに移るとか、ダメージを受けたら一定時間点滅するなど、時間に関係するちょっとした処理に多用しました。
progress0_1()
で 0.0~1.0 の範囲の値が得られるので、そのままイージング関数に渡したりできるのも便利です。
イージング関数
動きが直線的で単調にならないように、ということで上記の Periodic や Stopwatch と一緒によく使いました。
例:スライドしてくるテキスト
Effect
爆発やキラキラなど、発生してはすぐに消えるような装飾に。
例:煙
例:敵を倒した時の黒くはじけるエフェクト
アセット (TextureAsset, FontAsset, ...)
Texture や Font、Audio などを、一度登録しておけばどこからでもアクセスできて便利。
あたり判定
あらゆる図形に対して 図形A.intersects(図形B)
で判定できるのがとても楽。
敵とかが画面内にいるかの判定 Scene::Rect().intersects(敵)
をよく使います。