ページ 11

ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 02:29
by jorujo
こんにちは。
僕は今、c言語とDxライブラリで、ロックマンのようなゲームを作っているのですが、
とりあえず、ボス戦のとこだけでも作ろうと思ったので、試行錯誤してやってみたのですが、
一度やられて、もう一度戦うときに、前の時の値が残っていて、正常に動きません。
どこかで初期化をすればいいだけの話なんですが、
どのような流れでするのがいいのでしょうか?関数ごとに初期化する場所を作っといて、
初期化するフラグが立った時、初期化をするというのがいいのでしょうか?

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 13:06
by softya(ソフト屋)
やられる→ゲームオーバー→ボタン押下→初期化→ステージロード→再戦
じゃないでしょうか。
細かい部分は、プログラムの作りと関わるのでフラグで済むかは分かりません。

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 20:09
by jorujo
softya(ソフト屋) さん返信ありがとうございます。
流れてきにはそうしようとは思ったのですが、
もんだいは、関数内に作った変数の初期化なのです。
staticで宣言してるので、関数内で初期化しないといけないと思ったのですが、
初期化フラグを作っておいて、そのフラグが立っていれば、関数内で初期化を行う
というのでよいとおもいますか?

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 20:11
by h2so5
あとから初期化するような変数にstaticを使わないでください。

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 21:20
by jorujo
h2so5さん返信ありがとうございます。
>あとから初期化するような変数にstaticを使わないでください。
なるほど、ならフラグやカウントをするにはどうしたらよいのでしょうか?

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 21:43
by softya(ソフト屋)
ファイルスコープなstaticにすると言う手はありますよ。
関数内に内包しているよりは良いと思います。
ファイルスコープにするなら構造体にまとめた方が良いでしょうけど。

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月19日(木) 23:49
by Dixq (管理人)
http://dixq.net/g/
こちらの「ゲームプログラミング設計」を参考にしてください。
ファイル内にstatic変数を持つ方法はあります。
その変数を初期化するInitialinze関数を作っておき、それをコールすればそのモジュールの変数は全て初期化できるようにしておきます。
関数内にstatic変数を持たせないでください。

Re: ゲームの初期化のタイミングについて

Posted: 2015年2月20日(金) 23:19
by jorujo
Dixq (管理人)さん softya(ソフト屋)さん h2so5さん 返信ありがとうございました。
ファイル内にstatic変数を持つ方法で行こうと思います。ありがとうございました。