playBgm keep

This commit is contained in:
oc 2019-07-06 01:20:31 +08:00
parent 931e24e1da
commit 9619325d12
4 changed files with 18 additions and 8 deletions

View File

@ -1433,6 +1433,8 @@ async可选如果为true则会异步执行即不等待当前事件执行
目前支持mp3/ogg/wav等多种格式的音乐播放。 目前支持mp3/ogg/wav等多种格式的音乐播放。
从V2.6.3开始还提供了keep项。如果此项为真则会记录该bgm并且持续到下次调用本事件位置楼层切换不改变bgm读档也有效
有关BGM播放的详细说明参见[背景音乐](element#背景音乐) 有关BGM播放的详细说明参见[背景音乐](element#背景音乐)
### pauseBgm暂停背景音乐 ### pauseBgm暂停背景音乐

View File

@ -1468,15 +1468,16 @@ return code;
*/; */;
playBgm_s playBgm_s
: '播放背景音乐' EvalString Newline : '播放背景音乐' EvalString '持续到下个本事件' Bool Newline
/* playBgm_s /* playBgm_s
tooltip : playBgm: 播放背景音乐 tooltip : playBgm: 播放背景音乐
helpUrl : https://h5mota.com/games/template/_docs/#/event?id=playbgm%EF%BC%9A%E6%92%AD%E6%94%BE%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=playbgm%EF%BC%9A%E6%92%AD%E6%94%BE%E8%83%8C%E6%99%AF%E9%9F%B3%E4%B9%90
default : ["bgm.mp3"] default : ["bgm.mp3", true]
colour : this.soundColor colour : this.soundColor
var code = '{"type": "playBgm", "name": "'+EvalString_0+'"},\n'; Bool_0 = Bool_0 ? ', "keep": true' : '';
var code = '{"type": "playBgm", "name": "'+EvalString_0+'"'+Bool_0+'},\n';
return code; return code;
*/; */;
@ -3069,7 +3070,7 @@ ActionParser.prototype.parseAction = function() {
break; break;
case "playBgm": case "playBgm":
this.next = MotaActionBlocks['playBgm_s'].xmlText([ this.next = MotaActionBlocks['playBgm_s'].xmlText([
data.name,this.next]); data.name,data.keep||false,this.next]);
break break
case "pauseBgm": case "pauseBgm":
this.next = MotaActionBlocks['pauseBgm_s'].xmlText([ this.next = MotaActionBlocks['pauseBgm_s'].xmlText([

View File

@ -1261,6 +1261,7 @@ events.prototype._action_insert = function (data, x, y, prefix) {
events.prototype._action_playBgm = function (data, x, y, prefix) { events.prototype._action_playBgm = function (data, x, y, prefix) {
core.playBgm(data.name); core.playBgm(data.name);
core.setFlag("__bgm__", data.keep ? data.name : null);
core.doAction(); core.doAction();
} }
@ -1820,11 +1821,15 @@ events.prototype.openToolbox = function (fromUserAction) {
events.prototype.openQuickShop = function (fromUserAction) { events.prototype.openQuickShop = function (fromUserAction) {
if (core.isReplaying()) return; if (core.isReplaying()) return;
if (Object.keys(core.status.shops).length == 0) {
core.drawTip("本塔没有快捷商店!");
return;
}
// --- 如果只有一个商店,则直接打开之 // --- 如果只有一个商店,则直接打开之
if (Object.keys(core.status.shops).length == 1) { if (Object.keys(core.status.shops).length == 1) {
var shopId = Object.keys(core.status.shops)[0]; var shopId = Object.keys(core.status.shops)[0];
if (core.status.event.id != null) return; if (core.status.event.id != null || !this._checkStatus('shop', false)) return;
if (!this._checkStatus('shop', false)) return;
var reason = core.events.canUseQuickShop(shopId); var reason = core.events.canUseQuickShop(shopId);
if (!core.flags.enableDisabledShop && reason) { if (!core.flags.enableDisabledShop && reason) {
core.drawText(reason); core.drawText(reason);

View File

@ -142,7 +142,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
if (core.status.maps[floorId].bgm) { if (core.status.maps[floorId].bgm) {
var bgm = core.status.maps[floorId].bgm; var bgm = core.status.maps[floorId].bgm;
if (bgm instanceof Array) bgm = bgm[0]; if (bgm instanceof Array) bgm = bgm[0];
core.playBgm(bgm); if (!core.hasFlag("__bgm__")) core.playBgm(bgm);
} }
// 更改画面色调 // 更改画面色调
var color = core.getFlag('__color__', null); var color = core.getFlag('__color__', null);
@ -1004,7 +1004,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 切换到对应的楼层 // 切换到对应的楼层
core.changeFloor(data.floorId, null, data.hero.loc, 0, function () { core.changeFloor(data.floorId, null, data.hero.loc, 0, function () {
// TODO可以在这里设置读档后播放BGM // TODO可以在这里设置读档后播放BGM
// if (core.getFlag("bgm", 0)==1) core.playBgm("bgm.mp3"); if (core.hasFlag("__bgm__")) { // 持续播放
core.playBgm(core.getFlag("__bgm__"));
}
if (callback) callback(); if (callback) callback();
}, true); }, true);