忍者ブログ
まったくのプログラミング素人の筆者がC++/HSPを使用してSTG(シューティングゲーム)を作っていく過程を書くブログでしたが最近は脱線気味。プログラミング以外にも、ゲーム関連の記事、日々の戯言など。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

オプション選択画面を追加して、キーコンフィグとウィンドウモード切替を実装してみました。
s-WS000448.jpg
プロジェクトファイルはコチラ↓
http://blog.cnobi.jp/v1/blog/user/63629cf35d5259ece1529ed13f0745b1/1241423847
初回起動時はウィンドウモードで立ち上がります。フルスクリーンにも変更出来ますが
何があるかわからないので、起動には注意して下さい。
私の環境では問題なく動いているようですが、何かあっても責任は持てません。

で、まずキーコンフィグやウィンドウモードのデータを保存&読み出しする方法について考えてみた。
最初に思いついたのはiniファイルを使った保存方法だったのですがiniファイルはテキストファイルと
同じなので編集が容易です。
キーコンフィグなどのプレイする人が変更しても問題ないデータなら良いのですが
変更して欲しくないデータの場合にiniファイルを使うのは向いていないので
何か良い方法はないかとググってみたらC言語なんでも質問サイトさんの「セーブデータの作り方」
に良い方法が書いてありました。
簡単に書くとfopen関数とfclose関数を使ってデータをバイナリデータとしてファイルに保存します。
しかも保存するデータを構造体で管理出来るので、いちいちデータ別に読み出ししなくても
一度に全てのデータを読み込めるので便利です。
ただ、fopen関数をVC++2005EEで使うと、fopen_s関数を使えとの警告が出ます。
この警告が出ていても動作は問題なかったのですが、なんか気持ち悪かったので
#define _CRT_SECURE_NO_DEPRECATE 1
と記述すれば警告は出なくなりました。本当はfopen_s関数を使うのが良いのでしょうね。

そしてバイナリデータとして保存したとしても、バイナリエディタなどで開けば変更は可能なので
本来は暗号化等をした方が良いのでしょうが、販売する訳でもないので
そこまでする必要もないかな?と思ってます。

後は、プログラムの起動時にデータを読み込んで、終了時に保存するように記述するだけでOK。
ただ、終了の仕方がEscキーを押した時と、タイトル画面でEXITを選択した時の2種類あったので
どちらの終了の仕方をしても保存出来るように、どちらの処理にも保存処理を追加しました。

で、保存&読み出し処理は出来たので、タイトル画面やオプション画面での選択プログラムを
作ってみました。
s-WS000447.jpg
XBOX360版の怒首領蜂大往生の選択画面をちょっと真似して作ってます。
ここで一つ問題が。
選択している文字グラフィックの部分を反転表示させたくて、SetDrawBlendMode関数の
DX_BLENDMODE_INVSRCを使おうとしたのですが、上手く動きませんでした。
公式ページに載っているのに何故???と思って公式ページの掲示板を見てみたら
何やらバグがあったようで最新版では修正されていたので、最新版を落として更新してみたら
ちゃんとDX_BLENDMODE_INVSRCが使えました。
・・・・・・が、ここでまた問題が。
DX_BLENDMODE_INVSRCを使っても、文字グラフィックが反転されません。
で、更に調べてみるとDX_BLENDMODE_INVDESTCOLORを使うと上手く反転される事が
解りました。
DXライブラリには非公開の関数?が多数あるようで、DX_BLENDMODE_INVDESTCOLORも
そのうちの一つみたい。
この非公開関数についてはDXライブラリのヘッダファイルに色々と書かれているみたいなのですが
ヘッダファイルを見てみても、なんのこっちゃわかりませんでした(汗)
まぁ、反転表示は出来るようになったのでエエか~と思ってます^^;

PR
この記事にコメントする
お名前
タイトル
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
Twitter
カレンダー
03 2024/04 05
S M T W T F S
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
最新コメント
[04/20 kt.]
[04/19 うぇむ]
[11/24 kt.]
[11/21 NONAME]
[11/24 kt.]
プロフィール
HN:
kt.
性別:
男性
自己紹介:
プログラミング経験は昔ファミリーベーシックでちょっとさわったくらい。
好きなSTGは、怒首領蜂大往生、エスプガルーダ(2)等の弾幕STGやら雷電シリーズなんかの非弾幕、バトルガレッガ、グラディウスシリーズ、R-TYPE等、STGなら何でも好きです。
音楽がカッコイイSTGが特に好きで、並木学氏は最高!
ブログ内検索
忍者ブログ [PR]