From 7fcefd62c49eba7f6e5d33f181e7b59e05b1ef03 Mon Sep 17 00:00:00 2001 From: unanmed <1319491857@qq.com> Date: Tue, 25 Nov 2025 17:49:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=80=8F=E6=98=8E=E5=83=8F=E7=B4=A0?= =?UTF-8?q?=E9=81=AE=E6=8C=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client-modules/src/render/map/extension/hero.ts | 12 ++++-------- .../client-modules/src/render/map/shader/map.frag | 5 ++++- packages-user/data-state/src/hero/state.ts | 4 ++-- packages-user/data-state/src/hero/types.ts | 6 ++---- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/packages-user/client-modules/src/render/map/extension/hero.ts b/packages-user/client-modules/src/render/map/extension/hero.ts index 79df2cd..4ff7865 100644 --- a/packages-user/client-modules/src/render/map/extension/hero.ts +++ b/packages-user/client-modules/src/render/map/extension/hero.ts @@ -292,12 +292,8 @@ export class MapHeroRenderer implements IMapHeroRenderer { entity.block.useSpecifiedFrame(0); } - async waitMoveEnd(waitFollower: boolean): Promise { - if (waitFollower) { - await Promise.all(this.entities.map(v => v.promise)); - return; - } - await this.heroEntity.promise; + async waitMoveEnd(): Promise { + await Promise.all(this.entities.map(v => v.promise)); this.entities.forEach(v => this.endEntityMoving(v)); } @@ -485,8 +481,8 @@ class MapHeroHook implements Partial { return this.hero.move(direction, time); } - onEndMove(waitFollower: boolean): Promise { - return this.hero.waitMoveEnd(waitFollower); + onEndMove(): Promise { + return this.hero.waitMoveEnd(); } onJumpHero( diff --git a/packages-user/client-modules/src/render/map/shader/map.frag b/packages-user/client-modules/src/render/map/shader/map.frag index 6b31186..231de34 100644 --- a/packages-user/client-modules/src/render/map/shader/map.frag +++ b/packages-user/client-modules/src/render/map/shader/map.frag @@ -10,6 +10,9 @@ uniform sampler2DArray u_sampler; void main() { vec4 texColor = texture(u_sampler, v_texCoord.xyz); - outColor = vec4(texColor.rgb, texColor.a * v_texCoord.a); + float alpha = texColor.a * v_texCoord.a; + // todo: 透明像素应该如何解决?? + if (alpha < 0.1) discard; + outColor = vec4(texColor.rgb, alpha); // outColor = vec4(texColor.a * 0.001, v_texCoord.x * 6.0, v_texCoord.y * 0.0, v_texCoord.a); } diff --git a/packages-user/data-state/src/hero/state.ts b/packages-user/data-state/src/hero/state.ts index cf02be2..113eebd 100644 --- a/packages-user/data-state/src/hero/state.ts +++ b/packages-user/data-state/src/hero/state.ts @@ -58,11 +58,11 @@ export class HeroState extends Hookable implements IHeroState { this.y += y; } - async endMove(waitFollower: boolean = false): Promise { + async endMove(): Promise { if (!this.moving) return; await Promise.all( this.forEachHook(hook => { - return hook.onEndMove?.(waitFollower); + return hook.onEndMove?.(); }) ); this.moving = false; diff --git a/packages-user/data-state/src/hero/types.ts b/packages-user/data-state/src/hero/types.ts index d34a0b1..197bf7d 100644 --- a/packages-user/data-state/src/hero/types.ts +++ b/packages-user/data-state/src/hero/types.ts @@ -47,9 +47,8 @@ export interface IHeroStateHooks extends IHookBase { /** * 当停止移动时触发 - * @param waitFollower 是否等待跟随者 */ - onEndMove(waitFollower: boolean): Promise; + onEndMove(): Promise; /** * 当勇士跳跃时触发 @@ -146,10 +145,9 @@ export interface IHeroState extends IHookable { /** * 结束勇士移动 - * @param waitFollower 是否等待跟随者,默认不等待 * @returns 当移动动画结束后兑现的 `Promise` */ - endMove(waitFollower?: boolean): Promise; + endMove(): Promise; /** * 跳跃勇士至目标点