Files
DNF_DEV/source_game/Global/GameCamera.h

36 lines
1.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#pragma once
#include "EngineFrame/Base/Actor.h"
class GameMap;
class BaseObject;
class GameCamera : public Actor
{
private:
// 跟随对象
BaseObject *_FromActor = nullptr;
public:
// 缩放比率
float CameraRate = 1.0;
// 添加平滑移动相关的成员变量
bool _isSmoothMoving = false;
Vec2 _currentPosition; // 当前摄像机位置
Vec2 _velocity; // 当前移动速度(用于平滑移动)
float _smoothTime = 0.1f; // 平滑时间(秒),可调整
float _maxSpeed = 2000; // 最大移动速度,防止过快
public:
void SetFromActor(BaseObject *actor);
void Update(float deltaTime);
void SetPos(float x, float y, float z);
void AddPos(float x, float y, float z);
// 同步坐标相关
void SyncPos(float deltaTime);
void SyncPosByFromParent(float deltaTime);
// 平滑阻尼函数类似Unity的Mathf.SmoothDamp
Vec2 SmoothDamp(const Vec2 &current, const Vec2 &target, Vec2 &currentVelocity, float smoothTime, float maxSpeed, float deltaTime);
};