ゲーム製作において再び疑問点が浮上しましたので、質問させていただきます。
現在龍神録の館を利用しつつSTGを製作しているのですが、アレンジするにあたって通常では定数でグローバル宣言されている弾の構造体を、リスト処理で際限なく生成できるようにしようと思いました。
色々な資料を参考にしつつプログラムを組んだのですが、どうも構造体の宣言部分で躓いてしまう問題が発生しました。
構造体を宣言するヘッダ<struct.h>において、以下のように宣言すると大量にエラーが発生(ソースから呼び出されるたびにエラーが出ている?)してしまいます。
たとえばこのような変数を持つ構造体を宣言する場合、
//弾の構造体 typedef struct{ int flag; //フラグ double range; //当たり判定の半径 double x, y; //座標 double spd; //速度 double angle; //角度 bullet_t *next; //自己参照構造体 }bullet_t; EXTERN bullet_t *head;//先頭ポインタとすると『error C2143: 構文エラー : ';' が '*' の前にありません。』『error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません』というようなエラーが大量に発生します。
おそらく記述の方法がおかしいのだと思います。一応別の宣言方法などども試してみました。
//弾の構造体 struct bullet_t{ int flag; //フラグ double range; //当たり判定の半径 double x, y; //座標 double spd; //速度 double angle; //角度 struct bullet_t *next; //自己参照構造体 } EXTERN struct bullet_t *head;//先頭ポインタしかしこのようにした場合も、『error C2236: 予期しない 'struct' 'eff_t' です。';' が入力されていることを確認してください。』というエラーが出てしまいます。
宣言が出来なければプログラム以前の問題で、解決するだけの知識もなくすっかりお手上げ状態となっています。
どうかご教示いただけたら幸いです。
使用ライブラリ:DXライブラリ
コンパイラ:Visual C++ 2008 Express Editions
※質問内容が不十分の場合はお申し付けください