Support flag in loc & Replay 6x
This commit is contained in:
parent
c4a5c5889c
commit
9beec9f3ce
@ -650,7 +650,7 @@ return code;
|
||||
*/
|
||||
|
||||
animateImage_0_s
|
||||
: '图片淡入' EvalString '起点像素位置' 'x' Number 'y' Number '动画时间' Int Newline
|
||||
: '图片淡入' EvalString '起点像素位置' 'x' PosString 'y' PosString '动画时间' Int Newline
|
||||
;
|
||||
|
||||
/* animateImage_0_s
|
||||
@ -658,12 +658,12 @@ tooltip : animageImage:图片淡入
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animateimage%ef%bc%9a%e5%9b%be%e7%89%87%e6%b7%a1%e5%85%a5%e6%b7%a1%e5%87%b
|
||||
default : ["bg.jpg",0,0,500]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "animateImage", "action": "show", "name": "'+EvalString_0+'", "loc": ['+Number_0+','+Number_1+'], "time": '+Int_0+'},\n';
|
||||
var code = '{"type": "animateImage", "action": "show", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+'], "time": '+Int_0+'},\n';
|
||||
return code;
|
||||
*/
|
||||
|
||||
animateImage_1_s
|
||||
: '图片淡出' EvalString '起点像素位置' 'x' Number 'y' Number '动画时间' Int Newline
|
||||
: '图片淡出' EvalString '起点像素位置' 'x' PosString 'y' PosString '动画时间' Int Newline
|
||||
;
|
||||
|
||||
/* animateImage_1_s
|
||||
@ -671,12 +671,12 @@ tooltip : animageImage:图片淡出
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=animateimage%ef%bc%9a%e5%9b%be%e7%89%87%e6%b7%a1%e5%85%a5%e6%b7%a1%e5%87%b
|
||||
default : ["bg.jpg",0,0,500]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "animateImage", "action": "hide", "name": "'+EvalString_0+'", "loc": ['+Number_0+','+Number_1+'], "time": '+Int_0+'},\n';
|
||||
var code = '{"type": "animateImage", "action": "hide", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+'], "time": '+Int_0+'},\n';
|
||||
return code;
|
||||
*/
|
||||
|
||||
showGif_0_s
|
||||
: '显示动图' EvalString '起点像素位置' 'x' Number 'y' Number Newline
|
||||
: '显示动图' EvalString '起点像素位置' 'x' PosString 'y' PosString Newline
|
||||
;
|
||||
|
||||
/* showGif_0_s
|
||||
@ -684,7 +684,7 @@ tooltip : showGif:显示动图
|
||||
helpUrl : https://ckcz123.github.io/mota-js/#/event?id=showgif%ef%bc%9a%e6%98%be%e7%a4%ba%e5%8a%a8%e5%9b%be
|
||||
default : ["bg.gif",0,0]
|
||||
colour : this.printColor
|
||||
var code = '{"type": "showGif", "name": "'+EvalString_0+'", "loc": ['+Number_0+','+Number_1+']},\n';
|
||||
var code = '{"type": "showGif", "name": "'+EvalString_0+'", "loc": ['+PosString_0+','+PosString_1+']},\n';
|
||||
return code;
|
||||
*/
|
||||
|
||||
|
||||
@ -583,9 +583,14 @@ control.prototype.setHeroMoveInterval = function (direction, x, y, callback) {
|
||||
'down': {'x': 0, 'y': 1},
|
||||
'right': {'x': 1, 'y': 0}
|
||||
};
|
||||
|
||||
var toAdd = 1;
|
||||
if (core.status.replay.speed>3)
|
||||
toAdd = 2;
|
||||
|
||||
core.interval.heroMoveInterval = window.setInterval(function () {
|
||||
core.status.heroMoving++;
|
||||
if (core.status.heroMoving==8) {
|
||||
core.status.heroMoving+=toAdd;
|
||||
if (core.status.heroMoving>=8) {
|
||||
core.setHeroLoc('x', x+scan[direction].x);
|
||||
core.setHeroLoc('y', y+scan[direction].y);
|
||||
core.moveOneStep();
|
||||
@ -595,7 +600,7 @@ control.prototype.setHeroMoveInterval = function (direction, x, y, callback) {
|
||||
core.status.heroMoving = 0;
|
||||
if (core.isset(callback)) callback();
|
||||
}
|
||||
}, 12.5 / core.status.replay.speed);
|
||||
}, 12.5 * toAdd / core.status.replay.speed);
|
||||
}
|
||||
|
||||
////// 实际每一步的行走过程 //////
|
||||
@ -1428,8 +1433,9 @@ control.prototype.resumeReplay = function () {
|
||||
control.prototype.speedUpReplay = function () {
|
||||
if (core.status.event.id=='save') return;
|
||||
if (!core.status.replay.replaying) return;
|
||||
core.status.replay.speed = parseInt(10*core.status.replay.speed + 1)/10;
|
||||
if (core.status.replay.speed>3.0) core.status.replay.speed=3.0;
|
||||
var toAdd = core.status.replay.speed>2?2:1;
|
||||
core.status.replay.speed = parseInt(10*core.status.replay.speed + toAdd)/10;
|
||||
if (core.status.replay.speed>6.0) core.status.replay.speed=6.0;
|
||||
core.drawTip("x"+core.status.replay.speed+"倍");
|
||||
}
|
||||
|
||||
@ -1437,7 +1443,8 @@ control.prototype.speedUpReplay = function () {
|
||||
control.prototype.speedDownReplay = function () {
|
||||
if (core.status.event.id=='save') return;
|
||||
if (!core.status.replay.replaying) return;
|
||||
core.status.replay.speed = parseInt(10*core.status.replay.speed - 1)/10;
|
||||
var toAdd = core.status.replay.speed>2?2:1;
|
||||
core.status.replay.speed = parseInt(10*core.status.replay.speed - toAdd)/10;
|
||||
if (core.status.replay.speed<0.3) core.status.replay.speed=0.3;
|
||||
core.drawTip("x"+core.status.replay.speed+"倍");
|
||||
}
|
||||
|
||||
@ -310,8 +310,9 @@ events.prototype.doAction = function() {
|
||||
core.events.doAction();
|
||||
break;
|
||||
case "show": // 显示
|
||||
if (typeof data.loc[0] == 'number' && typeof data.loc[1] == 'number')
|
||||
data.loc = [data.loc];
|
||||
if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string')
|
||||
&& (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string'))
|
||||
data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]];
|
||||
if (core.isset(data.time) && data.time>0 && (!core.isset(data.floorId) || data.floorId==core.status.floorId)) {
|
||||
core.animateBlock(data.loc,'show', data.time, function () {
|
||||
data.loc.forEach(function (t) {
|
||||
@ -330,8 +331,9 @@ events.prototype.doAction = function() {
|
||||
case "hide": // 消失
|
||||
if (!core.isset(data.loc))
|
||||
data.loc = [x,y];
|
||||
if (typeof data.loc[0] == 'number' && typeof data.loc[1] == 'number')
|
||||
data.loc = [data.loc];
|
||||
if ((typeof data.loc[0] == 'number' || typeof data.loc[0] == 'string')
|
||||
&& (typeof data.loc[1] == 'number' || typeof data.loc[1] == 'string'))
|
||||
data.loc = [[core.calValue(data.loc[0]), core.calValue(data.loc[1])]];
|
||||
data.loc.forEach(function (t) {
|
||||
core.removeBlock(t[0],t[1],data.floorId);
|
||||
})
|
||||
@ -345,8 +347,8 @@ events.prototype.doAction = function() {
|
||||
case "setBlock": // 设置某图块
|
||||
{
|
||||
if (core.isset(data.loc)) {
|
||||
x=data.loc[0];
|
||||
y=data.loc[1];
|
||||
x=core.calValue(data.loc[0]);
|
||||
y=core.calValue(data.loc[1]);
|
||||
}
|
||||
var floorId = data.floorId||core.status.floorId;
|
||||
var originBlock=core.getBlock(x,y,floorId,false);
|
||||
@ -378,8 +380,8 @@ events.prototype.doAction = function() {
|
||||
y=core.getHeroLoc('y');
|
||||
}
|
||||
else if (data.loc instanceof Array) {
|
||||
x=data.loc[0];
|
||||
y=data.loc[1];
|
||||
x=core.calValue(data.loc[0]);
|
||||
y=core.calValue(data.loc[1]);
|
||||
}
|
||||
}
|
||||
core.drawAnimate(data.name, x, y, function () {
|
||||
@ -388,8 +390,8 @@ events.prototype.doAction = function() {
|
||||
break;
|
||||
case "move": // 移动事件
|
||||
if (core.isset(data.loc)) {
|
||||
x=data.loc[0];
|
||||
y=data.loc[1];
|
||||
x=core.calValue(data.loc[0]);
|
||||
y=core.calValue(data.loc[1]);
|
||||
}
|
||||
core.moveBlock(x,y,data.steps,data.time,data.immediateHide,function() {
|
||||
core.events.doAction();
|
||||
@ -402,7 +404,7 @@ events.prototype.doAction = function() {
|
||||
break;
|
||||
case "changeFloor": // 楼层转换
|
||||
{
|
||||
var heroLoc = {"x": data.loc[0], "y": data.loc[1]};
|
||||
var heroLoc = {"x": core.calValue(data.loc[0]), "y": core.calValue(data.loc[1])};
|
||||
if (core.isset(data.direction)) heroLoc.direction=data.direction;
|
||||
core.changeFloor(data.floorId||core.status.floorId, null, heroLoc, data.time, function() {
|
||||
core.lockControl();
|
||||
@ -413,8 +415,8 @@ events.prototype.doAction = function() {
|
||||
case "changePos": // 直接更换勇士位置,不切换楼层
|
||||
core.clearMap('hero', 0, 0, 416, 416);
|
||||
if (core.isset(data.loc)) {
|
||||
core.setHeroLoc('x', data.loc[0]);
|
||||
core.setHeroLoc('y', data.loc[1]);
|
||||
core.setHeroLoc('x', core.calValue(data.loc[0]));
|
||||
core.setHeroLoc('y', core.calValue(data.loc[1]));
|
||||
}
|
||||
if (core.isset(data.direction)) core.setHeroLoc('direction', data.direction);
|
||||
core.drawHero();
|
||||
@ -422,7 +424,8 @@ events.prototype.doAction = function() {
|
||||
break;
|
||||
case "showImage": // 显示图片
|
||||
if (core.isset(data.loc) && core.isset(core.material.images.images[data.name])) {
|
||||
core.canvas.animate.drawImage(core.material.images.images[data.name], data.loc[0], data.loc[1]);
|
||||
core.canvas.animate.drawImage(core.material.images.images[data.name],
|
||||
core.calValue(data.loc[0]), core.calValue(data.loc[1]));
|
||||
}
|
||||
else core.clearMap('animate', 0, 0, 416, 416);
|
||||
this.doAction();
|
||||
@ -447,8 +450,8 @@ events.prototype.doAction = function() {
|
||||
var gif = new Image();
|
||||
gif.src = core.material.images.images[data.name].src;
|
||||
gif.style.position = 'absolute';
|
||||
gif.style.left = (data.loc[0]*core.domStyle.scale)+"px";
|
||||
gif.style.top = (data.loc[1]*core.domStyle.scale)+"px";
|
||||
gif.style.left = (core.calValue(data.loc[0])*core.domStyle.scale)+"px";
|
||||
gif.style.top = (core.calValue(data.loc[1])*core.domStyle.scale)+"px";
|
||||
core.dom.gif2.appendChild(gif);
|
||||
}
|
||||
else {
|
||||
@ -468,7 +471,7 @@ events.prototype.doAction = function() {
|
||||
case "openDoor": // 开一个门,包括暗墙
|
||||
{
|
||||
var floorId=data.floorId || core.status.floorId;
|
||||
var block=core.getBlock(data.loc[0], data.loc[1], floorId);
|
||||
var block=core.getBlock(core.calValue(data.loc[0]), core.calValue(data.loc[1]), floorId);
|
||||
if (block!=null) {
|
||||
if (floorId==core.status.floorId)
|
||||
core.openDoor(block.block.event.id, block.block.x, block.block.y, false, function() {
|
||||
@ -503,7 +506,7 @@ events.prototype.doAction = function() {
|
||||
break;
|
||||
case "trigger": // 触发另一个事件;当前事件会被立刻结束。需要另一个地点的事件是有效的
|
||||
{
|
||||
var toX=data.loc[0], toY=data.loc[1];
|
||||
var toX=core.calValue(data.loc[0]), toY=core.calValue(data.loc[1]);
|
||||
var block=core.getBlock(toX, toY);
|
||||
if (block!=null) {
|
||||
block = block.block;
|
||||
@ -1031,7 +1034,7 @@ events.prototype.animateImage = function (type, image, loc, time, callback) {
|
||||
if (type == 'hide') opacityVal = 1;
|
||||
|
||||
core.setOpacity('data', opacityVal);
|
||||
core.canvas.data.drawImage(image, loc[0], loc[1]);
|
||||
core.canvas.data.drawImage(image, core.calValue(loc[0]), core.calValue(loc[1]));
|
||||
core.status.replay.animate=true;
|
||||
var animate = setInterval(function () {
|
||||
if (type=='show') opacityVal += 0.1;
|
||||
|
||||
@ -20,6 +20,12 @@ utils.prototype.replaceText = function (text) {
|
||||
|
||||
////// 计算表达式的值 //////
|
||||
utils.prototype.calValue = function (value) {
|
||||
if (typeof value == 'number') {
|
||||
return value;
|
||||
}
|
||||
if (value instanceof Function) {
|
||||
return value();
|
||||
}
|
||||
value=value.replace(/status:([\w\d_]+)/g, "core.getStatus('$1')");
|
||||
value=value.replace(/item:([\w\d_]+)/g, "core.itemCount('$1')");
|
||||
value=value.replace(/flag:([\w\d_]+)/g, "core.getFlag('$1', 0)");
|
||||
|
||||
16
更新说明.txt
16
更新说明.txt
@ -1,20 +1,20 @@
|
||||
HTML5魔塔样板V2.2
|
||||
|
||||
事件坐标可用变量指定
|
||||
全局商店也可以使用图块编辑
|
||||
事件坐标可用变量指定 √
|
||||
全局商店也可以使用图块编辑 √
|
||||
高亮显示有事件的格子
|
||||
自动注册所有未注册的素材
|
||||
等待用户点击事件
|
||||
等待用户点击事件 √
|
||||
图片移动事件
|
||||
事件:设置BGM音量
|
||||
事件:设置BGM音量 √
|
||||
提供core.random函数提供随机数
|
||||
作弊处理
|
||||
状态栏绘制
|
||||
六倍速播放
|
||||
六倍速播放 √
|
||||
播放视频时可以C键查看怪物手册
|
||||
修复标题文字太长导致无法开始游戏的问题
|
||||
新增纯新手简易造塔流程
|
||||
部分效果和性能的优化
|
||||
修复标题文字太长导致无法开始游戏的问题 √
|
||||
新增纯新手简易造塔流程 √
|
||||
部分效果和性能的优化 √
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user