diff --git a/src/game/scene/game_scene.cpp b/src/game/scene/game_scene.cpp index b548bbc..3ecfc63 100644 --- a/src/game/scene/game_scene.cpp +++ b/src/game/scene/game_scene.cpp @@ -25,7 +25,7 @@ namespace game::scene { // 构造函数:调用基类构造函数 -GameScene::GameScene(std::string name, engine::core::Context& context, engine::scene::SceneManager& scene_manager) +GameScene::GameScene(const std::string& name, engine::core::Context& context, engine::scene::SceneManager& scene_manager) : Scene(name, context, scene_manager) { spdlog::trace("GameScene 构造完成。"); } @@ -189,15 +189,15 @@ void GameScene::handleObjectCollisions() // 处理玩家与敌人的碰撞 if (obj1->getName() == "player" && obj2->getTag() == "enemy") { - PlayerVSEnemyCollision(obj1, obj2); + playerVSEnemyCollision(obj1, obj2); } else if (obj2->getName() == "player" && obj1->getTag() == "enemy") { - PlayerVSEnemyCollision(obj2, obj1); + playerVSEnemyCollision(obj2, obj1); } // 处理玩家与道具的碰撞 else if (obj1->getName() == "player" && obj2->getTag() == "item") { - PlayerVSItemCollision(obj1, obj2); + playerVSItemCollision(obj1, obj2); } else if (obj2->getName() == "player" && obj1->getTag() == "item") { - PlayerVSItemCollision(obj2, obj1); + playerVSItemCollision(obj2, obj1); } // 处理玩家与"hazard"对象碰撞 else if (obj1->getName() == "player" && obj2->getTag() == "hazard") { @@ -227,7 +227,7 @@ void GameScene::handleTileTriggers() } } -void GameScene::PlayerVSEnemyCollision(engine::object::GameObject *player, engine::object::GameObject *enemy) +void GameScene::playerVSEnemyCollision(engine::object::GameObject *player, engine::object::GameObject *enemy) { // --- 踩踏判断逻辑:1. 玩家中心点在敌人上方 2. 重叠区域:overlap.x > overlap.y auto player_aabb = player->getComponent()->getWorldAABB(); @@ -263,7 +263,7 @@ void GameScene::PlayerVSEnemyCollision(engine::object::GameObject *player, engin } } -void GameScene::PlayerVSItemCollision(engine::object::GameObject * player, engine::object::GameObject * item) +void GameScene::playerVSItemCollision(engine::object::GameObject * player, engine::object::GameObject * item) { if (item->getName() == "fruit") { player->getComponent()->heal(1); // 加血 diff --git a/src/game/scene/game_scene.h b/src/game/scene/game_scene.h index 7ffcc2c..92874dc 100644 --- a/src/game/scene/game_scene.h +++ b/src/game/scene/game_scene.h @@ -17,7 +17,7 @@ class GameScene final: public engine::scene::Scene { engine::object::GameObject* player_ = nullptr; ///< @brief 保存玩家对象的指针,方便访问 public: - GameScene(std::string name, engine::core::Context& context, engine::scene::SceneManager& scene_manager); + GameScene(const std::string& name, engine::core::Context& context, engine::scene::SceneManager& scene_manager); // 覆盖场景基类的核心方法 void init() override; @@ -33,8 +33,8 @@ private: void handleObjectCollisions(); ///< @brief 处理游戏对象间的碰撞逻辑(从PhysicsEngine获取信息) void handleTileTriggers(); ///< @brief 处理瓦片触发事件(从PhysicsEngine获取信息) - void PlayerVSEnemyCollision(engine::object::GameObject* player, engine::object::GameObject* enemy); ///< @brief 玩家与敌人碰撞处理 - void PlayerVSItemCollision(engine::object::GameObject* player, engine::object::GameObject* item); ///< @brief 玩家与道具碰撞处理 + void playerVSEnemyCollision(engine::object::GameObject* player, engine::object::GameObject* enemy); ///< @brief 玩家与敌人碰撞处理 + void playerVSItemCollision(engine::object::GameObject* player, engine::object::GameObject* item); ///< @brief 玩家与道具碰撞处理 /** * @brief 创建一个特效对象(一次性)。