DirectX シーン間の情報渡し
あいさつ
どうも、はかせです。
前回までレーザーを作っていました。
それで絵を描けない私ではこれ以上は無理だと判断し、
これにてレーザーをいったん終了します。
今回はシーン間の情報渡しをやっていきます。
シーン間の情報渡し
開発を進めていくとゲームのメインのプレイシーンの結果を
リザルトシーンへ渡すといった要件が発生すると思います。
こういう時に方法として
・どこか1か所に情報をまとめて必要に応じて参照・更新を行う
・必要に応じてシーンクラス同士が相互にやり取りする
この2つがあると思います。
今回は前者の方法で実装しました。
実装
元々メモリ節約のためにオブジェクトプールやDirectXのコンポーネントなどを
全てのシーンで共有していました。
そこにスコアを管理する変数と
その変数のゲッターセッターを追加して実装しました。
public: void SetScore(float score) {mScore = score;} float GetScore() const {return mScore;} private: float mScore;
実行結果
一通りプレイしてリザルトシーンの画像です。
現在私のゲームでは
雑魚が10点、ボスが100点。
雑魚が6体、ボスが1体です。
なので全部倒すと160点になります。
まぁ製作者で全部わかってるので全部倒せますとも。はい。
あとがき
今回はシーン間の情報渡しでした。
正直シーン間の情報渡しはエンジン使う時でも
どうやってやるか悩みます。
(何やるにしても悩むんですけどね?その中でも悩む頻度が多いという話です)
それでは今回はこの辺でノシ
今回作ったものはgithubに上げました。
github.com