mirror of
				https://github.com/unanmed/HumanBreak.git
				synced 2025-11-04 15:12:58 +08:00 
			
		
		
		
	fix: animateBlock
This commit is contained in:
		
							parent
							
								
									a2150990c3
								
							
						
					
					
						commit
						58e6b4be83
					
				@ -4139,16 +4139,24 @@ maps.prototype.animateBlock = function (loc, type, time, callback) {
 | 
			
		||||
        typeof type != 'number'
 | 
			
		||||
    ) {
 | 
			
		||||
        if (callback) callback();
 | 
			
		||||
    }
 | 
			
		||||
    // --- 检测所有是0的点
 | 
			
		||||
    var list = this._animateBlock_getList(loc, type);
 | 
			
		||||
    if (list.length == 0) {
 | 
			
		||||
        if (callback) callback();
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
    this._animateBlock_drawList(list, 0);
 | 
			
		||||
    time /= Math.max(core.status.replay.speed, 1);
 | 
			
		||||
    this._animateBlock_doAnimate(loc, list, type, time, callback);
 | 
			
		||||
    loc.forEach(function (t) {
 | 
			
		||||
        if (type === 'show') core.showBlock(t[0], t[1]);
 | 
			
		||||
        else if (type === 'hide') core.hideBlock(t[0], t[1]);
 | 
			
		||||
        else if (type === 'remove') core.removeBlock(t[0], t[1]);
 | 
			
		||||
        else core.showBlock(t[0], t[1]);
 | 
			
		||||
    });
 | 
			
		||||
    callback?.();
 | 
			
		||||
    // --- 检测所有是0的点
 | 
			
		||||
    // var list = this._animateBlock_getList(loc, type);
 | 
			
		||||
    // if (list.length == 0) {
 | 
			
		||||
    //     if (callback) callback();
 | 
			
		||||
    //     return;
 | 
			
		||||
    // }
 | 
			
		||||
    // this._animateBlock_drawList(list, 0);
 | 
			
		||||
    // time /= Math.max(core.status.replay.speed, 1);
 | 
			
		||||
    // this._animateBlock_doAnimate(loc, list, type, time, callback);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
maps.prototype._animateBlock_doAnimate = function (
 | 
			
		||||
 | 
			
		||||
@ -157,7 +157,7 @@ main.floors.MT21=
 | 
			
		||||
                    "\t[低级智人]\b[up,hero]或许智慧结晶会告诉我答案吧。",
 | 
			
		||||
                    {
 | 
			
		||||
                        "type": "function",
 | 
			
		||||
                        "function": "function(){\nMota.require('var', 'fixedUi').open('chapter', { chapter: '第二章  智慧' });\nMota.Plugin.require('removeMap_g').removeMaps('tower1', 'tower7', true);\ndelete flags.tower1;\ndelete flags.wordsTimeOut;\ndelete flags.boom;\ndelete flags.booming;\n}"
 | 
			
		||||
                        "function": "function(){\nif (!core.isReplaying()) Mota.require('var', 'fixedUi').open('chapter', { chapter: '第二章  智慧' });\nMota.Plugin.require('removeMap_g').removeMaps('tower1', 'tower7', true);\ndelete flags.tower1;\ndelete flags.wordsTimeOut;\ndelete flags.boom;\ndelete flags.booming;\n}"
 | 
			
		||||
                    },
 | 
			
		||||
                    {
 | 
			
		||||
                        "type": "setValue",
 | 
			
		||||
 | 
			
		||||
@ -113,7 +113,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
 | 
			
		||||
	"140": {"cls":"npcs","id":"blackTrader","faceIds":{"down":"blueTrader","left":"redMSNpc","right":"blackTrader","up":"N532"}},
 | 
			
		||||
	"141": {"cls":"autotile","id":"autotile4","script":1},
 | 
			
		||||
	"142": {"cls":"autotile","id":"autotile5"},
 | 
			
		||||
	"143": {"cls":"autotile","id":"autotile6","autotileConnection":["A492"]},
 | 
			
		||||
	"143": {"cls":"autotile","id":"autotile6","autotileConnection":["A492","A494","A497"]},
 | 
			
		||||
	"144": {"cls":"autotile","id":"autotile7"},
 | 
			
		||||
	"145": {"cls":"autotile","id":"autotile8"},
 | 
			
		||||
	"146": {"cls":"autotile","id":"autotile9","canPass":true},
 | 
			
		||||
 | 
			
		||||
@ -339,7 +339,8 @@ export class LayerDoorAnimate implements ILayerRenderExtends {
 | 
			
		||||
            animate: 0,
 | 
			
		||||
            frame,
 | 
			
		||||
            bigImage: false,
 | 
			
		||||
            render: renderable.render
 | 
			
		||||
            render: renderable.render,
 | 
			
		||||
            alpha: 1
 | 
			
		||||
        };
 | 
			
		||||
        return { renderable: data, count: frame, perTime };
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -513,6 +513,7 @@ export interface LayerMovingRenderable extends RenderableData {
 | 
			
		||||
    zIndex: number;
 | 
			
		||||
    x: number;
 | 
			
		||||
    y: number;
 | 
			
		||||
    alpha: number;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class Layer extends Container {
 | 
			
		||||
@ -842,7 +843,8 @@ export class Layer extends Container {
 | 
			
		||||
                    ...renderable,
 | 
			
		||||
                    x: nx,
 | 
			
		||||
                    y: ny,
 | 
			
		||||
                    zIndex: ny
 | 
			
		||||
                    zIndex: ny,
 | 
			
		||||
                    alpha: 1
 | 
			
		||||
                });
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
@ -858,8 +860,10 @@ export class Layer extends Container {
 | 
			
		||||
     * 计算自动元件的连接信息(会丢失autotiles属性的引用)
 | 
			
		||||
     */
 | 
			
		||||
    calAutotiles(x: number, y: number, width: number, height: number) {
 | 
			
		||||
        const ex = x + width;
 | 
			
		||||
        const ey = y + height;
 | 
			
		||||
        const sx = x - 1;
 | 
			
		||||
        const sy = y - 1;
 | 
			
		||||
        const ex = x + width + 1;
 | 
			
		||||
        const ey = y + height + 1;
 | 
			
		||||
        const data = this.renderData;
 | 
			
		||||
        const tile = texture.autotile;
 | 
			
		||||
        const map = maps_90f36752_8815_4be8_b32b_d7fad1d0542e;
 | 
			
		||||
@ -922,9 +926,10 @@ export class Layer extends Container {
 | 
			
		||||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        for (let nx = x; nx < ex; nx++) {
 | 
			
		||||
            for (let ny = y; ny < ey; ny++) {
 | 
			
		||||
                if (nx > w || ny > h) continue;
 | 
			
		||||
        for (let nx = sx; nx < ex; nx++) {
 | 
			
		||||
            if (nx >= w || nx < 0) continue;
 | 
			
		||||
            for (let ny = sy; ny < ey; ny++) {
 | 
			
		||||
                if (ny >= h || ny < 0) continue;
 | 
			
		||||
                const index = nx + ny * w;
 | 
			
		||||
                const num = data[index];
 | 
			
		||||
                // 特判空气墙与空图块
 | 
			
		||||
@ -1208,7 +1213,7 @@ export class Layer extends Container {
 | 
			
		||||
        const r = (max1 * max2) ** 2;
 | 
			
		||||
 | 
			
		||||
        this.movingRenderable.forEach(v => {
 | 
			
		||||
            const { x, y, image, render, animate } = v;
 | 
			
		||||
            const { x, y, image, render, animate, alpha } = v;
 | 
			
		||||
            const ff = frame % v.frame;
 | 
			
		||||
            const i = animate === -1 ? ff : animate;
 | 
			
		||||
            const [sx, sy, w, h] = render[i];
 | 
			
		||||
@ -1226,6 +1231,7 @@ export class Layer extends Container {
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            ctx.globalAlpha = alpha;
 | 
			
		||||
            ctx.drawImage(image, sx, sy, w, h, px, py, w, h);
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
@ -1413,7 +1419,8 @@ export class Layer extends Container {
 | 
			
		||||
            frame: renderable.frame,
 | 
			
		||||
            bigImage: renderable.bigImage,
 | 
			
		||||
            animate: -1,
 | 
			
		||||
            render: renderable.render
 | 
			
		||||
            render: renderable.render,
 | 
			
		||||
            alpha: 1
 | 
			
		||||
        };
 | 
			
		||||
        return moving;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user