|
|
@@ -143,7 +143,7 @@ const CONFIG = {
|
|
|
ACTION_DELAY: 200, // 每次动作后的延迟时间
|
|
|
COLLISION_DELAY: 300, // 碰撞后的延迟时间
|
|
|
RESET_DELAY: 300, // 重置后的延迟时间
|
|
|
- MESSAGE_DISPLAY: 3000, // 消息显示时间
|
|
|
+ MESSAGE_DISPLAY: 2000, // 消息显示时间
|
|
|
COLLISION_RESET: 1000, // 碰撞状态重置时间
|
|
|
LOOP_PREVENTION: 10, // 循环防止UI阻塞的延迟
|
|
|
},
|
|
|
@@ -811,7 +811,7 @@ window.pickupItem = async function() {
|
|
|
|
|
|
// 判断是否是要拾取的方块类型
|
|
|
if (tileMap && tileMap.type === BLOCKLY_MAP_TYPE_DICT.YC) {
|
|
|
- showGameMessage(tileMap.tip || '成功拾取物品!', 'warning', 1000)
|
|
|
+ showGameMessage(tileMap.tip || '成功拾取物品!', 'warning')
|
|
|
|
|
|
// 处理携带物品逻辑
|
|
|
if (tileMap && tileMap.img) {
|
|
|
@@ -836,8 +836,10 @@ window.pickupItem = async function() {
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
- showGameMessage('当前位置没有可拾取的物品', 'info', 1000)
|
|
|
+ showGameMessage('当前位置没有可拾取的物品', 'info')
|
|
|
}
|
|
|
+
|
|
|
+ await new Promise(resolve => setTimeout(resolve, CONFIG.DELAY.ACTION_DELAY));
|
|
|
}
|
|
|
|
|
|
// 使用物品函数
|
|
|
@@ -851,6 +853,7 @@ window.useItem = async function() {
|
|
|
if (tileMap && tileMap.need) {
|
|
|
// 检查玩家是否携带了需要的物品
|
|
|
const requiredItems = tileMap.need;
|
|
|
+ debugger
|
|
|
let hasRequiredItem = false;
|
|
|
let itemIndex = -1;
|
|
|
|
|
|
@@ -865,19 +868,36 @@ window.useItem = async function() {
|
|
|
}
|
|
|
|
|
|
if (hasRequiredItem) {
|
|
|
+
|
|
|
+ // 从地图上移除图标(但保留点的可通行性)
|
|
|
+ const pointIndex = gameState.mapData.walkablePoints.findIndex(
|
|
|
+ p => p.x === x && p.y === y
|
|
|
+ );
|
|
|
+ if (pointIndex !== -1) {
|
|
|
+ // 保留点但移除img属性
|
|
|
+ const updatedPoint = { ...gameState.mapData.walkablePoints[pointIndex] };
|
|
|
+ updatedPoint.img = updatedPoint.deenImg;
|
|
|
+ gameState.mapData.walkablePoints.splice(pointIndex, 1, updatedPoint);
|
|
|
+
|
|
|
+ // 更新映射
|
|
|
+ walkablePointsMap.set(`${x},${y}`, updatedPoint);
|
|
|
+ }
|
|
|
+
|
|
|
// 使用物品成功
|
|
|
- showGameMessage(tileMap.tip || '物品使用成功!', 'success', 1500);
|
|
|
+ showGameMessage('物品使用成功!', 'success');
|
|
|
|
|
|
// 从携带物品中移除已使用的物品
|
|
|
gameState.player.carriedItems.splice(itemIndex, 1);
|
|
|
|
|
|
} else {
|
|
|
// 提示缺少所需物品
|
|
|
- showGameMessage(tileMap.tip || `需要特殊物品才能使用`, 'warning', 1500);
|
|
|
+ showGameMessage(tileMap.tip || `需要特殊物品才能使用`, 'warning');
|
|
|
}
|
|
|
} else {
|
|
|
- showGameMessage('当前位置不需要使用物品', 'info', 1000);
|
|
|
+ showGameMessage('当前位置不需要使用物品', 'info');
|
|
|
}
|
|
|
+
|
|
|
+ await new Promise(resolve => setTimeout(resolve, CONFIG.DELAY.ACTION_DELAY));
|
|
|
}
|
|
|
|
|
|
// 向前移动
|