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

盒型碰撞器. 更多...

#include <Collider.h>

类 BoxCollider 继承关系图:
Collider SceneComponent Component base

Public 成员函数

 BoxCollider ()
 
virtual void BeginPlay ()
 初始化逻辑.
 
virtual bool IsMouseOver () override
 判断是否跟鼠标发生了碰撞.
 
virtual void Update (float deltaTime) override
 实现更新碰撞坐标, 进行容器的更新.
 
virtual void DrawDebugLine ()
 绘制调试线 _debug_模式执行.
 
Vector2D GetSize () const
 获取大小.
 
void SetSize (Vector2D size)
 设置大小.
 
- Public 成员函数 继承自 Collider
 Collider ()
 构造函数.
 
virtual ~Collider ()
 
virtual void EndPlay () override
 处理析构处理不了的.
 
const std::vector< Object * > & GetCollisionsByType (CollisionType type)
 由种类名获取所有跟这个碰撞体有碰撞的物体容器.
 
const int GetLayer () const
 获取碰撞层级.
 
void SetLayer (int layer)
 设置碰撞层级.
 
CollisionType GetType () const
 获取碰撞物体种类.
 
void SetType (CollisionType type)
 设置碰撞物体种类.
 
ColliderShape GetShape () const
 获取碰撞形状.
 
void SetCollisionMode (ColliderMode mode)
 设置碰撞模式.
 
ColliderMode GetCollisionMode ()
 获取碰撞模式.
 
virtual void Deactivate () override
 停用碰撞体.
 
bool IsCollisionsEmpty () const
 是否与任何碰撞体无接触
 
void SetPhysicsMaterial (const PhysicsMaterial &material)
 设置物理材质
 
Rect GetRect () const
 
HitResult CollisionHit (Collider *another)
 
- Public 成员函数 继承自 SceneComponent
void AttachTo (SceneComponent *par)
 设置所属组件
 
void DetachForm (SceneComponent *par)
 解除所属组件.
 
virtual void Destruct ()
 解除场景组件绑定并销毁
 
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 ()
 激活组件
 
ObjectGetOwner () const
 获取绑定对象指针
 
- Public 成员函数 继承自 base
 base ()
 
virtual ~base ()
 
std::string GetName () const
 
void SetName (const std::string &name)
 

静态 Public 成员函数

static Vector2D GetOverlapRect (Rect rect1, Rect rect2)
 获取重叠的矩阵大小.
 
- 静态 Public 成员函数 继承自 Collider
static HitResult CollisionHitCircleToCircle (Collider *, Collider *)
 圆实体类型之间发生物理碰撞
 
static HitResult CollisionHitCircleToBox (Collider *, Collider *)
 圆实体和盒型实体之间发生物理碰撞
 
static HitResult CollisionHitBoxToBox (Collider *, Collider *)
 盒型和盒型实体之间发生物理碰撞
 

Private 成员函数

virtual bool CollisionJudge (Collider *another) override
 碰撞判断(纯虚函数).
 

Private 属性

Vector2D size = Vector2D(0, 0)
 盒型大小
 
Vector2D size_ini = Vector2D(0, 0)
 

额外继承的成员函数

- Public 属性 继承自 Collider
CollisionOverlapDelegate OnComponentBeginOverlap
 碰撞体刚接触的委托
 
CollisionOverlapDelegate OnComponentEndOverlap
 碰撞体刚从接触到不重叠的委托
 
CollisionHitOverlapDelegate OnComponentHitOverlap
 发生实体碰撞的委托
 
- 静态 Public 属性 继承自 Collider
static HitResult(* CollisionHitMap [3])(Collider *, Collider *)
 映射关系 圆是0 方是1 进行加法
 
- Protected 成员函数 继承自 Collider
- Protected 成员函数 继承自 SceneComponent
void process_Destruct ()
 销毁组件
 
- Protected 属性 继承自 Collider
PhysicsMaterial material
 物理材质
 
ColliderShape shape = ColliderShape::Circle
 碰撞形状
 
Rect rec_pos = {0,0,0,0}
 矩形框区域
 
- Protected 属性 继承自 SceneComponent
SceneComponentparent = nullptr
 父指针
 
- Protected 属性 继承自 Component
class ObjectpOwner = nullptr
 处理控制逻辑 有对象物体的指针才能进行控制
 
bool bIsEnabled = true
 是否激活
 

详细描述

盒型碰撞器.

构造及析构函数说明

◆ BoxCollider()

BoxCollider::BoxCollider ( )
inline

成员函数说明

◆ BeginPlay()

virtual void BoxCollider::BeginPlay ( )
inlinevirtual

初始化逻辑.

获取刚体组件的指针

重载 Collider .

◆ CollisionJudge()

bool BoxCollider::CollisionJudge ( Collider * another)
overrideprivatevirtual

碰撞判断(纯虚函数).

子类重写

参数
[in]another检测的碰撞体
返回
是否发生了碰撞(即重叠)

实现了 Collider.

◆ DrawDebugLine()

void BoxCollider::DrawDebugLine ( )
virtual

绘制调试线 _debug_模式执行.

实现了 Collider.

◆ GetOverlapRect()

Vector2D BoxCollider::GetOverlapRect ( Rect rect1,
Rect rect2 )
static

获取重叠的矩阵大小.

需传入已经确定发生碰撞的两个碰撞器

参数
[in]rect1矩形框1
[in]rect2矩形框2
返回
得到重叠矩形

◆ GetSize()

Vector2D BoxCollider::GetSize ( ) const
inline

获取大小.

返回
大小

◆ IsMouseOver()

bool BoxCollider::IsMouseOver ( )
overridevirtual

判断是否跟鼠标发生了碰撞.

返回
鼠标是否在碰撞体内部

实现了 Collider.

◆ SetSize()

void BoxCollider::SetSize ( Vector2D size)
inline

设置大小.

参数
[in]radius设置的大小

◆ Update()

void BoxCollider::Update ( float deltaTime)
overridevirtual

实现更新碰撞坐标, 进行容器的更新.

重载 Collider .

类成员变量说明

◆ size

Vector2D BoxCollider::size = Vector2D(0, 0)
private

盒型大小

◆ size_ini

Vector2D BoxCollider::size_ini = Vector2D(0, 0)
private