• 大小: 3.38MB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2023-10-22
  • 语言: 其他
  • 标签: FMOD  sdk  2017  

资源简介

由于被墙了,在fmod官网貌似下载不了,找了很久才找到的一个版本;lib文件夹列表如下: 2017-10-13 17:35 . 2017-10-13 17:35 .. 2017-09-20 06:30 1,516,544 fmod.dll 2017-09-20 06:30 1,750,016 fmod64.dll 2017-09-20 06:30 345,192 fmod64_vc.lib 2017-09-20 06:30 1,694,720 fmodL.dll 2017-09-20 06:30 1,953,280 fmodL64.dll 2017-09-20 06:30 347,062 fmodL64_vc.lib 2017-09-20 06:30 356,066 fmodL_vc.lib 2017-09-20 06:30 354,230 fmod_vc.lib 2017-09-20 06:30 347,644 libfmod.a 2017-09-20 06:30 353,034 libfmodL.a

资源截图

代码片段和文件信息

/*==============================================================================
3D Example
Copyright (c) Firelight Technologies Pty Ltd 2004-2017.

This example shows how to basic 3D positioning of sounds.
==============================================================================*/
#include “fmod.hpp“
#include “common.h“

const int   INTERFACE_UPDATETIME = 50;      // 50ms update for interface
const float DISTANCEFACTOR = 1.0f;          // Units per meter.  I.e feet would = 3.28.  centimeters would = 100.

int FMOD_Main()
{
    FMOD::System    *system;
    FMOD::Sound     *sound1 *sound2 *sound3;
    FMOD::Channel   *channel1 = 0 *channel2 = 0 *channel3 = 0;
    FMOD_RESULT      result;
    bool             listenerflag = true;
    FMOD_VECTOR      listenerpos  = { 0.0f 0.0f -1.0f * DISTANCEFACTOR };
    unsigned int     version;
    void            *extradriverdata = 0;

    Common_Init(&extradriverdata);

    /*
        Create a System object and initialize.
    */
    result = FMOD::System_Create(&system);
    ERRCHECK(result);
    
    result = system->getVersion(&version);
    ERRCHECK(result);

    if (version < FMOD_VERSION)
    {
        Common_Fatal(“FMOD lib version %08x doesn‘t match header version %08x“ version FMOD_VERSION);
    }
    
    result = system->init(100 FMOD_INIT_NORMAL extradriverdata);
    ERRCHECK(result);
    
    /*
        Set the distance units. (meters/feet etc).
    */
    result = system->set3DSettings(1.0 DISTANCEFACTOR 1.0f);
    ERRCHECK(result);

    /*
        Load some sounds
    */
    result = system->createSound(Common_MediaPath(“drumloop.wav“) FMOD_3D 0 &sound1);
    ERRCHECK(result);
    result = sound1->set3DMinMaxDistance(0.5f * DISTANCEFACTOR 5000.0f * DISTANCEFACTOR);
    ERRCHECK(result);
    result = sound1->setMode(FMOD_LOOP_NORMAL);
    ERRCHECK(result);

    result = system->createSound(Common_MediaPath(“jaguar.wav“) FMOD_3D 0 &sound2);
    ERRCHECK(result);
    result = sound2->set3DMinMaxDistance(0.5f * DISTANCEFACTOR 5000.0f * DISTANCEFACTOR);
    ERRCHECK(result);
    result = sound2->setMode(FMOD_LOOP_NORMAL);
    ERRCHECK(result);

    result = system->createSound(Common_MediaPath(“swish.wav“) FMOD_2D 0 &sound3);
    ERRCHECK(result);

    /*
        Play sounds at certain positions
    */
    {
        FMOD_VECTOR pos = { -10.0f * DISTANCEFACTOR 0.0f 0.0f };
        FMOD_VECTOR vel = {  0.0f 0.0f 0.0f };

        result = system->playSound(sound1 0 true &channel1);
        ERRCHECK(result);
        result = channel1->set3DAttributes(&pos &vel);
        ERRCHECK(result);
        result = channel1->setPaused(false);
        ERRCHECK(result);
    }

    {
        FMOD_VECTOR pos = { 15.0f * DISTANCEFACTOR 0.0f 0.0f };
        FMOD_VECTOR vel = { 0.0f 0.0f 0.0f };

        result = system->playSound(sound2 0 true &channel2);
        ERRCHECK(result);
       

评论

共有 条评论