ページ 11

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

Posted: 2009年5月06日(水) 01:37
by ゆー
龍神録プログラミングについてなんですが、
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:龍神録プログラミング 構造体の改変

Posted: 2009年5月07日(木) 00:40
by ゆー
(´;ω;)

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

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

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

Posted: 2009年5月07日(木) 08:26
by dic
ゼロで初期化してますか?

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

Posted: 2009年5月09日(土) 00:50
by ゆー
デバッグモードからリリースモードにしてビルドしたら(何故か)正常に動作しました
どのような違いがこのような結果を生むのか分かりませんが^^;

ゼロ初期化はまだ試してないですが関係あるんですかね・・・?
//弾に関する構造体
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;
とりあえずはこんな感じになりました
まだ色々やってみたいことがあるのでプログラム理解しつつやってみたいです
ありがとうございましたー

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

Posted: 2009年5月09日(土) 08:31
by Dixq (管理人)
メンバの追加は仰るとおり単に追加していけばいいだけです。
龍神録のサンプルではなるべく避けましたが、メンバの数が多くなりすぎて解りにくくなる時は
そのメンバごとに構造体を作って構造体をさらに構造化するのもありだと思います。