setVolume fade
This commit is contained in:
parent
4c80ff3004
commit
bd2340168c
@ -927,15 +927,16 @@ return code;
|
|||||||
*/;
|
*/;
|
||||||
|
|
||||||
setVolume_s
|
setVolume_s
|
||||||
: '设置音量' Int Newline
|
: '设置音量' Int '渐变时间' Int? Newline
|
||||||
|
|
||||||
|
|
||||||
/* setVolume_s
|
/* setVolume_s
|
||||||
tooltip : setVolume: 设置音量
|
tooltip : setVolume: 设置音量
|
||||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setvolume%EF%BC%9A%E8%AE%BE%E7%BD%AE%E9%9F%B3%E9%87%8F
|
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=setvolume%EF%BC%9A%E8%AE%BE%E7%BD%AE%E9%9F%B3%E9%87%8F
|
||||||
default : [90]
|
default : [90, 500]
|
||||||
colour : this.soundColor
|
colour : this.soundColor
|
||||||
var code = '{"type": "setVolume", "value": '+Int_0+'},\n';
|
Int_1 = Int_1?(', "time": '+Int_1):""
|
||||||
|
var code = '{"type": "setVolume", "value": '+Int_0+Int_1+'},\n';
|
||||||
return code;
|
return code;
|
||||||
*/;
|
*/;
|
||||||
|
|
||||||
@ -1641,7 +1642,7 @@ ActionParser.prototype.parseAction = function() {
|
|||||||
break
|
break
|
||||||
case "setVolume":
|
case "setVolume":
|
||||||
this.next = MotaActionBlocks['setVolume_s'].xmlText([
|
this.next = MotaActionBlocks['setVolume_s'].xmlText([
|
||||||
data.value, this.next]);
|
data.value, data.time, this.next]);
|
||||||
break
|
break
|
||||||
case "setValue":
|
case "setValue":
|
||||||
this.next = MotaActionBlocks['setValue_s'].xmlText([
|
this.next = MotaActionBlocks['setValue_s'].xmlText([
|
||||||
|
|||||||
@ -193,6 +193,8 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
|||||||
|
|
||||||
导出动画时可能会进行一些压缩以节省流量,因此清晰度可能不如原版。
|
导出动画时可能会进行一些压缩以节省流量,因此清晰度可能不如原版。
|
||||||
|
|
||||||
|
从2.3.2开始,动画可以同时导出所用的音效。**如果导出音效,请确保将所用到的音效复制到了`sounds`目录下,并且在全塔属性中注册过。**
|
||||||
|
|
||||||
动画播放时,是按照每秒20帧的速度(即50ms/帧)。
|
动画播放时,是按照每秒20帧的速度(即50ms/帧)。
|
||||||
|
|
||||||
定义完毕后,我们可以调用`animate`事件来播放该动画,有关事件的详细介绍请参见[事件](event)。
|
定义完毕后,我们可以调用`animate`事件来播放该动画,有关事件的详细介绍请参见[事件](event)。
|
||||||
|
|||||||
@ -939,10 +939,12 @@ time选项为该跳跃所需要用到的时间。
|
|||||||
|
|
||||||
使用setVolume可以设置音量大小。
|
使用setVolume可以设置音量大小。
|
||||||
|
|
||||||
使用方法: `{"type": "setVolume", "value": 90}`
|
使用方法: `{"type": "setVolume", "value": 90, "time": 500}`
|
||||||
|
|
||||||
value为音量大小,在0到100之间,默认为100。设置后,BGM和SE都将使用该音量进行播放。
|
value为音量大小,在0到100之间,默认为100。设置后,BGM和SE都将使用该音量进行播放。
|
||||||
|
|
||||||
|
可以设置time为音量渐变时间。
|
||||||
|
|
||||||
### win:获得胜利
|
### win:获得胜利
|
||||||
|
|
||||||
`{"type": "win", "reason": "xxx"}` 将会直接调用events.js中的win函数,并将reason作为结局传入。
|
`{"type": "win", "reason": "xxx"}` 将会直接调用events.js中的win函数,并将reason作为结局传入。
|
||||||
|
|||||||
@ -654,14 +654,11 @@ events.prototype.doAction = function() {
|
|||||||
break
|
break
|
||||||
case "setVolume":
|
case "setVolume":
|
||||||
data.value = parseInt(data.value||0);
|
data.value = parseInt(data.value||0);
|
||||||
|
if (data.value<0) data.value=0;
|
||||||
if (data.value>100) data.value=100;
|
if (data.value>100) data.value=100;
|
||||||
data.value = data.value / 100;
|
this.setVolume(data.value/100, data.time, function() {
|
||||||
core.musicStatus.volume = data.value;
|
core.doAction();
|
||||||
if (core.isset(core.musicStatus.playingBgm)) {
|
});
|
||||||
core.material.bgms[core.musicStatus.playingBgm].volume = data.value;
|
|
||||||
}
|
|
||||||
core.musicStatus.gainNode.gain.value = data.value;
|
|
||||||
this.doAction();
|
|
||||||
break;
|
break;
|
||||||
case "setValue":
|
case "setValue":
|
||||||
try {
|
try {
|
||||||
@ -1272,6 +1269,38 @@ events.prototype.moveImage = function (image, from, to, time, callback) {
|
|||||||
}, time / 64);
|
}, time / 64);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////// 淡入淡出音乐 //////
|
||||||
|
events.prototype.setVolume = function (value, time, callback) {
|
||||||
|
|
||||||
|
var set = function (value) {
|
||||||
|
core.musicStatus.volume = value;
|
||||||
|
if (core.isset(core.musicStatus.playingBgm)) {
|
||||||
|
core.material.bgms[core.musicStatus.playingBgm].volume = value;
|
||||||
|
}
|
||||||
|
core.musicStatus.gainNode.gain.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!core.isset(time) || time<100) {
|
||||||
|
set(value);
|
||||||
|
if (core.isset(callback)) callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
core.status.replay.animate=true;
|
||||||
|
var currVolume = core.musicStatus.volume;
|
||||||
|
var step = 0;
|
||||||
|
var fade = setInterval(function () {
|
||||||
|
step++;
|
||||||
|
var nowVolume = currVolume+(value-currVolume)*step/32;
|
||||||
|
set(nowVolume);
|
||||||
|
if (step>=32) {
|
||||||
|
clearInterval(fade);
|
||||||
|
core.status.replay.animate=false;
|
||||||
|
if (core.isset(callback))
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}, time / 32);
|
||||||
|
}
|
||||||
|
|
||||||
////// 打开一个全局商店 //////
|
////// 打开一个全局商店 //////
|
||||||
events.prototype.openShop = function(shopId, needVisited) {
|
events.prototype.openShop = function(shopId, needVisited) {
|
||||||
var shop = core.status.shops[shopId];
|
var shop = core.status.shops[shopId];
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user