スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

9歩:9連休。

学校の方が、木曜と金曜がゲームショウにより休みだった関係で、9連休の休みでした。

連休の最初の方は、企画書・仕様書の見直しなどをしていました。
ゲームの内容の突き詰めは、プログラムを組みながらやっているので、
少しまとまった時間を取ってみようと、作業をしていました。


連休後半では、プロトタイプの時使っていたフレームワークをやめ、
自分で作り直していました。

前回のものは、学校で「簡単なフレームワーク」として出され、とりあえずモデルを移動させる
ことができる程度まで作られたものでしたが、
ウィンドウなどがクラス化されていない物でした。


それをオリジナルのものとして、1から作り直していました。

まだ完全ではありませんが、とりあえずモデルを表示するところまで作りました。
今後はこれを発展させながら、プロトタイプと同じところまで持って行こうと思います。

「続きを読む」では、オリジナルのものでどんなことができるのかを書いています。





オリジナルで組んだ基盤は、まず前回のフレームワークでは出来ていなかった、
ウィンドウモードとフルスクリーンモードをゲーム起動中に切り替えること、
そして、スクリーンセーバー起動などによりデバイスがロストした時の、復帰です。

ウィンドウモードの切り替え・デバイスの復帰の両方とも、
ただDirectXをつかってウィンドウを表示しているだけの状態なら、簡単に実装できました。

ウィンドウモードの切り替えは、ウィンドウとデバイスを一度破棄し、再度作り直し、
デバイスの復帰は、デバイスで Reset を呼び出す以外、特にまだやることもありません。


問題は、テクスチャが読み込まれていたり、Xファイルなどを読み込んでいたとき。

テクスチャへのポインタを、テクスチャを読み込んだ個々のクラスに持たせていては、
デバイスロストでテクスチャ復帰が必要な時面倒なので、テクスチャクラスを作成。

Xファイルを読み込むときもDirect3DGraphicsのデバイスが必要なので、こちらもクラスを作りました。

後は、この二つを内部に持ったモデルを扱うクラスをつくり、何とか終わりです。
テクスチャのクラスとXファイルのクラスに読み直しの関数を作って、
それを呼び出すと、うまくいきました。

後は、ウィンドウ切り替えが起きた時に呼び出せば大丈夫です。

しかし、デバイスロストのときはテクスチャとXファイルの読み直しだけでいいかと思いましたが、
どうも復帰してくれないようなのでデバイスも作り直しにしました。


それから、基盤を作るならばフレームワークに近づけたいので、
フレームワークよりの上記のようなクラスは、ゲームのメイン処理では、
シングルトンでポインタを取得して使えるようにし、
リリースなどはフレームワークでやり、ゲーム製作者は気にしないで良い作りにしてみました。

本来ならポインタ取得しないでも使えるようにしたかったのですが、
取得していればインテリセンスで入力候補なども出るので、そこはやめておきました。

こんな風に、システムよりのクラスやインタフェースなどを組んでいけたらなぁと思います。


スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

堀

Author:堀
ゲームプログラマーを目指して、
卒業制作をして行こうと思います。

↓メールアドレス(画像)

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
リンク
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。