feat(ItemList) 添加周围物品列表功能

This commit is contained in:
chicrobot committed 2026-01-06 01:13:17 +08:00
1 parent 215e04384c
commit 0ed8c2f6ae
7 files changed
+1349 -14

No files matched your search

+36 -2
View File
@@ -293,7 +293,41 @@ export class InputSystem {
return this.isMouseOnMiniMap(pointer) ||
this.isMouseOnJoystick(pointer) ||
this.isMouseOnSidebar(pointer) ||
this.isMouseOnInventoryUI(pointer);
this.isMouseOnInventoryUI(pointer) ||
this.isMouseOnItemListUI(pointer);
}
/**
* 检查鼠标是否在物品列表菜单上
* @param {Phaser.Input.Pointer} pointer - 指针事件对象
* @returns {boolean} - 如果鼠标在物品列表菜单上返回true,否则返回false
*/
isMouseOnItemListUI(pointer) {
// 检查场景中是否有物品列表UI
if (!this.scene.itemListUI) {
return false;
}
// 获取物品列表UI实例
const itemListUI = this.scene.itemListUI;
// 获取鼠标在屏幕上的坐标
const mouseX = pointer.x;
const mouseY = pointer.y;
// 检查UI是否可见
if (!itemListUI.visible) {
return false;
}
// 直接使用UI的位置和尺寸来计算边界,不依赖container
const uiX = itemListUI.x;
const uiY = itemListUI.y;
const uiWidth = itemListUI.width;
const uiHeight = itemListUI.height;
// 检查鼠标坐标是否在物品列表UI边界内
return mouseX >= uiX && mouseX <= uiX + uiWidth &&
mouseY >= uiY && mouseY <= uiY + uiHeight;
}
/**
@@ -420,7 +454,7 @@ export class InputSystem {
return;
}
const pickupDistance = 100; // 最大拾取距离
const pickupDistance = 50; // 最大拾取距离,与物品交互距离保持一致
let closestItem = null;
let minDistance = pickupDistance;