HPを減少させるにはどうすればいいでしょうか

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

HPを減少させるにはどうすればいいでしょうか

#1

投稿記事 by アマ・プログラマ » 14年前

RPGの戦闘の画面を作っている途中なのですが、敵のHPをダメージを与えた分だけ減少させるにはどうすればいいでしょうか?

一番初めのint main(void)にはcommand()と入力して、好きなコマンドを選択する関数に移るようにしておきます。
次は普通攻撃と魔法攻撃をする場合をvoid attack(void)やvoid magic(void)などで分けておき、HPを8にしたいので、それぞれの関数にstatic int HP = 8と入力しておきましたが、ここで問題が発生しました。普通攻撃をして倒せなかったときに、魔法攻撃に切り替えて攻撃したときにHPがまったくダメージを与えていない状態に戻されています。たとえば普通の攻撃で5ダメージを与えると、残りのHPは3になります。そこで魔法攻撃をして7ダメージを与えれば十分倒せるはずなのに、残りのHPは1となっており倒せません。

問題はstatic int HP = 8を入力したこと自体か、それを入力した場所に問題があると思うのですが、どうすればいいでしょうか?

わかりにくい質問ですがよろしくお願いします。

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

Re: HPを減少させるにはどうすればいいでしょうか

#2

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

>問題はstatic int HP = 8を入力したこと自体か、それを入力した場所に問題があると思うのですが、どうすればいいでしょうか?

main側にHPを持たせてポインタで持ちまわるか、難しいと感じるなら関数外に出して変数を共有する必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アマ・プログラマ

Re: HPを減少させるにはどうすればいいでしょうか

#3

投稿記事 by アマ・プログラマ » 14年前

お返事いただきありがとうございます。

具体的にどのように入力すればいいのでしょうか?

何度ももうしわけないです。

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

Re: HPを減少させるにはどうすればいいでしょうか

#4

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

元がどうなっているか分からないですが下記のように書き換える事です。

コード:

static int HP = 8;

void attack(void)
{
	
}
void magic(void)
{
	
}
【補足】ちなみにHPだけ独立してあるのは余り褒められたプログラム構造ではありません。プログラムが小さい間は分かりやすいので初心者向きですが大きくなると害が出るようになってきます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

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