游戏开发-声音篇(最简单的 FMOD 应用)
来源:互联网 发布:cad软件是什么 编辑:程序博客网 时间:2024/04/29 16:07
游戏开发-声音篇(最简单的 FMOD 应用)
最近两天学校断网,呵呵,(杯具),自己把以前的文档拿出来翻了翻,FMOD是一
个游戏声音引擎,其实自己早就下载安装了FMOD,只是自己一直没用(说真的感谢
断网,呵呵),更别提怎么编码了,迟到今天才写了一个FMOD程序,感觉没那么难
(当然只是,很简单的运用FMOD加载一首歌曲而已),没别的功能,更别提3D效果
了,好了看看我搭建的开发平台吧!
我的开发平台一直是 visual studio 2008 + FMOD,其实FMOD只需下载
SDK 开发包安装好就可以了,有关Fmod的介绍请浏览 官网
其实玩过的魔兽世界听说声音用的是 Fmod引擎。下载安装好后,里面已经有库文件
打开api 文件夹
在VS开发平台选择下,我选择的是fmodex.dll 此时还需要 lib文件夹下的
fmodex_vc.lib 静态库文件有了这些文件之后,就可以进行到最为激动地时刻--编
码。
编码前需要把fmodex.dll,fmodex_vc.lib添加到工程目录中并设置 附加依赖项
fmodex_vc.lib
拷贝E:/FMOD Programmers API Win32/api/inc下的头文件到自己的工程目录下,并
全部添加到自己的工程中,编写代码:
- #include "fmod.hpp"
- #include "fmod_errors.h"
- #include <stdio.h>
- #include <windows.h>
- #include <conio.h>
- void ERRCHECK(FMOD_RESULT result)
- {
- if (result != FMOD_OK)
- {
- printf("FMOD error! (%d) %s/n", result, FMOD_ErrorString(result));
- exit(-1);
- }
- }
- int main()
- {
- FMOD_RESULT result;
- FMOD::System * system;
- // 创建Fmod主系统
- result = FMOD::System_Create(&system);
- if (result != FMOD_OK)
- {
- printf("FMOD error! (%d) %s/n", result, FMOD_ErrorString(result));
- exit(-1);
- }
- // 初始化Fmod系统init方法
- result = system->init(1,FMOD_INIT_NORMAL,0);
- if (result != FMOD_OK)
- {
- printf("FMOD error! (%d) %s/n", result, FMOD_ErrorString(result));
- exit(-1);
- }
- // 检测版本号,支持吗?
- unsigned int version;
- result = system->getVersion(&version);
- ERRCHECK(result);
- if (version < FMOD_VERSION)
- {
- printf("Error! You are using an old version of FMOD %08x. This program requires %08x/n", version, FMOD_VERSION);
- return 0;
- }
- // 加载媒体文件并播放
- FMOD::Sound *sound;
- result = system->createStream("media/许嵩 - 城府.mp3",FMOD_3D,0,&sound);
- // 其他格式:FMOD_NONBLOCKING
- ERRCHECK(result);
- FMOD::Channel *channel;// 定义Channel对象
- // 计算媒体文件的长度
- unsigned int lenms;
- result = sound->getLength(&lenms, FMOD_TIMEUNIT_MS);
- ERRCHECK(result);
- printf("Total CD length %02d:%02d/n/n", lenms / 1000 / 60, lenms / 1000 % 60, lenms / 10 % 100);
- result = system->playSound(FMOD_CHANNEL_FREE,sound,false,&channel);
- Sleep(lenms*60*1000);//一定要sleep一下,要不然程序马上返回了,听不到声音,呵呵
- ERRCHECK(result);
- return 0;
- }
最后工程目录为:
其实查看Fmod Ex 文档, documentation里面的tutorial写的已经很详细。本人只
是按部就班而已。
谨以此文献给那些入门级的code man。
- 游戏开发-声音篇(最简单的 FMOD 应用)
- FMOD.一款易用的声音引擎
- 最简单的HiveMind开发应用
- 【HGE 教程03】简单的游戏声音
- Ogre 使用声音最简单的方法
- Ogre 使用声音最简单的方法
- Ogre中使用FMOD作为声音引擎(一)
- [DirectX游戏开发笔记之二] 最简单的DirectX
- FMOD音频引擎的简单使用
- Android应用开发的最简单的思路
- C语言播放声音最简单的两种方法
- 【游戏编程】分享一个FMOD 的编程实例
- android 游戏开发之声音
- android 游戏开发中的声音
- 最简单、简易的android音乐播放器,android开发应用之(音乐播放)
- android游戏开发系列(1)——迅雷不及掩耳的声音
- 游戏开发技术总结(经典之作)第九集 狩猎谋生-----声音播放和游戏角色的碰撞检测
- 最简单C语言的扫雷地图(不是游戏)
- 利用异常处理循环……
- SQL中CASE的用法
- 标量值函数的用法
- Hibernate_day1
- vector string
- 游戏开发-声音篇(最简单的 FMOD 应用)
- 双实线会员拼车流程图帮助
- 项目碎想
- 星期二
- java连接sqlserver,并通过生日(日期)搜索数据库中的数据
- 高中毕业前一定要做的22件事情
- memcopy和memmove 区别
- 好好学习
- Hibernate_day2