mirror of
https://github.com/unanmed/HumanBreak.git
synced 2026-11-10 06:54:30 +08:00
fix: 优化moving更新
This commit is contained in:
1 parent
0568542cec
commit
85af7259ec
3 files changed
+17
-4
No files matched your search
@@ -333,6 +333,7 @@ export class LayerDoorAnimate implements ILayerRenderExtends {
|
||||
const { renderable: data, count: frame, perTime } = renderable;
|
||||
data.animate = 0;
|
||||
this.moving.add(data);
|
||||
this.layer.requestUpdateMoving();
|
||||
|
||||
let now = 0;
|
||||
while (now < frame) {
|
||||
@@ -342,6 +343,7 @@ export class LayerDoorAnimate implements ILayerRenderExtends {
|
||||
}
|
||||
|
||||
this.moving.delete(data);
|
||||
this.layer.requestUpdateMoving();
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
@@ -355,6 +357,7 @@ export class LayerDoorAnimate implements ILayerRenderExtends {
|
||||
const { renderable: data, count: frame, perTime } = renderable;
|
||||
data.animate = frame - 1;
|
||||
this.moving.add(data);
|
||||
this.layer.requestUpdateMoving();
|
||||
|
||||
let now = 0;
|
||||
while (now >= 0) {
|
||||
@@ -363,6 +366,7 @@ export class LayerDoorAnimate implements ILayerRenderExtends {
|
||||
this.layer.update(this.layer);
|
||||
}
|
||||
this.moving.delete(data);
|
||||
this.layer.requestUpdateMoving();
|
||||
return Promise.resolve();
|
||||
}
|
||||
|
||||
|
||||
@@ -652,7 +652,7 @@ export class Layer extends Container {
|
||||
// todo: 是否需要桶排?
|
||||
/** 移动层的渲染信息 */
|
||||
movingRenderable: LayerMovingRenderable[] = [];
|
||||
/** 下一此渲染时是否需要更新移动层的渲染信息 */
|
||||
/** 下一次渲染时是否需要更新移动层的渲染信息 */
|
||||
needUpdateMoving: boolean = false;
|
||||
|
||||
private extend: Map<string, ILayerRenderExtends> = new Map();
|
||||
@@ -1100,6 +1100,13 @@ export class Layer extends Container {
|
||||
this.movingRenderable.sort((a, b) => a.zIndex - b.zIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* 在下一帧更新moving层
|
||||
*/
|
||||
requestUpdateMoving() {
|
||||
this.needUpdateMoving = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 渲染当前地图
|
||||
*/
|
||||
@@ -1109,6 +1116,7 @@ export class Layer extends Container {
|
||||
this.backMap.clear();
|
||||
|
||||
if (this.needUpdateMoving) this.updateMovingRenderable();
|
||||
this.needUpdateMoving = false;
|
||||
|
||||
for (const ex of this.extend.values()) {
|
||||
ex.onBeforeRender?.(this, transform, need);
|
||||
|
||||
Reference in new issue
Block a user