検索結果 11 件
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
返信が遅くなってしまい申し訳ありません。 ついでですが初心者は、{}を必ず書きましょう。 if関数の時は if{ //ここに書き込む } のように気がついたところは直しました。 移動しながらでないとZで発射できないのは狙った仕様でしょうか? 移動しながらでないとZで発射できないという点については狙っていなかったのでいつでも発射するように変更しました。 続いて、気分でタイトル作成をしました。 case10 にタイトル画面をはさみ if を使い 返り値が-1のときはcase10に戻り 返り値が 1のときはcase99(STGの初期処理)に移行 返り値が 0のときは終了処理 のようにし、int型の関...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
(1)その関数が必要とする値でその関数が持っていないものを引数とします。 (2)受ける側の関数の引数の名前=仮引数の名前は自由に変えて構いません。 (3)仮引数は変数として扱えます。 たとえば、 Enter_Shot(Player.shot_cnt,Player.x,Player.y); と呼び出して Enter_Shot(int shot_cnt,int x,int y); と宣言されれば でEnter_Shot関数内でshot_cntとxとyが利用できます。 はい 実行してみました。 そうしたところ x y 等をEnter_Shot内で使用するとPlayer_Shotの構造体部分のx と...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
プレーヤーが2体?いるみたいですから、どちらにしろ外部変数で渡すのは無理があります。 Player_CalcがEnter_Shot()を引数付きで呼び出せば解決できると思います。 Enter_Shot()は、Slow_Shot_Pattern()やNormal_Shot_Pattern();に引数付きで渡します。 ほお そうなのですか。 とりあえず、敵の表示を管理部の作り方を見たときに2体にしたままだったので1体に変更。 そうしてよし引数付きで呼び出そうとし、何を引数とすればよいのかわからず Enter_Shot() をPlayer_Calcが呼び出すときに必要なのは Player.shot...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
ローカル空間とグローバル空間は別空間のため値を共有できないということですか・・・ では共有するためにはどうすればよいかと考えて、調べた結果 仮引数実引数や値の参照付近を使うだろうと考えました。 しかしながら、どのように編集すればよいのかわからないため他の方法をとってみました。 そこで考えたのは、Playerの位置座標をとってくればよいのだからそれを格納するint型を作り代入すればよいのではないか と。 実際にこのようにしてみました。 ソース一部抜粋 if(!(x<30 || x>FIELD_MAX_X-50 || y<10 || y>FIELD_MAX_Y-25)){//計算結果移動可能範囲内...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
この部分の Player.x Player.y をそれぞれ200に変更して実行してみたところ多分 (200,200) 真ん中付近で弾が無事発射されるのがみれるのですが、やはり Player.x この部分はおかしくないのでしょうか? 何処がどの様におかしいと思われるのでしょうか? 私にはおかしなところがあるように見えませんが。 おかしいと思った箇所は 初期のPlayer.xは FIELD_MAX_X/2 の値を受け取り、Player_Graph のint xに入るので 自機描画のx座標は FIELD_MAX_X/2 であると考えました。 もし 初期位置のまま弾を発射すると Player_Sho...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
extern Player_t Player;で合っています。 もし参照できないなら別の問題です。 この部分だけ少し気になったので質問です。 他の部分はまだ訂正していません>< //通常ショット登録 void Normal_Shot_Pattern(){ int k; for(int i=0;i<Player_Shot0num[Player.power<200?0:1];i++){ if((k=Search_Player_Shot())!=-1){ Player_Shot[k].flag=1; Player_Shot[k].cnt=0; Player_Shot[k].angle=-PI/2;...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
エラーが出るから諦めるのではなく、理由を理解しましよう。 extern enemy_t enemy[ENEMY_MAX]; があるからエラーになるのです。外部公開が不要ならstaticでエラーが出ないはずです。 プロトタイプ宣言があったため実体を表示することが必要であり、static ではコンパイルが不可能であったということですね。 そのため、 extern部分 を無くして enemy_t eneny[ENEMY_MAX] = {0}; インクルードの下に書き込んだところコンパイルできました。 次に、自機の弾についてプログラミングしています。 自機の弾の描画座標をもし Player.x+20...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
返信が遅くなって申し訳ありません。 ご指摘くださった点を直しましたところ無事、敵が上から動いてきて、自機も思うように動くようになりました。 あとは今まで作ったソースを参照しながら、自弾や敵弾など作っていこうと思っております。 ただ1点だけご指摘くださった所なのですが、直すとエラーになるのでご報告。 Enemy.cpp enemy_t enemy[ENEMY_MAX]; //初期フェーズ //敵の情報登録 void Enemy_Initialize(){ Image_Enemy01 =LoadGraph( "../データ/キャラクター/enemy01.png" ); static enemy_t...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
いつもお世話になっております。 またご指南をいただけたのでコメ返信。 Player_Calcを呼び出したかったんだと思いますがミスをしたのは名前の付け方が混乱を生む原因なのかも知れません。 PlayerMgr_Calcを、もっとわかり易い名前に変更されてはどうでしょうか? 考えて見たのですが、ぱっと見て意味がわかるような名前が思いつかなかったので今回はこのままで行かせてください; Enemy_Initialize()は最初の1回しか呼ばれないのでstage_countが100になることはありません。なので敵は発生しません。 敵の情報登録を計算フェーズに移行し、初期フェーズには画像のロードだけに...
- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
画像が貼れてなかった?ので再投稿 こんどはプレビューで画像も確認。

- 14年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの設計と分割コンパイル (3)について
- 返信数: 48
- 閲覧数: 15193
Re: ゲームの設計と分割コンパイル (3)について
ファイル添付は当サイトに登録していただければ行えます。 画面右下に登録画面へのリンクがあります。 よければご登録下さい。 はい。登録させていただきました。 ためしにソースを添付してみます。 ソースを見ましたが今までの話の内容が理解されていないとしか思えません。 enemy[0].img =LoadGraph( "../データ/キャラクター/enemy01.png" ); ← 画像ハンドルを入れています。 enemy .img=enemy .muki*3+(enemy .cnt%18)/6; ← mukiとcntで計算した数値データを入れています。画像ハンドルとは無関係です。 はい。なんという...