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を入力したこと自体か、それを入力した場所に問題があると思うのですが、どうすればいいでしょうか?
わかりにくい質問ですがよろしくお願いします。
HPを減少させるにはどうすればいいでしょうか
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: HPを減少させるにはどうすればいいでしょうか
>問題はstatic int HP = 8を入力したこと自体か、それを入力した場所に問題があると思うのですが、どうすればいいでしょうか?
main側にHPを持たせてポインタで持ちまわるか、難しいと感じるなら関数外に出して変数を共有する必要があります。
main側にHPを持たせてポインタで持ちまわるか、難しいと感じるなら関数外に出して変数を共有する必要があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: HPを減少させるにはどうすればいいでしょうか
元がどうなっているか分からないですが下記のように書き換える事です。
【補足】ちなみにHPだけ独立してあるのは余り褒められたプログラム構造ではありません。プログラムが小さい間は分かりやすいので初心者向きですが大きくなると害が出るようになってきます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。