From 846413831152a5821ae2a2f3fcebd1da521bc4fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Fri, 29 Aug 2025 15:20:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8E=89=E8=90=BD=E7=89=A9):=20=E5=B0=86?= =?UTF-8?q?=E7=89=A9=E5=93=81=E6=8B=BE=E5=8F=96=E5=8D=8A=E5=BE=84=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E5=8F=AF=E9=85=8D=E7=BD=AE=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将硬编码的物品拾取半径改为从FieldStore中获取的可配置属性,并增加默认值60。同时调整了EntityBase中的初始物品数量配置。 --- scripts/Statemachine/EntityBase.gd | 10 ++++++---- scripts/Statemachine/ItemDropped.gd | 2 +- scripts/Tools/FieldStore.gd | 3 +++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/Statemachine/EntityBase.gd b/scripts/Statemachine/EntityBase.gd index e50f25a..9eddec6 100644 --- a/scripts/Statemachine/EntityBase.gd +++ b/scripts/Statemachine/EntityBase.gd @@ -37,19 +37,21 @@ var fields = { FieldStore.Entity.ENERGY_MULTIPILER: 1, FieldStore.Entity.SAVE_ENERGY: 1, FieldStore.Entity.ENERGY_REGENERATION: 1, + # 掉落物 + FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS: 60, } var attackCooldownMap = { 0: 100 } var inventory = { - ItemStore.ItemType.BASEBALL: 100, - ItemStore.ItemType.BASKETBALL: 100, - ItemStore.ItemType.APPLE: 5, # 初始苹果数量 + ItemStore.ItemType.BASEBALL: 500, + ItemStore.ItemType.BASKETBALL: 500, + ItemStore.ItemType.APPLE: 5, } var inventoryMax = { ItemStore.ItemType.BASEBALL: INF, # 无限 ItemStore.ItemType.BASKETBALL: INF, - ItemStore.ItemType.APPLE: 5, # 最多5个苹果 + ItemStore.ItemType.APPLE: 5, } @export var defaultCooldownUnit: float = 100 diff --git a/scripts/Statemachine/ItemDropped.gd b/scripts/Statemachine/ItemDropped.gd index b89e3f6..8a0be86 100644 --- a/scripts/Statemachine/ItemDropped.gd +++ b/scripts/Statemachine/ItemDropped.gd @@ -23,7 +23,7 @@ func _physics_process(_delta): var direction = (targetPlayer.position - position).normalized() var speed = 5000.0 / ((targetPlayer.position - position).length() ** (1 / 3.0)) apply_central_force(direction * speed) - if position.distance_to(targetPlayer.position) < 60: + if position.distance_to(targetPlayer.position) < targetPlayer.fields.get(FieldStore.Entity.DROPPED_ITEM_COLLECT_RADIUS): targetPlayer.collectItem(item, stackCount) collect() diff --git a/scripts/Tools/FieldStore.gd b/scripts/Tools/FieldStore.gd index 1b20dc8..537c991 100644 --- a/scripts/Tools/FieldStore.gd +++ b/scripts/Tools/FieldStore.gd @@ -28,6 +28,7 @@ enum Entity { LUCK_VALUE, SAVE_ENERGY, ENERGY_REGENERATION, + DROPPED_ITEM_COLLECT_RADIUS } static var entityMap = { Entity.MAX_HEALTH: "生命上限", @@ -51,6 +52,7 @@ static var entityMap = { Entity.LUCK_VALUE: "幸运值", Entity.SAVE_ENERGY: "节能", Entity.ENERGY_REGENERATION: "能量再生效率", + Entity.DROPPED_ITEM_COLLECT_RADIUS: "掉落物拾取距离", } static var entityMapType = { Entity.MAX_HEALTH: DataType.VALUE, @@ -74,6 +76,7 @@ static var entityMapType = { Entity.LUCK_VALUE: DataType.VALUE, Entity.SAVE_ENERGY: DataType.PERCENT, Entity.ENERGY_REGENERATION: DataType.PERCENT, + Entity.DROPPED_ITEM_COLLECT_RADIUS: DataType.VALUE, } static var entityMaxValueMap = { Entity.CRIT_RATE: 0.8,