こんにちは。
僕は今、c言語とDxライブラリで、ロックマンのようなゲームを作っているのですが、
とりあえず、ボス戦のとこだけでも作ろうと思ったので、試行錯誤してやってみたのですが、
一度やられて、もう一度戦うときに、前の時の値が残っていて、正常に動きません。
どこかで初期化をすればいいだけの話なんですが、
どのような流れでするのがいいのでしょうか?関数ごとに初期化する場所を作っといて、
初期化するフラグが立った時、初期化をするというのがいいのでしょうか?
ゲームの初期化のタイミングについて
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: ゲームの初期化のタイミングについて
やられる→ゲームオーバー→ボタン押下→初期化→ステージロード→再戦
じゃないでしょうか。
細かい部分は、プログラムの作りと関わるのでフラグで済むかは分かりません。
じゃないでしょうか。
細かい部分は、プログラムの作りと関わるのでフラグで済むかは分かりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: ゲームの初期化のタイミングについて
softya(ソフト屋) さん返信ありがとうございます。
流れてきにはそうしようとは思ったのですが、
もんだいは、関数内に作った変数の初期化なのです。
staticで宣言してるので、関数内で初期化しないといけないと思ったのですが、
初期化フラグを作っておいて、そのフラグが立っていれば、関数内で初期化を行う
というのでよいとおもいますか?
流れてきにはそうしようとは思ったのですが、
もんだいは、関数内に作った変数の初期化なのです。
staticで宣言してるので、関数内で初期化しないといけないと思ったのですが、
初期化フラグを作っておいて、そのフラグが立っていれば、関数内で初期化を行う
というのでよいとおもいますか?
Re: ゲームの初期化のタイミングについて
あとから初期化するような変数にstaticを使わないでください。
Re: ゲームの初期化のタイミングについて
h2so5さん返信ありがとうございます。
>あとから初期化するような変数にstaticを使わないでください。
なるほど、ならフラグやカウントをするにはどうしたらよいのでしょうか?
>あとから初期化するような変数にstaticを使わないでください。
なるほど、ならフラグやカウントをするにはどうしたらよいのでしょうか?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: ゲームの初期化のタイミングについて
ファイルスコープなstaticにすると言う手はありますよ。
関数内に内包しているよりは良いと思います。
ファイルスコープにするなら構造体にまとめた方が良いでしょうけど。
関数内に内包しているよりは良いと思います。
ファイルスコープにするなら構造体にまとめた方が良いでしょうけど。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- Dixq (管理人)
- 管理人
- 記事: 1661
- 登録日時: 13年前
- 住所: 北海道札幌市
- 連絡を取る:
Re: ゲームの初期化のタイミングについて
http://dixq.net/g/
こちらの「ゲームプログラミング設計」を参考にしてください。
ファイル内にstatic変数を持つ方法はあります。
その変数を初期化するInitialinze関数を作っておき、それをコールすればそのモジュールの変数は全て初期化できるようにしておきます。
関数内にstatic変数を持たせないでください。
こちらの「ゲームプログラミング設計」を参考にしてください。
ファイル内にstatic変数を持つ方法はあります。
その変数を初期化するInitialinze関数を作っておき、それをコールすればそのモジュールの変数は全て初期化できるようにしておきます。
関数内にstatic変数を持たせないでください。
Re: ゲームの初期化のタイミングについて
Dixq (管理人)さん softya(ソフト屋)さん h2so5さん 返信ありがとうございました。
ファイル内にstatic変数を持つ方法で行こうと思います。ありがとうございました。
ファイル内にstatic変数を持つ方法で行こうと思います。ありがとうございました。