feat(feedback): 包裹已满时物品抛起弹跳动画与提示反馈 (Inventory Full Flippy Bounce & Feedback) #392

Closed
opened 2026-09-23 01:57:24 +00:00 by troytt · 0 comments
Owner

问题背景与需求概述

Milestone 10 核心需求明确规定:“如果包裹满了显示一个物品被抛起的动画”。当玩家背包无足够空间容纳所点击的物品时,系统必须提供明确的原版视听拒绝反馈与物体弹跳物理动画,而不是无响应或静默失败。


原版 Diablo II v1.13c 核心机制规范(Ground Truth)

1. 包裹满载拦截 (Inventory Full Gate)

  • 当玩家试图拾取装备/道具,而背包 10x4 网格中无法容纳该物品的占地尺寸时,拒绝拾取操作,地面实体绝不被销毁或吞没。

2. 物品被抛起弹跳物理动画 (Flippy Bounce Animation)

  • 弹跳轨迹:
    • 物品在原地沿着一条向上的重力抛物线腾空起跳(垂直高度峰值约 24 ~ 32 像素,起落时间持续约 350ms)。
    • 落地后发生一次衰减的二次微小反弹(反弹高度约 6 ~ 8 像素,持续约 150ms),随后静止在原地面网格。
  • 空中翻转:
    • 在起跳腾空过程中,伴随物品小幅自旋或原版 flippyfile 翻转帧切换,生动表现出“物品被玩家拿起却拿不下、重新脱手掉落回地面”的物理质感。

3. 视听拒绝与语音反馈 (Full Feedback & Voice)

  • 屏幕中央顶部以醒目文字提示「包裹已满」(或英文「I can't carry any more」)。
  • 播放当前职业专属的“背包已满”原版语音音效(例如女巫的叹息或野蛮人的粗犷拒绝)。
  • 播放一次物品轻触地面音效。

改造与验收标准

  1. 背包满载时点击拾取物品,物品安全保留在地面,不发生吞物或异常。
  2. 物品在原地呈现流畅生动的抛物线腾空抛起、下落与轻微二次回弹动画。
  3. 屏幕出现明确的「包裹已满」文字提示,并伴随角色语音/提示音效。
  4. 自动化构建与单测(npm run typecheck, npm test)100% 通过。
## 问题背景与需求概述 Milestone 10 核心需求明确规定:“如果包裹满了显示一个物品被抛起的动画”。当玩家背包无足够空间容纳所点击的物品时,系统必须提供明确的原版视听拒绝反馈与物体弹跳物理动画,而不是无响应或静默失败。 --- ## 原版 Diablo II v1.13c 核心机制规范(Ground Truth) ### 1. 包裹满载拦截 (Inventory Full Gate) - 当玩家试图拾取装备/道具,而背包 10x4 网格中无法容纳该物品的占地尺寸时,拒绝拾取操作,地面实体绝不被销毁或吞没。 ### 2. 物品被抛起弹跳物理动画 (Flippy Bounce Animation) - **弹跳轨迹**: - 物品在原地沿着一条向上的重力抛物线腾空起跳(垂直高度峰值约 24 ~ 32 像素,起落时间持续约 350ms)。 - 落地后发生一次衰减的二次微小反弹(反弹高度约 6 ~ 8 像素,持续约 150ms),随后静止在原地面网格。 - **空中翻转**: - 在起跳腾空过程中,伴随物品小幅自旋或原版 `flippyfile` 翻转帧切换,生动表现出“物品被玩家拿起却拿不下、重新脱手掉落回地面”的物理质感。 ### 3. 视听拒绝与语音反馈 (Full Feedback & Voice) - 屏幕中央顶部以醒目文字提示「包裹已满」(或英文「I can't carry any more」)。 - 播放当前职业专属的“背包已满”原版语音音效(例如女巫的叹息或野蛮人的粗犷拒绝)。 - 播放一次物品轻触地面音效。 --- ## 改造与验收标准 1. 背包满载时点击拾取物品,物品安全保留在地面,不发生吞物或异常。 2. 物品在原地呈现流畅生动的抛物线腾空抛起、下落与轻微二次回弹动画。 3. 屏幕出现明确的「包裹已满」文字提示,并伴随角色语音/提示音效。 4. 自动化构建与单测(npm run typecheck, npm test)100% 通过。
troytt added this to the 复刻捡起/丢弃物品 milestone 2026-09-23 01:57:24 +00:00
Sign in to join this conversation.
No Label
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: troytt/diablo2-web#392
No description provided.