![見出し画像](https://assets.st-note.com/production/uploads/images/7180505/rectangle_large_type_2_7573cd1614c82eacf1d1bb104202b4ff.jpg?width=1200)
ローグライク(仮) タイトル画面実装
今回はプログラミングが捗った。タイトル画面を作り、キーを押すとダンジョン画面に遷移する仕組みを作った。
これだけ読むと「なんだ、簡単だな」と思われるかもしれないが、その裏で作った機能は多い。次に挙げるのはその処理の一部である。
ゲームのサイクル
ビデオゲームの一般的なサイクルは『初期化』『計算処理』『描画』『終了処理』で、一般的にフレームレート60のゲームは『計算処理』と『描画』が秒間60回実行されることを言う。このサイクルを包括したモジュール『ステージ』を作った。ステージは基本的なイベント処理と、次に上げる『シーン』の遷移等を行う。
シーン
シーンはステージの中で行われる『場面』のことで、今回でいうと『タイトル画面』と『ダンジョン画面』のことである。それぞれは異なった機能を持つため、その処理を別々のモジュールとして記述できるようにしておくことは制作の行いやすさに直結する。『タイトル画面』では文字を描画し、キー入力を受け付けると『ダンジョン画面』に遷移する機能をもつし、『ダンジョン画面』はゲームの多くの機能が集約されているシーンである。
イベント処理
ここでいうイベントとは、オペレーティングシステム等のレイヤーから受け渡されるもので、例えばキーボードを押したことや、バツボタンを押してアプリケーションを終了させようとしたことを知るためのものである。この処理をステージからシーンへ受け渡してゲーム上で取り扱う仕組みを作った。今回は少々サボっており、フレームレートが下がるとイベントの取り逃しをしてしまうような実装になっているが、マルチスレッディングを用いて取りこぼさないように実装し直す予定である。
などなど、基本的なゲームサイクルの枠組みを作り上げた。進捗は良し。
応援してくださると嬉しいです。よろしくお願いいたします!