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

场景组件基类. 更多...

#include <SceneComponent.h>

类 SceneComponent 继承关系图:
Component base AudioPlayer Camera Collider Particle SpriteRenderer BoxCollider CircleCollider

Public 成员函数

virtual void Update (float deltaTime) override
 
void AttachTo (SceneComponent *par)
 设置所属组件
 
void DetachForm (SceneComponent *par)
 解除所属组件.
 
virtual void Destruct ()
 解除场景组件绑定并销毁
 
virtual void BeginPlay () override
 设置纯虚函数,把不能写在构造却需要优先实现的写在这.
 
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)
 

Protected 成员函数

void process_Destruct ()
 销毁组件
 

Protected 属性

SceneComponentparent = nullptr
 父指针
 
- Protected 属性 继承自 Component
class ObjectpOwner = nullptr
 处理控制逻辑 有对象物体的指针才能进行控制
 
bool bIsEnabled = true
 是否激活
 

Private 属性

Transform transform
 场景属性
 
std::set< SceneComponent * > children
 绑定的孩子容器
 

详细描述

场景组件基类.

成员函数说明

◆ AddPosition()

void SceneComponent::AddPosition ( const Vector2D & pos)
inline

加上一个坐标

◆ AddRotation()

void SceneComponent::AddRotation ( float rot)
inline

加上一个角度

◆ AttachTo()

void SceneComponent::AttachTo ( SceneComponent * par)

设置所属组件

实现场景组件的绑定 同时实现物体和子组件的绑定.

参数
父节点

◆ BeginPlay()

virtual void SceneComponent::BeginPlay ( )
inlineoverridevirtual

设置纯虚函数,把不能写在构造却需要优先实现的写在这.

重载 Component .

BoxCollider, Camera, CircleCollider, Collider , 以及 SpriteRenderer 重载.

◆ Destruct()

void SceneComponent::Destruct ( )
virtual

解除场景组件绑定并销毁

重载 Component .

◆ DetachForm()

void SceneComponent::DetachForm ( SceneComponent * par)

解除所属组件.

解除场景组件之间的绑定.

备注
!!!用户慎用
参数
[in]par父指针

这里有个逻辑问题一定要先解除再绑定
解决办法1.加上判定条件if(parent==par)

参数
父节点

◆ EndPlay()

virtual void SceneComponent::EndPlay ( )
inlineoverridevirtual

把一些不能写在析构函数的一些操作写在这里

重载 Component .

Collider 重载.

◆ GetLocalPosition()

Vector2D SceneComponent::GetLocalPosition ( ) const
inline

获取相对坐标

◆ GetLocalRotation()

float SceneComponent::GetLocalRotation ( ) const
inline

获取相对角度

◆ GetLocalScale()

Vector2D SceneComponent::GetLocalScale ( ) const
inline

获取相对缩放大小

◆ GetWorldPosition()

Vector2D SceneComponent::GetWorldPosition ( ) const

获取场景组件的世界坐标

◆ GetWorldRotation()

float SceneComponent::GetWorldRotation ( ) const

获取场景组件的世界旋转角度

◆ GetWorldScale()

Vector2D SceneComponent::GetWorldScale ( ) const

获取场景组件的世界的缩放大小

◆ process_Destruct()

void SceneComponent::process_Destruct ( )
protected

销毁组件

备注
使用递归来解除绑定并销毁 类似树的递归删除节点.

◆ SetLocalPosition()

void SceneComponent::SetLocalPosition ( const Vector2D & pos)
inline

设置相对坐标

◆ SetLocalRotation()

void SceneComponent::SetLocalRotation ( float rot)
inline

设置相对角度

◆ SetLocalScale()

void SceneComponent::SetLocalScale ( const Vector2D & scale)
inline

设置相对缩放大小

◆ Update()

virtual void SceneComponent::Update ( float deltaTime)
inlineoverridevirtual

类成员变量说明

◆ children

std::set<SceneComponent*> SceneComponent::children
private

绑定的孩子容器

◆ parent

SceneComponent* SceneComponent::parent = nullptr
protected

父指针

◆ transform

Transform SceneComponent::transform
private

场景属性