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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
jorujo

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

#1

投稿記事 by jorujo » 9年前

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 9年前

やられる→ゲームオーバー→ボタン押下→初期化→ステージロード→再戦
じゃないでしょうか。
細かい部分は、プログラムの作りと関わるのでフラグで済むかは分かりません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

jorujo

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

#3

投稿記事 by jorujo » 9年前

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

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

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

#4

投稿記事 by h2so5 » 9年前

あとから初期化するような変数にstaticを使わないでください。

jorujo

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

#5

投稿記事 by jorujo » 9年前

h2so5さん返信ありがとうございます。
>あとから初期化するような変数にstaticを使わないでください。
なるほど、ならフラグやカウントをするにはどうしたらよいのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

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

#6

投稿記事 by softya(ソフト屋) » 9年前

ファイルスコープなstaticにすると言う手はありますよ。
関数内に内包しているよりは良いと思います。
ファイルスコープにするなら構造体にまとめた方が良いでしょうけど。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1661
登録日時: 13年前
住所: 北海道札幌市
連絡を取る:

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

#7

投稿記事 by Dixq (管理人) » 9年前

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

jorujo

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

#8

投稿記事 by jorujo » 9年前

Dixq (管理人)さん softya(ソフト屋)さん h2so5さん 返信ありがとうございました。
ファイル内にstatic変数を持つ方法で行こうと思います。ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る