ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
CameraComponent.h
浏览该文件的文档.
1
#pragma once
2
#include "
../Core/Core.h
"
3
#include "
Component.h
"
4
#include "
../Math.h
"
5
#include <SDL3/SDL_rect.h>
6
7
namespace
Shit
{
15
class
SHIT_API
CameraComponent
:
public
Component
{
16
public
:
17
CameraComponent
();
18
19
void
onAttach
()
override
;
20
void
onDestroy
()
override
;
21
22
// 坐标转换
23
Vector2
worldToScreen
(
const
Vector2
& worldPosition)
const
;
24
Vector2
screenToWorld
(
const
Vector2
& screenPosition)
const
;
25
26
Vector2
getPosition
()
const
;
27
Vector2
getSize
()
const
{
return
m_worldSize; }
28
float
getZoom
()
const
{
return
m_zoom; }
29
int
getPriority
()
const
{
return
m_priority; }
30
float
getPixelPerUnit
()
const
;
31
32
void
setSize
(
const
Vector2
& worldSize) { m_worldSize = worldSize; }
33
void
setZoom
(
float
zoom) { m_zoom = zoom; }
34
void
setPriority
(
int
priority) { m_priority = priority; }
35
36
const
SDL_FRect&
getViewportRatio
()
const
{
return
m_viewportRatio; }
37
void
setViewportRatio
(
const
SDL_FRect& ratio) { m_viewportRatio = ratio; }
38
39
private
:
40
Vector2
m_worldSize{ 1280.0f, 720.0f };
41
float
m_zoom = 1.0f;
42
int
m_priority = 0;
43
SDL_FRect m_viewportRatio{ 0.0f, 0.0f, 1.0f, 1.0f };
44
};
45
}
Component.h
Core.h
SHIT_API
#define SHIT_API
定义
Core.h:12
Math.h
Shit::CameraComponent::getSize
Vector2 getSize() const
视口世界大小
定义
CameraComponent.h:27
Shit::CameraComponent::CameraComponent
CameraComponent()
Shit::CameraComponent::setViewportRatio
void setViewportRatio(const SDL_FRect &ratio)
设置视口比例
定义
CameraComponent.h:37
Shit::CameraComponent::setPriority
void setPriority(int priority)
定义
CameraComponent.h:34
Shit::CameraComponent::worldToScreen
Vector2 worldToScreen(const Vector2 &worldPosition) const
世界坐标 → 屏幕像素坐标
Shit::CameraComponent::getPosition
Vector2 getPosition() const
相机中心位置(从 TransformComponent 同步读取)
Shit::CameraComponent::getZoom
float getZoom() const
缩放系数
定义
CameraComponent.h:28
Shit::CameraComponent::setSize
void setSize(const Vector2 &worldSize)
定义
CameraComponent.h:32
Shit::CameraComponent::onAttach
void onAttach() override
Shit::CameraComponent::getPixelPerUnit
float getPixelPerUnit() const
每逻辑单位对应的像素数
Shit::CameraComponent::getPriority
int getPriority() const
渲染优先级(小值先画)
定义
CameraComponent.h:29
Shit::CameraComponent::screenToWorld
Vector2 screenToWorld(const Vector2 &screenPosition) const
屏幕像素坐标 → 世界坐标
Shit::CameraComponent::setZoom
void setZoom(float zoom)
定义
CameraComponent.h:33
Shit::CameraComponent::onDestroy
void onDestroy() override
Shit::CameraComponent::getViewportRatio
const SDL_FRect & getViewportRatio() const
视口比例 (0~1)
定义
CameraComponent.h:36
Shit::Component::Component
Component()
Shit
定义
AudioPlayer.h:9
Shit::Vector2
glm::vec2 Vector2
定义
Math.h:5
ShitEngine
Component
CameraComponent.h
制作者
1.17.0