Microsoft DirectX 8.0 (Visual Basic) |
単一軸エフェクトの方向の設定は、軸の方向だけを指定すればよいので、単純である。DIEFFECT 構造体の lFlags メンバに DIEFF_CARTESIAN フラグを設定し、エフェクトが来る方向に応じて、x または y メンバを 1 か -1 に設定する。
次のコードは、右から左の方向への x 軸エフェクトを設定する例である。
Dim eff As DIEFFECT eff.lFlags = DIEFF_CARTESIAN Or DIEFF_OBJECTOFFSETS eff.x = 1 eff.y = 0
極座標を使って同じエフェクトを簡単に設定することもできる。DIEFFECT 構造体の lFlags メンバに DIEFF_POLAR フラグを設定し、x メンバを 0、90、180、270 度のいずれかに設定する。
次のコードは、前の例に示したのと同じ x 軸エフェクトを設定する例である。
Dim eff As DIEFFECT eff.lFlags = DIEFF_POLAR Or DIEFF_OBJECTOFFSETS eff.x = 90 * DI_DEGREES eff.y = 0
極座標 2 軸エフェクトの方向の設定は、極座標単一軸エフェクトの場合と同じである。唯一異なるのは、実角度の値の範囲が 4 軸の値に制限されないことである。
次のコードは、ユーザーの右上を始点とするエフェクトを設定する例である。
Dim eff As DIEFFECT eff.lFlags = DIEFF_POLAR Or DIEFF_OBJECTOFFSETS eff.x = 45 * DI_DEGREES eff.y = 0
デカルト座標 2 軸エフェクトの方向の設定も単純である。まず、lFlags に DIEFF_CARTESIAN フラグを設定する。x メンバと y メンバには、そのポイントと始点 (0,0) を通る方向の線上にある任意のポイントの x 座標と y 座標が格納される。
次のコードは、前の例に示したのと同じエフェクトを設定する例である。
Dim eff As DIEFFECT eff.lFlags = DIEFF_CARTESIAN Or DIEFF_OBJECTOFFSETS eff.x = 1 eff.y = 2