龍神録プログラミング 構造体の改変

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
ゆー

龍神録プログラミング 構造体の改変

#1

投稿記事 by ゆー » 16年前

龍神録プログラミングについてなんですが、
struct.cppの以下の構造体に、新しくメンバを追加することは可能でしょうか?
//弾に関する構造体
typedef struct{
	//フラグ、種類、カウンタ、色、状態、少なくとも消さない時間、エフェクトの種類
	int flag,knd, cnt, col, state, till, eff, kaiten, eff_detail;
	int cnt_till, cnt_stt;
	//座標、角度、速度、ベースの角度、一時記憶スピード
	double x, y, vx, vy, angle, spd, base_angle[1], rem_spd[1];
	int c_flag;
	double cx, cy;
	//■このあたりにメンバを追加したいんです。(例えば加速度adspdとか適当に)
	// やってみるとエラーにはなりませんでしたが弾の挙動がおかしくなってしまいます…
	// ここに宣言してしまうと画面上に表示される弾が1つだけになり
	// 先頭で宣言してしまうと画面上に表示される弾が全く動かなくなります
}bullet_t;

そもそもC言語の知識が浅はかなもので構造体について基礎知識程度にしか無い初心者です^^;
もしかしたらとんでもない勘違いをしているかもしれないですが…


通りすがり

Re:龍神録プログラミング 構造体の改変

#3

投稿記事 by 通りすがり » 16年前

私も同じような事になった事があるのですが、不具合が出るファイルを保存してVC++を終了させてから、再度VC++を起動してコンパイルしたら直りませんか?
もしくは、デバックモードからリリースモードに変えてみるとか。

dic

Re:龍神録プログラミング 構造体の改変

#4

投稿記事 by dic » 16年前

ゼロで初期化してますか?

ゆー

Re:龍神録プログラミング 構造体の改変

#5

投稿記事 by ゆー » 16年前

デバッグモードからリリースモードにしてビルドしたら(何故か)正常に動作しました
どのような違いがこのような結果を生むのか分かりませんが^^;

ゼロ初期化はまだ試してないですが関係あるんですかね・・・?
//弾に関する構造体
typedef struct{
	//フラグ、種類、カウンタ、色、状態、少なくとも消さない時間、エフェクトの種類
	int flag,knd, cnt, col, state, till, eff, kaiten, eff_detail;
	int cnt_till, cnt_stt;
	//座標、角度、速度、ベースの角度、一時記憶スピード、加速度、最大速度
	double x, y, vx, vy, angle, spd, base_angle[1], rem_spd[1];
	int c_flag;
	double cx, cy;
	double addspeed, limspeed;
}bullet_t;
とりあえずはこんな感じになりました
まだ色々やってみたいことがあるのでプログラム理解しつつやってみたいです
ありがとうございましたー

Dixq (管理人)

Re:龍神録プログラミング 構造体の改変

#6

投稿記事 by Dixq (管理人) » 16年前

メンバの追加は仰るとおり単に追加していけばいいだけです。
龍神録のサンプルではなるべく避けましたが、メンバの数が多くなりすぎて解りにくくなる時は
そのメンバごとに構造体を作って構造体をさらに構造化するのもありだと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る