Microsoft DirectX 8.0 (Visual Basic) |
エフェクト オブジェクトを生成するには、DirectInputDevice8.CreateEffect メソッドを使用する。次のサンプル コードでは、didev はDirectInputDevice8 オブジェクトを指している。この例では、半秒間に全力でジョイスティックをユーザーから離れる方向へ引くという、非常に単純なエフェクトが生成される。
Dim effectInfo As DIEFFECT Dim objDIEffect As DirectInputEffect With effectInfo .constantForce.lMagnitude = 10000 .lGain = 10000 .lDuration = 500000 .x = 18000 .lTriggerButton = -1 ' トリガ ボタンなし End With didev.Acquire Set objDIEffect = didev.CreateEffect("GUID_ConstantForce", effectInfo)
最初のパラメータには、事前定義された GUID の 1 つ、または、ハードウェア ドキュメントや DirectInputEnumEffects.GetEffectGuid メソッドで列挙されたエフェクトとして取得された、文字列形式の実際の GUID を使用できる。
DIEFFECT 型のうち使用するメンバは、エフェクトの種類によって異なる。コンスタント フォースは、単一のタイプ固有のパラメータのみを要求する、最も単純なフォースである。lGain、lDuration、および lTriggerButton の各メンバは、すべてのエフェクトに設定しなければならない。これらのメンバのデフォルト値はゼロであるが、通常は適切ではないためである。
デフォルトでは、エフェクトの方向は極座標で表される。つまり、DIEFFECT.x がフォースの来る方向を 100 分の 1 度単位で保持し、DIEFFECT.y はゼロでなければならない。
デバイスが満杯ではなく、排他協調レベルで取得されたなら、エフェクトは作成時にデバイスに自動的にダウンロードされる。