質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

1回答

1162閲覧

シューティング鬼ごっこゲームをつくりたい。3回だけ打てるショットを作り鬼を倒したい。

退会済みユーザー

退会済みユーザー

総合スコア0

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2021/05/16 08:51

縦15、横25の枠内で鬼ごっこをするといった内容です。具体的には、スコアが増えるたびに鬼も増えるといったもので、そこに数発だけ弾が打てる設定を付けたいと考えています。
弾を出す関数はどこに入れればよいのか、制限を付けるプログラム、弾が打つためのプログラムはどういったものかの3点をお聞きしたく質問させていただきました。回答してくださると幸いです。
下記にプログラムの.....は、長くなってしまうので内容を省いてます。

//ゲームを初期化する関数 void reset() { ...... } //鬼に関する処理 enum direct { //方向を表す定数を列挙 .... }; void Oni_spawn() { //鬼の追加する ..... } } int Oni_can_move(vy, vx, num) { //鬼が移動できるか判定 ..... } void monster_move() { //鬼の動き } int check_monster(y, x) { //指定された座標にいる鬼の番号を返す ..... } //画面表示 void text_info() { //画面上部に表示する情報 ..... } void hit_oni() { ..... } void key_input() { //キー入力の受付 //キー入力判定 ..... } void move_player() { //プレイヤーの移動 .... } int main(void) { reset();//フィールドの初期化 //メインループ(ゲーム開始から終了まで続く無限ループ) while (1) { tic++; //キー入力受付 //プレイヤーの処理 //移動 //鬼との衝突判定 //スコアの加算 } //鬼の処理 //移動 //画面の描画 //プレイヤーとの衝突判定 } { //鬼の追加 } } return 0;

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

■弾を出す関数はどこに入れればよいの
鬼も弾も(プレイヤー)も本質的には同じものなので、鬼と同様の関数を弾にも作ればよいかと思います。

C++

1void Tama_spawn() {} //弾の追加する ← これを作成 2int Tama_can_move(vy, vx, num) {} //弾が移動できるか判定 3void shot_move() {} //弾の動き 4int check_shot(y, x) {} //指定された座標にいる弾の番号を返す

■制限を付けるプログラム/弾を打つためのプログラム
鬼の管理と同じです。弾の現在の数を保持する変数を用意して、弾を生成するかどうか判定します。

C++

1if ( tama_numbre < 3 ){ 2 Tama_spawn(); 3}

質問と関係ないですが表記ゆれが多いみたいです。
コーディングルールを決めて徹底した方がよいかと思います。

①用語の統一
鬼⇒Oni/monster

②単語の順番
monster_move/move_player

③判定用関数
Oni_can_move ⇒ can_Oni_move
(これは好みあるかと思いますが)

投稿2021/05/16 10:45

編集2021/05/16 10:47
Serbonis

総合スコア586

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/16 15:17

コメントありがとうございます。これらを活かしてやってみます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問