忍者ブログ
MASTER →  ADMIN / NEW ENTRY / COMMENT
HSPとC++にて製作中のシューティングゲームの開発日記など。 最近はプログラム雑記が多めです。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

こんばんは。
昨日買ったDISSIDIAにハマり気味です。
時間無いのに何やってるんだろう・・・。

(´・ω・ノ)ノオイトイテ

さて先日書いたヘッダの記事のその後について~。

・テクスチャ読み込みクラス
・DirectMusicクラス
・DirectSoundクラス
・DirectInputクラス

この4つをヘッダとソースに分けて外に出した結果メインのソースは3400行になりました。
あんまり変ってないですね・・・。
描画関数周りも外に出したいのですがいろいろ面倒な事になります。。。
とりあえず、C++はやってる時間が無くなりそうな気がしてます・・・。

拍手[0回]

PR
 さっき始めて知ったソースとヘッダーの関係。
ヘッダーは使用するソースにインクルードする必要あるのに
ソースはプロジェクトに入れとくだけで勝手にまとめてくれるんですね・・・。
HSPだと全部繋げる必要あったのでその流れでずっと考えてました。
ヘッダがそもそも無いので当然と言えば当然ですが驚きです。
ついでなのでヘッダーのまとめ。

ヘッダーに書けるもの(この時点でメモリが確保されない物が相当)

・クラス定義
(※ただしメンバ関数の中身はソースに記述)
・#define文
・enumや実体を伴わない構造体

ヘッダーに書けないもの(実体を作る物は基本NG)

・メモリを使うもの
(例えばグローバル変数定義とか構造体定義とか)
int abc;
struct ABC {
          int aaa;
}xyz;
実際に書くとこんな感じかな・・・。
もし、int abcをヘッダに書きたいときは
extern int abc と書く。
この後必ずソースで実体を定義しなければならない
この他にグローバル関数も記述してはいけない。

ヘッダの重複コンパイルを防ぐために
#ifndef ABCDE
#define ABCDE

// ヘッダの中身

#endif         // ~ABCDE
と記述すると複数コンパイルされるのを防げる。
ABCDEは任意の文字。
ちなみに最初の文を #ifdef にしてしまうとヘッダがコンパイルされない。
この間違いをして壮絶な事になりました・・・||orz

どうしてヘッダの事を調べてるのかと言うと・・・
ZFのソースを一つのソースに書いてVSが異常に重くなってきたからです・・・。
細分化前が4000行で今チマチマヘッダと他のソースに細分化中です。
さて、一体何行まで減らせるのでしょうね・・・

拍手[0回]

 メモメモ。
DirectXの角度について~。
方向弾を作るには、飛ばしたい角度θ(ラジアン)に
x速度=cos(θ)
y速度=sin(θ)
度で求めたい時はcos( (D3DX_PI * 度) / 180 )で求まる。
※D3DX_PIはDirectXで定義されているπ(3.14・・・)
DirectXでの0度はどこから始まるかと言うと以下参照。
directx_angle.PNG

HSPDXとはまた異なっていますね・・・。
角度のメモ終了。

拍手[0回]

忍者ブログ [PR]