OpenGLの解説用
コンパイル方法
Ubuntu: $ make
Windows: $ make win
実行
Ubuntu: $ ./a.out
Windows: $ ./a.exe
実行ファイルやオブジェクトファイル(.o)などを消したい時
$ make clean
抽象クラスから派生させた子クラスは、抽象クラスの型で管理できる。 メソッドの呼び出しも抽象クラスのを呼び出すように使える。 というのを使って、ステージの切り替えができるようにするために作ったクラスです。
ステージごとにクラスを作るメリットは、他と独立して管理できること。 デメリットは状態の引き継ぎなどを全く考えてないこと。
Xファイルを読み込みます。内容は理解しなくていいです。 xファイルの構造やスキンメッシュについて理解が必要ですし相当時間がかかります。 アニメーションも一応読み込めます。Render()を呼ぶごとに勝手にアニメーションしてくれます。 なので、くねくねはくねくねします。
XLoaderには主に2つのクラスがあります。簡単に使い方を説明します。
-
XModel Xファイルからモデルを読み込む
*bool Load(char filename, bool AnimOnly) モデルを読み込む
filename : 読み込むファイルへのパス
AnimOnly : アニメーションのみを読み込むときはture。普通はfalseを指定する。void Render(float scale=1.0f) モデルを表示する
scale : 表示倍率。なにも指定しない場合は1倍。 -
XObj XModelを楽に扱うためのクラス。一つのモデルから何個でも作成可能。
*setXModel(XModel m) Xモデルの登録
m : 管理するXModelクラスを指定。Render() モデルを表示する
(引数なし)倍率は1倍。以下、メンバ変数。型はVector3、(メンバに float x,y,z をもつ)
pos 表示位置
angle 回転角度
offset ズレ調整用。思った通りの位置に表示されない時にいじる
ここまで、Render()で使われる変数。以下は内部では使われないので個人で自由につかう。
speed 移動速度。当たり判定用。
force かかっている力。
ただし、今回この2つの変数は使われ方が適当です。物理的に。
SKSunshineでも適当なのですが、うまく行ってるんでほってる状態。。
クラス以外でよく使うもの
Vector3 3次元ベクトル。定義はXLoader.h内。オペレーターがいろいろ定義してあって使いやすくなってる。