ページ 11

残りは弾の発射だけ・・・

Posted: 2008年10月15日(水) 00:16
by chunezu
あのあといろいろ試しているうちに自分のスレが消えてしまい返信できなくなっていました。
回答してくださった人、どうもすいませんでした。

まずはenemyとshot,bulletに分けました。
enemy(t)は望んだとおりの動きになるのですが、どうしてもそこから弾が発射されません。
ここからどうしたら良いでしょうか?

こんかいもプロジェクトを添付しました。
http://island.geocities.jp/nznz3102/DP.zip
もしかshot,bulletに分けられていない状態のプロジェクトでしたらご一報ください。

ご回答よろしくお願いします。

Re:残りは弾の発射だけ・・・

Posted: 2008年10月15日(水) 01:19
by 管理人
ブレイクポイントは使ってみましたか?
どのように処理が行われているか変数の中身を確認したりしてみましたか?
ブレイクポイントを使い、少しずつ処理がどのようになっているか、
とくに弾が発射されないのならその辺で処理をとめ、
変数に期待する値が入っているかどうか確認してみて下さい。

Re:残りは弾の発射だけ・・・

Posted: 2008年10月15日(水) 20:30
by Justy

>どうしてもそこから弾が発射されません。
>ここからどうしたら良いでしょうか?

 いや、どうしたらいいって、それ以前の問題が・・・。

 配列の要素数を越えるアクセス、未初期化のローカル変数への参照、
forループにグローバル変数を使っていてその内部から呼び出した
関数内でもそのグローバル変数を使って forループしていたり、
とおおよそ正常に動作する見込みがありません。

 まず、そのあたりを改善されてはどうでしょうか?


 で、弾が発射されない問題ですが、ただ単に発射関数を呼んでいないからではないですか?
 shot_serch(search)とか enter_shot()とか検索しましたが、
使われているように見えませんし。



>まずはenemyとshot,bulletに分けました。

 えーと、前のスレも目を通しましたが、enemy/shot/bulletの何を分けたんでしょうか?

Re:残りは弾の発射だけ・・・

Posted: 2008年10月15日(水) 20:50
by レク
前スレで管理人さんがループ上限を直すようにも、
tを使わないようにも言っていると思いますが、直ってないようですね。
まず質問する前に、前に言われた事をきちんと直してから聞くのが常識ではないでしょうか。

Re:残りは弾の発射だけ・・・

Posted: 2008年10月17日(金) 23:24
by chunezu
ご返答ありがとうございます。
ご指摘を受けたところを改善してみた所、無事に動きました。本当にありがとうございました。

ただ、また問題が起きてしまいました。

kouzou.hの
/*定義*/
#define EnemyMax 50
#define ShotMax 30
#define BulletMax 200
#define PI 3.141592
の部分で、ShotMax、BulletMaxの値を増やすとプログラム自体が強制終了してしまいます。
↑の定義が使われているループには何度も目を通しましたが、原因は何だかわかりませんでした。
EnemyMaxも増やすと変な行動をしてしまいます。
どなたか分かる方ご指摘お願いします。

プロジェクトは前のアドレスと一緒です。

Re:残りは弾の発射だけ・・・

Posted: 2008年10月18日(土) 11:14
by 管理人
修正されたプログラムを拝見できますか?

Re:残りは弾の発射だけ・・・

Posted: 2008年10月18日(土) 19:22
by chunezu
すいません説明不足でした・・・

ただ、この問題は何度か再起動しているうちに直ってしまいました。

そのほかの問題も徹夜で頑張ってたら全て解決しました。
ご回答くだっさた皆様本当にありがとうございました。