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等多种格式的音乐播放。
从V2.6.3开始还提供了keep项。如果此项为真则会记录该bgm并且持续到下次调用本事件位置楼层切换不改变bgm读档也有效
有关BGM播放的详细说明参见[背景音乐](element#背景音乐)
### pauseBgm暂停背景音乐

View File

@ -1468,15 +1468,16 @@ return code;
*/;
playBgm_s
: '播放背景音乐' EvalString Newline
: '播放背景音乐' EvalString '持续到下个本事件' Bool Newline
/* playBgm_s
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
default : ["bgm.mp3"]
default : ["bgm.mp3", true]
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;
*/;
@ -3069,7 +3070,7 @@ ActionParser.prototype.parseAction = function() {
break;
case "playBgm":
this.next = MotaActionBlocks['playBgm_s'].xmlText([
data.name,this.next]);
data.name,data.keep||false,this.next]);
break
case "pauseBgm":
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) {
core.playBgm(data.name);
core.setFlag("__bgm__", data.keep ? data.name : null);
core.doAction();
}
@ -1820,11 +1821,15 @@ events.prototype.openToolbox = function (fromUserAction) {
events.prototype.openQuickShop = function (fromUserAction) {
if (core.isReplaying()) return;
if (Object.keys(core.status.shops).length == 0) {
core.drawTip("本塔没有快捷商店!");
return;
}
// --- 如果只有一个商店,则直接打开之
if (Object.keys(core.status.shops).length == 1) {
var shopId = Object.keys(core.status.shops)[0];
if (core.status.event.id != null) return;
if (!this._checkStatus('shop', false)) return;
if (core.status.event.id != null || !this._checkStatus('shop', false)) return;
var reason = core.events.canUseQuickShop(shopId);
if (!core.flags.enableDisabledShop && reason) {
core.drawText(reason);

View File

@ -142,7 +142,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
if (core.status.maps[floorId].bgm) {
var bgm = core.status.maps[floorId].bgm;
if (bgm instanceof Array) bgm = bgm[0];
core.playBgm(bgm);
if (!core.hasFlag("__bgm__")) core.playBgm(bgm);
}
// 更改画面色调
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 () {
// TODO可以在这里设置读档后播放BGM
// if (core.getFlag("bgm", 0)==1) core.playBgm("bgm.mp3");
if (core.hasFlag("__bgm__")) { // 持续播放
core.playBgm(core.getFlag("__bgm__"));
}
if (callback) callback();
}, true);