easyx_framework V1.0.0
基于easyx的c++游戏框架
 
载入中...
搜索中...
未找到
Camera类 参考

摄像机组件. 更多...

#include <Camera.h>

类 Camera 继承关系图:
SceneComponent Component base

Public 成员函数

 Camera ()
 构造函数 设置屏幕中心位置.
 
 ~Camera ()
 
virtual void BeginPlay () override
 初始化虚拟参数 防止开始产生一定距离偏差进行处理
 
Vector2D GetCameraPosition ()
 获取相机虚拟位置.
 
float GetSpringArmLength ()
 获取虚拟弹簧长度.
 
void SetMainCamera ()
 设置世界主相机.
 
void SetSpringArmLength (float length)
 设置虚拟弹簧长度.
 
void SetSmoothness (short smooth)
 设置平滑度.
 
void SetDistanceThreshold (float threshold)
 设置线性阈值.
 
void SetRectFrame (const Rect &frame)
 设置相机可活动框架.
 
void ShakeCamera (float indensity, int decay=5)
 震动相机
 
- Public 成员函数 继承自 SceneComponent
virtual void Update (float deltaTime) override
 
void AttachTo (SceneComponent *par)
 设置所属组件
 
void DetachForm (SceneComponent *par)
 解除所属组件.
 
virtual void Destruct ()
 解除场景组件绑定并销毁
 
virtual void EndPlay () override
 把一些不能写在析构函数的一些操作写在这里
 
Vector2D GetLocalPosition () const
 获取相对坐标
 
float GetLocalRotation () const
 获取相对角度
 
Vector2D GetLocalScale () const
 获取相对缩放大小
 
Vector2D GetWorldPosition () const
 获取场景组件的世界坐标
 
float GetWorldRotation () const
 获取场景组件的世界旋转角度
 
Vector2D GetWorldScale () const
 获取场景组件的世界的缩放大小
 
void SetLocalPosition (const Vector2D &pos)
 设置相对坐标
 
void SetLocalRotation (float rot)
 设置相对角度
 
void SetLocalScale (const Vector2D &scale)
 设置相对缩放大小
 
void AddPosition (const Vector2D &pos)
 加上一个坐标
 
void AddRotation (float rot)
 加上一个角度
 
- Public 成员函数 继承自 Component
void SetOwner (class Object *owner)
 设置绑定对象.
 
virtual void Activate ()
 激活组件
 
virtual void Deactivate ()
 停用组件
 
ObjectGetOwner () const
 获取绑定对象指针
 
- Public 成员函数 继承自 base
 base ()
 
virtual ~base ()
 
std::string GetName () const
 
void SetName (const std::string &name)
 

Private 成员函数

Vector2D Lerp (Vector2D start, Vector2D end, float t)
 线性插值.
 
float Lerp (float start, float end, float t)
 线性插值.
 
float SmoothStep (float x)
 平滑处理.
 
void Calculate ()
 实现计算相机虚拟坐标.
 

Private 属性

Transform camera_virtual
 虚拟相机场景属性
 
Rect frame
 相机可活动框
 
float distanceThreshold = 50.f
 线性阈值1~500
 
short Smoothness = 50
 平滑度0~100
 
float ShakeIndensity = 0.f
 震动强度 0~100
 
bool shakeFlag = false
 震动标志位
 
Vector2D shakeCenter = Vector2D()
 震动中心
 
Vector2D shakeSpeed = Vector2D(0.05f, 0.05f)
 震动速度
 
int shakeDecay = 5
 震动衰减系数1~100
 
float springArmLength = 20.f
 弹簧长度1~10000
 
float springArmLength_virtual = 100.f
 虚拟弹簧长度
 
float smoothnessForSpringArm = 20.f
 弹簧平滑度0~100
 
class ControllercontrolAttached = nullptr
 

友元

class SpriteRenderer
 
class Particle
 
class Controller
 
class BoxCollider
 
class World
 
void Object::DrawDebugPosition () const
 

额外继承的成员函数

- Protected 成员函数 继承自 SceneComponent
void process_Destruct ()
 销毁组件
 
- Protected 属性 继承自 SceneComponent
SceneComponentparent = nullptr
 父指针
 
- Protected 属性 继承自 Component
class ObjectpOwner = nullptr
 处理控制逻辑 有对象物体的指针才能进行控制
 
bool bIsEnabled = true
 是否激活
 

详细描述

摄像机组件.

构造及析构函数说明

◆ Camera()

Camera::Camera ( )
inline

构造函数 设置屏幕中心位置.

◆ ~Camera()

Camera::~Camera ( )
inline

成员函数说明

◆ BeginPlay()

void Camera::BeginPlay ( )
overridevirtual

初始化虚拟参数 防止开始产生一定距离偏差进行处理

重载 SceneComponent .

◆ Calculate()

void Camera::Calculate ( )
private

实现计算相机虚拟坐标.

实现计算相机坐标

◆ GetCameraPosition()

Vector2D Camera::GetCameraPosition ( )
inline

获取相机虚拟位置.

返回
相机虚拟位置

◆ GetSpringArmLength()

float Camera::GetSpringArmLength ( )
inline

获取虚拟弹簧长度.

返回
虚拟弹簧长度

◆ Lerp() [1/2]

float Camera::Lerp ( float start,
float end,
float t )
private

线性插值.

参数
[in]start开始值
[in]end结束值
{in]t 系数 0.001~0.1(尽量小效果会好)
返回
要插的值坐标

◆ Lerp() [2/2]

Vector2D Camera::Lerp ( Vector2D start,
Vector2D end,
float t )
private

线性插值.

参数
[in]start开始坐标
[in]end结束坐标
[in]t系数 0.001~0.1(尽量小效果会好)
返回
要插的值坐标

◆ SetDistanceThreshold()

void Camera::SetDistanceThreshold ( float threshold)

设置线性阈值.

参数
[in]threshold线性阈值

◆ SetMainCamera()

void Camera::SetMainCamera ( )

设置世界主相机.

◆ SetRectFrame()

void Camera::SetRectFrame ( const Rect & frame)

设置相机可活动框架.

参数
[in]frame相机可活动框(视野框)

◆ SetSmoothness()

void Camera::SetSmoothness ( short smooth)

设置平滑度.

参数
[in]smooth平滑度

◆ SetSpringArmLength()

void Camera::SetSpringArmLength ( float length)

设置虚拟弹簧长度.

参数
[in]length弹簧长度

◆ ShakeCamera()

void Camera::ShakeCamera ( float indensity,
int decay = 5 )

震动相机

参数
[in]indensity震动强度
[in]decay震动衰减系数 默认为5

◆ SmoothStep()

float Camera::SmoothStep ( float x)
private

平滑处理.

参数
[in]x要平滑处理的值
返回
处理之后的值

友元及相关符号说明

◆ BoxCollider

friend class BoxCollider
friend

◆ Controller

friend class Controller
friend

◆ Object::DrawDebugPosition

void Object::DrawDebugPosition ( ) const
friend

◆ Particle

friend class Particle
friend

◆ SpriteRenderer

friend class SpriteRenderer
friend

◆ World

friend class World
friend

类成员变量说明

◆ camera_virtual

Transform Camera::camera_virtual
private

虚拟相机场景属性

◆ controlAttached

class Controller* Camera::controlAttached = nullptr
private

◆ distanceThreshold

float Camera::distanceThreshold = 50.f
private

线性阈值1~500

◆ frame

Rect Camera::frame
private

相机可活动框

◆ shakeCenter

Vector2D Camera::shakeCenter = Vector2D()
private

震动中心

◆ shakeDecay

int Camera::shakeDecay = 5
private

震动衰减系数1~100

◆ shakeFlag

bool Camera::shakeFlag = false
private

震动标志位

◆ ShakeIndensity

float Camera::ShakeIndensity = 0.f
private

震动强度 0~100

◆ shakeSpeed

Vector2D Camera::shakeSpeed = Vector2D(0.05f, 0.05f)
private

震动速度

◆ Smoothness

short Camera::Smoothness = 50
private

平滑度0~100

◆ smoothnessForSpringArm

float Camera::smoothnessForSpringArm = 20.f
private

弹簧平滑度0~100

◆ springArmLength

float Camera::springArmLength = 20.f
private

弹簧长度1~10000

◆ springArmLength_virtual

float Camera::springArmLength_virtual = 100.f
private

虚拟弹簧长度