// updates the listener position, orientation, etc. for direct sound 3D.
HRESULT DS3DSoundEngine::UpdateListener()
{
    HRESULT hr;
    DS3DLISTENER listenerdata;

    listenerdata.dwSize = sizeof(listenerdata);
    listenerdata.flDistanceFactor = m_fDistanceFactor;
    listenerdata.flDopplerFactor = m_fDopplerFactor;
    listenerdata.flRolloffFactor = m_fRolloffFactor;
    
    Vector vectPosition;
    hr = m_plistener->GetPosition(vectPosition);
    if (ZFailed(hr)) return hr;
    ConvertVector(listenerdata.vPosition, vectPosition);

    Vector vectVelocity;
    hr = m_plistener->GetVelocity(vectVelocity);
    if (ZFailed(hr)) return hr;
    ConvertVector(listenerdata.vVelocity, vectVelocity);

    Vector vectOrientation;
    hr = m_plistener->GetOrientation(vectOrientation);
    if (ZFailed(hr)) return hr;
    ZAssertIsUnitVector(vectOrientation);
    ConvertVector(listenerdata.vOrientFront, vectOrientation);

    Vector vectUp;
    hr = m_plistener->GetUpDirection(vectUp);
    if (ZFailed(hr)) return hr;
    ZAssertIsUnitVector(vectUp);
    ConvertVector(listenerdata.vOrientTop, vectUp);

    return m_pDSListener->SetAllParameters(&listenerdata, DS3D_DEFERRED);
};
示例#2
0
void UILoadGraphic::SetPosition(const Vec2i& position)
{

	Vec2f p = ConvertVector(position);

	sprite.SetPosition(p);
	pie.SetPosition(p);

	UIWidget::SetPosition(position);

}