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

#include <Controller.h>

类 Controller 继承关系图:
Object base BattleController

Public 成员函数

 Controller ()
 创建输入交互组件和相机组件并进行绑定相机组件
 
virtual void Update (float deltaTime) override
 实现相机可活动框限制
 
virtual void BeginPlay () override
 
void PeekInfo ()
 更新点输入信息
 
void PeekInfo_ ()
 更新轴输入信息 就是一直按着的状态
 
Vector2D GetMousePosition () const
 获取鼠标世界坐标系位置
 
bool IsMouseClick () const
 获取鼠标是否按下
 
ObjectGetObjectUnderCursor ()
 该物体必须要有碰撞体 获取鼠标位置最上图层顺序的的物体
 
HitResult GetHitResultUnderCursor ()
 获取世界坐标系下鼠标所处位置最顶层的物体信息(该物体必须拥有碰撞体).
 
void EnableInput (bool enable)
 激活输入输出
 
virtual void DrawDebugPosition () const
 调试 在画布上显示物体的坐标
 
void MouseTick ()
 更新鼠标信息
 
void SetRectFrame (const Rect &frame)
 设置相机可活动框架.
 
- Public 成员函数 继承自 Object
 Object ()
 只是一个场景根组件(带有场景属性),不需要遍历,所以不需要加入容器
 
 ~Object ()
 组件删除的控制权在对象中
 
virtual void EndPlay ()
 设置虚函数,把不能写在析构却需要优先实现的写在这 例如delete this
 
void RegisterComponent (Component *pCom)
 在物体容器中注册组件.
 
void UnregisterComponent (Component *pCom)
 从物体组件容器中删除相应组件.
 
template<class T >
T * GetComponentByClass ()
 访问物体对象的跟他匹配的组件.
 
template<class T >
T * ConstructComponent ()
 创建组件,绑定到对象,并注册到对象容器.
 
void AttachTo (Object *par)
 设置所属物体 实现物体绑定.
 
void DetachForm (Object *par)
 解除所属物体 解除物体绑定.
 
void SetRootComponent (SceneComponent *newroot)
 设置场景根组件,物体以哪个组件场景属性作为自己的场景属性.
 
void Destroy ()
 用深度优先遍历进行遍历,借助栈来实现,实现物体及其所有绑定的物体类销毁
 
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 成员函数 继承自 base
 base ()
 
virtual ~base ()
 
std::string GetName () const
 
void SetName (const std::string &name)
 

Protected 成员函数

virtual void SetupInputComponent (InputComponent *inputcomponent)
 实现子类访问父类私有变量.
 

Protected 属性

class Cameracamera
 
float armLength = 20.f
 相机组件
 
- Protected 属性 继承自 Object
SceneComponent *const root = new SceneComponent
 场景根组件,赋予场景属性 刚创建物体一定同时创建了它的场景组件,不允许改变指向
 

Private 属性

InputComponentinputcomponent
 输入交互组件 不希望派生类随便访问
 

构造及析构函数说明

◆ Controller()

Controller::Controller ( )

创建输入交互组件和相机组件并进行绑定相机组件

成员函数说明

◆ BeginPlay()

void Controller::BeginPlay ( )
overridevirtual
备注
这样实现了派生类间接访问基类的私有变量,派生类的形参inputcomponent就是基类的变量 用了虚函数表子类会代替父类的虚函数这里是父类私有类

重载 Object .

◆ DrawDebugPosition()

void Controller::DrawDebugPosition ( ) const
virtual

调试 在画布上显示物体的坐标

重载 Object .

◆ EnableInput()

void Controller::EnableInput ( bool enable)

激活输入输出

◆ GetHitResultUnderCursor()

HitResult Controller::GetHitResultUnderCursor ( )

获取世界坐标系下鼠标所处位置最顶层的物体信息(该物体必须拥有碰撞体).

返回
HitResult 世界坐标系下鼠标所处位置最顶层的物体信息

◆ GetMousePosition()

Vector2D Controller::GetMousePosition ( ) const

获取鼠标世界坐标系位置

◆ GetObjectUnderCursor()

Object * Controller::GetObjectUnderCursor ( )

该物体必须要有碰撞体 获取鼠标位置最上图层顺序的的物体

获取世界坐标系下鼠标所处位置最顶层的物体

◆ IsMouseClick()

bool Controller::IsMouseClick ( ) const

获取鼠标是否按下

◆ MouseTick()

void Controller::MouseTick ( )

更新鼠标信息

◆ PeekInfo()

void Controller::PeekInfo ( )
inline

更新点输入信息

◆ PeekInfo_()

void Controller::PeekInfo_ ( )
inline

更新轴输入信息 就是一直按着的状态

◆ SetRectFrame()

void Controller::SetRectFrame ( const Rect & frame)

设置相机可活动框架.

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

◆ SetupInputComponent()

void Controller::SetupInputComponent ( InputComponent * inputcomponent)
protectedvirtual

实现子类访问父类私有变量.

参数
[in]inputcomponent在父类虚函数初始化中调用传入的实参就会是父类的变量

BattleController 重载.

◆ Update()

void Controller::Update ( float deltaTime)
overridevirtual

实现相机可活动框限制

重载 Object .

BattleController 重载.

类成员变量说明

◆ armLength

float Controller::armLength = 20.f
protected

相机组件

设置弹簧长度(控制屏幕缩放)

◆ camera

class Camera* Controller::camera
protected

◆ inputcomponent

InputComponent* Controller::inputcomponent
private

输入交互组件 不希望派生类随便访问