找回密码
 点一下
查看: 3639|回复: 12

关于音效

[复制链接]
发表于 2008-7-18 10:58:40 | 显示全部楼层 |阅读模式
       也许大多数人都会对音效不屑以顾,认为使用音效很简单,在声音管理器里应用,然后再在触发器里调用就行了,如果你只需要在一个时间内播放一个这样的音效那么声音管理器+触发器完全可以满足你的需要,而如果需要叠音效果的话,光这样可不行。
首先你必须用CreateSound这函数:

[codes=jass] native CreateSound takes string fileName, boolean looping, boolean is3D, boolean stopwhenoutofrange, integer fadeInRate, integer fadeOutRate, string eaxSetting returns sound[/codes] (这是我见过最长的函数了。。)

代表:先是文件名,是否循环,是否是3d,是否超出范围就听不见了,淡入率,淡出率,通道?(其实你可以参考声音管理器,声音管理器的选项比这多,它的功能比这函数强大,就像在双击地图一个单位时有营地范围,掉落物品等选项一样。。虽然是CreateUnit创造了他,但地图的设置还有辅助功能)
原理:其实我们在声音管理器中应用一个声音就是使用了PlaySound(见下)这个函数,就像在地图上放置一个单位,而如果是单位的话你会很清楚他被预设的单一性(现在已经很少有地图不会后来增加兵了。。兵营里造出来也等于后加的了),而声音被预设了以后再播放的时间内是无法再次被播放的(就像你放个步兵不可能让他同时攻击2个目标),所以你需要后来创建声音

[codes=jass] function PlaySound takes string soundName returns nothing
//声音管理器中应用声音的函数
    local sound soundHandle = CreateSound(soundName, false, false, true, 12700, 12700, "")
    call StartSound(soundHandle)
    call KillSoundWhenDone(soundHandle)
endfunction [/codes]

那么究竟我们应该如何运用呢?下面举个3D音效的例子。。

[codes=jass] function TmdPlaySound takes real X,real Y,string fileName returns nothing()
    set bj_lastPlayedSound = CreateSound(fileName, false, true, true, 12700, 12700, "")
    call SetSoundPosition (bj_lastPlayedSound,X, Y, 0)
    call SetSoundVolume(bj_lastPlayedSound,127)
    call StartSound(bj_lastPlayedSound)
    call KillSoundWhenDone(bj_lastPlayedSound)
endfunction [/codes]

建立完这个函数后只需要call TmdPlaySound( X,Y,fileName)就能使用一个可以如同于局部变量的3D音效了
fileName这个就如同你创建特效路径一样需要完整的比如:

[codes=jass] call TmdPlaySound(GetLocation X(p),GetLocationY(p),"Abilities\\Weapons\\Arrow\\ArrowAttack1.wav") [/codes]

如果你事先就知道那你就无视这贴吧,但如果你不知道.....我也不能逼你看....
本人第一次写教程。。好有成就感。。有什么不对还请指出,另外怎么用JASS的格式。。
恩。。讲完了

评分

参与人数 1威望 +25 收起 理由
喀尔硫司之瞳 + 25 原创内容

查看全部评分

发表于 2008-7-18 11:01:13 | 显示全部楼层
支持了     
现在大家大多只用音乐做背景音乐使用
其他的嘛很少了。。。。不过要想做的有特色些
这些也都是蛮好的选择
回复

使用道具 举报

发表于 2008-7-18 11:14:03 | 显示全部楼层
说得很好啊,啊哈哈哈!
回复

使用道具 举报

发表于 2008-7-18 11:19:10 | 显示全部楼层
引用第1楼喀尔硫司之瞳于2008-07-18 11:01发表的  :
支持了     
现在大家大多只用音乐做背景音乐使用
其他的嘛很少了。。。。不过要想做的有特色些
这些也都是蛮好的选择
其实真三什么图导入很多音效的
回复

使用道具 举报

发表于 2008-7-18 12:11:51 | 显示全部楼层
- -   傻龙。。。。。不要把你的垃圾图。。。提出来。。。。
回复

使用道具 举报

发表于 2008-7-18 13:14:58 | 显示全部楼层
楼上………………
回复

使用道具 举报

发表于 2008-7-18 18:24:04 | 显示全部楼层
话说傻龙的真三还木玩过呢...
回复

使用道具 举报

发表于 2008-7-18 19:34:11 | 显示全部楼层
收藏
回复

使用道具 举报

发表于 2008-8-5 13:43:12 | 显示全部楼层
好东西,很重要
回复

使用道具 举报

发表于 2008-11-18 01:39:39 | 显示全部楼层
请恕我挖坟~~

这个临时生成的声音,有一个很大的缺陷,就是第一次播放时会听不到声音,估计是需要加载
如果你结束游戏但不退出魔兽,那么第一次播放就能听到声音了
回复

使用道具 举报

 楼主| 发表于 2008-11-18 17:45:48 | 显示全部楼层
那你就预先放一次。。
回复

使用道具 举报

发表于 2008-11-18 20:23:37 | 显示全部楼层
引用第10楼variable.z于2008-11-18 17:45发表的  :
那你就预先放一次。。

如前面所说的,如果不退出魔兽重新加载这个地图,那么第一次播放就有声音
预先播放的时候就能听到了。。。
回复

使用道具 举报

发表于 2008-11-30 22:14:54 | 显示全部楼层
preload一次就可以了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-4 16:44 , Processed in 0.039512 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表