feat(camera): 为相机组件添加简化的正交投影设置方法
添加一个接受宽高参数的 `setOrtho` 重载方法,以简化常见2D场景下的相机设置。同时更新示例代码以使用新方法,使代码更简洁易读。
This commit is contained in:
parent
0e85edb518
commit
3686ba35c1
|
|
@ -40,7 +40,7 @@ private:
|
|||
cameraNode->setName("MainCamera");
|
||||
cameraNode->setPosition(0.0f, 0.0f);
|
||||
auto camera = makePtr<CameraComponent>();
|
||||
camera->setOrtho(0.0f, 1280.0f, 720.0f, 0.0f, -1.0f, 1.0f);
|
||||
camera->setOrtho(1280.0f, 720.0f);
|
||||
cameraNode->addComponent(camera);
|
||||
setMainCamera(camera);
|
||||
addChild(cameraNode);
|
||||
|
|
@ -72,21 +72,12 @@ int main(int argc, char **argv) {
|
|||
return -1;
|
||||
}
|
||||
|
||||
SceneModule *sceneModule = app->getModule<SceneModule>();
|
||||
if (!sceneModule) {
|
||||
printf("获取场景模块失败!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
Director *director = sceneModule->getDirector();
|
||||
auto director = app->getModule<SceneModule>()->getDirector();
|
||||
if (!director) {
|
||||
printf("获取导演器失败!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
auto scene = makePtr<ImageDisplayScene>();
|
||||
director->runScene(scene);
|
||||
|
||||
director->runScene(makePtr<ImageDisplayScene>());
|
||||
app->run();
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ node->addComponent(sprite);
|
|||
### 设置相机
|
||||
```cpp
|
||||
auto camera = makePtr<CameraComponent>();
|
||||
camera->setOrtho(0, 1280, 0, 720, -1, 1);
|
||||
camera->setOrtho(1280, 720);
|
||||
cameraNode->addComponent(camera);
|
||||
scene->setMainCamera(camera);
|
||||
```
|
||||
|
|
|
|||
|
|
@ -157,7 +157,7 @@ void GameScene::createCamera() {
|
|||
auto camera = makePtr<CameraComponent>();
|
||||
// 使用标准的2D投影:左上角为(0, 0),右下角为(1280, 720)
|
||||
// Y轴向下:bottom=720, top=0
|
||||
camera->setOrtho(0.0f, 1280.0f, 720.0f, 0.0f, -1.0f, 1.0f);
|
||||
camera->setOrtho(1280.0f, 720.0f);
|
||||
cameraNode->addComponent(camera);
|
||||
|
||||
// 设置为主相机
|
||||
|
|
|
|||
|
|
@ -51,6 +51,15 @@ public:
|
|||
*/
|
||||
ProjectionType getProjectionType() const { return projType_; }
|
||||
|
||||
/**
|
||||
* @brief 设置正交投影
|
||||
* @param width 逻辑宽度
|
||||
* @param height 逻辑高度
|
||||
* @param near 近裁剪面
|
||||
* @param far 远裁剪面
|
||||
*/
|
||||
void setOrtho(float width, float height, float near = -1.0f, float far = 1.0f);
|
||||
|
||||
/**
|
||||
* @brief 设置正交投影
|
||||
* @param left 左边界
|
||||
|
|
|
|||
|
|
@ -13,7 +13,11 @@ namespace extra2d {
|
|||
*
|
||||
* 创建一个默认的正交相机,视口范围为 (0, 0) 到 (800, 600)
|
||||
*/
|
||||
CameraComponent::CameraComponent() { setOrtho(0, 800, 600, 0, -1, 1); }
|
||||
CameraComponent::CameraComponent() { setOrtho(800.0f, 600.0f); }
|
||||
|
||||
void CameraComponent::setOrtho(float width, float height, float near, float far) {
|
||||
setOrtho(0.0f, width, height, 0.0f, near, far);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 设置投影类型
|
||||
|
|
|
|||
Loading…
Reference in New Issue