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 軸エフェクト

極座標 2 軸エフェクトの方向の設定は、極座標単一軸エフェクトの場合と同じである。唯一異なるのは、実角度の値の範囲が 4 軸の値に制限されないことである。

次のコードは、ユーザーの右上を始点とするエフェクトを設定する例である。

Dim eff As DIEFFECT
    
eff.lFlags = DIEFF_POLAR Or DIEFF_OBJECTOFFSETS
eff.x = 45 * DI_DEGREES
eff.y = 0

デカルト座標での 2 軸エフェクト

デカルト座標 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