From ff02a0d031542fca56daacb7e3923355729d5051 Mon Sep 17 00:00:00 2001 From: Ziyu Date: Sat, 10 Jan 2026 16:22:37 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84ge?= =?UTF-8?q?tGameObjects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/engine/core/time.cpp | 4 +++- src/engine/scene/scene.h | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/engine/core/time.cpp b/src/engine/core/time.cpp index b2cad6e..8da1a74 100644 --- a/src/engine/core/time.cpp +++ b/src/engine/core/time.cpp @@ -1,6 +1,7 @@ #include "time.h" #include #include // 用于 SDL_GetTicksNS() +#include namespace engine::core { @@ -32,7 +33,8 @@ void Time::limitFrameRate(float current_delta_time) { SDL_DelayNS(ns_to_wait); delta_time_ = static_cast(SDL_GetTicksNS() - last_time_) / 1000000000.0; } else { // 否则,直接使用当前帧耗费的时间 - delta_time_ = static_cast(current_delta_time); + // 限制最大 delta time 为 0.1秒 (即最低 10 FPS),防止刚启动或卡顿时的物理穿模 + delta_time_ = std::min(static_cast(current_delta_time), 0.1); } } diff --git a/src/engine/scene/scene.h b/src/engine/scene/scene.h index 28977c6..f02cbca 100644 --- a/src/engine/scene/scene.h +++ b/src/engine/scene/scene.h @@ -88,7 +88,6 @@ public: engine::core::Context& getContext() const { return context_; } ///< @brief 获取上下文引用 engine::scene::SceneManager& getSceneManager() const { return scene_manager_; } ///< @brief 获取场景管理器引用 - std::vector>& getGameObjects() { return game_objects_; } ///< @brief 获取场景中的游戏对象 protected: void processPendingAdditions(); ///< @brief 处理待添加的游戏对象。(每轮更新的最后调用)