# 完善 Actor 旋转功能 ## 问题描述 Actor 的 SetRotation 方法需要改进,增加角度规范化和相对旋转功能。 ## 解决方案 ### 1. 改进 SetRotation 方法 - 添加角度规范化到 [0, 360) 范围 - 使用已有的 `normalizeAngle360` 函数 ### 2. 添加 RotateBy 方法 - 新增相对旋转方法,用于在当前角度基础上增加/减少角度 - 同样会进行角度规范化 ## 实现步骤 ### 文件修改 1. **Frostbite2D/include/frostbite2D/2d/actor.h** - 在 `SetRotation` 方法声明后添加 `RotateBy` 方法声明 2. **Frostbite2D/src/frostbite2D/2d/actor.cpp** - 改进 `SetRotation` 方法,添加角度规范化 - 实现 `RotateBy` 方法 ## 代码变更 ### actor.h 修改 在第 43 行后添加: ```cpp void RotateBy(float deltaRotation); ``` ### actor.cpp 修改 改进 SetRotation 方法(第 37-40 行): ```cpp void Actor::SetRotation(float rotation) { rotation_ = normalizeAngle360(rotation); markTransformDirty(); } ``` 添加 RotateBy 方法: ```cpp void Actor::RotateBy(float deltaRotation) { rotation_ = normalizeAngle360(rotation_ + deltaRotation); markTransformDirty(); } ``` ## 验证 - 运行 `xmake build` 确保项目编译通过