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

圆形碰撞器. 更多...

#include <Collider.h>

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

Public 成员函数

 CircleCollider ()
 构造函数.
 
virtual void BeginPlay ()
 初始化逻辑.
 
virtual bool IsMouseOver () override
 判断是否跟鼠标发生了碰撞.
 
virtual void Update (float deltaTime) override
 实现更新碰撞坐标, 进行容器的更新.
 
virtual void DrawDebugLine ()
 绘制碰撞体的范围.
 
float GetRadius () const
 获取碰撞体半径.
 
void SetRadius (float radius)
 设置半径.
 
- 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)
 

Private 成员函数

virtual bool CollisionJudge (Collider *another) override
 碰撞判断.
 

Private 属性

float radius = 0
 半径
 
float radius_ini = 0
 标准半径尺寸规模
 

额外继承的成员函数

- 静态 Public 成员函数 继承自 Collider
static HitResult CollisionHitCircleToCircle (Collider *, Collider *)
 圆实体类型之间发生物理碰撞
 
static HitResult CollisionHitCircleToBox (Collider *, Collider *)
 圆实体和盒型实体之间发生物理碰撞
 
static HitResult CollisionHitBoxToBox (Collider *, Collider *)
 盒型和盒型实体之间发生物理碰撞
 
- 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
 是否激活
 

详细描述

圆形碰撞器.

构造及析构函数说明

◆ CircleCollider()

CircleCollider::CircleCollider ( )
inline

构造函数.

种类设置为圆形

成员函数说明

◆ BeginPlay()

virtual void CircleCollider::BeginPlay ( )
inlinevirtual

初始化逻辑.

获取刚体组件的指针

重载 Collider .

◆ CollisionJudge()

bool CircleCollider::CollisionJudge ( Collider * another)
overrideprivatevirtual

碰撞判断.

1.第一种用虚函数重写是为了分类跟它发生碰撞的形状 2.全部写在基类进行映射可以简化函数内部实现,发生判断之前已经分类了

参数
[in]another发生碰撞的碰撞体
返回
是否发生了碰撞

实现了 Collider.

◆ DrawDebugLine()

void CircleCollider::DrawDebugLine ( )
virtual

绘制碰撞体的范围.

实现了 Collider.

◆ GetRadius()

float CircleCollider::GetRadius ( ) const
inline

获取碰撞体半径.

返回
返回半径

◆ IsMouseOver()

bool CircleCollider::IsMouseOver ( )
overridevirtual

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

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

实现了 Collider.

◆ SetRadius()

void CircleCollider::SetRadius ( float radius)
inline

设置半径.

参数
[in]radius设置的半径大小 是正值

◆ Update()

void CircleCollider::Update ( float deltaTime)
overridevirtual

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

重载 Collider .

类成员变量说明

◆ radius

float CircleCollider::radius = 0
private

半径

◆ radius_ini

float CircleCollider::radius_ini = 0
private

标准半径尺寸规模