OROCHI
 
Loading...
Searching...
No Matches
GxAttackHit::GxObject Class Reference

イベントあたりオブジェクトクラス More...

#include <GxAttackHit.h>

Inheritance diagram for GxAttackHit::GxObject:
Collaboration diagram for GxAttackHit::GxObject:

Classes

class  GxAttackRecord
 
class  GxDamageRecord
 

Public Member Functions

初期化
 GxObject (void)
 デフォルトコンストラクタ
 
 ~GxObject (void) override
 デストラクタ
 
void initialize (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1) override
 オブジェクトの初期化
 
GX_FORCE_INLINE void initializeActiveOff (void) override
 アクティブOFF時のパラメータ初期化
 
void initializeUpdate (void) override
 更新前のパラメータ初期化
 
操作
b32 isNeedCheck (GxCollision::GxObject *pCollisionObject) override
 お互いの当たり判定が必要かどうか
 
void update (void) override
 オブジェクト位置の更新
 
void setHitParam (void)
 ヒットパラメータをセットする
 
b32 allocAttackRecord (void)
 攻撃記録情報の確保
 
void initializeAttackRecord (void)
 攻撃記録情報の初期化
 
u32 getAttackRecordIndex (u32 idDamage)
 空いている攻撃記録情報のインデックスを取得する
 
void registerAttackRecord (u32 index, GxAttackHit::GxObject *pTarget, const GxVector3 &position, const GxVector3 &vector, const GxVector3 &normal, u32 idDamage)
 攻撃記録情報への登録
 
b32 allocDamageRecord (void)
 ダメージ記録クラスの確保
 
void initializeDamageRecord (void)
 ダメージ記録の初期化
 
アクセサ
constexpr u32 getAttribute (void) const
 属性を取得
 
constexpr void setAttribute (u32 attribute)
 属性を設定
 
constexpr void onAttribute (u32 attribute)
 属性を有効化
 
constexpr void offAttribute (u32 attribute)
 属性を無効化
 
constexpr ATTACK_DIRECT getAttackDirecType (void) const
 攻撃ベクトル方向のタイプを取得
 
constexpr void setAttackDirecType (ATTACK_DIRECT type)
 攻撃ベクトル方向のタイプを設定
 
constexpr TYPE getType (void) const
 タイプの取得
 
void setType (TYPE type)
 タイプの設定
 
constexpr s32 getPriority (void) const
 優先順位の取得
 
constexpr void setPriority (s32 priority)
 優先順位の設定
 
constexpr u32 getDamageGroup (void) const
 ダメージグループの取得
 
constexpr void setDamageGroup (u32 damageGroup)
 ダメージグループの設定
 
GX_FORCE_INLINE b32 getResult (void) const
 当たったかどうかの取得
 
GX_FORCE_INLINE void setResult (b32 result)
 当たったかどうかの設定
 
constexpr GxObjectgetTarget (void)
 攻撃相手の取得
 
constexpr void setTarget (GxObject *pTarget)
 攻撃相手のセット
 
GX_FORCE_INLINE const GxVector3getOldCenter (void) const
 前フレーム中心位置を取得
 
void executeHitCallback (void)
 コールバック関数の実行
 
constexpr void setHitCallback (HIT_CALLBACK pCallBack)
 コールバック関数の設定
 
GX_FORCE_INLINE const GxVector3getHitPosOnDamage (void)
 ヒット点の取得
 
GX_FORCE_INLINE void setHitPosOnDamage (const GxVector3 &position)
 ヒット点の設定
 
GX_FORCE_INLINE const GxVector3getHitDirection (void) const
 攻撃方向の取得
 
GX_FORCE_INLINE void setHitDirection (const GxVector3 &vector)
 攻撃方向の設定
 
GX_FORCE_INLINE const GxVector3getHitNormal (void) const
 ダメージ法線方向の取得
 
GX_FORCE_INLINE void setHitNormal (const GxVector3 &normal)
 ダメージ法線方向の設定
 
constexpr GxAttackRecordgetAttackRecord (void) const
 攻撃記録クラス取得
 
constexpr GxDamageRecordgetDamageRecord (void) const
 ダメージ記録クラス取得
 
constexpr f32 getPower (void) const
 攻撃力を取得
 
constexpr void setPower (f32 power)
 攻撃力を設定
 
- Public Member Functions inherited from GxCollision::GxObject
 GxObject (void)
 デフォルトコンストラクタ
 
 ~GxObject (void) override
 デストラクタ
 
constexpr GxShapegetShape (void) const
 GXオブジェクト形状の取得
 
constexpr COLLISION_SHAPE getShapeType (void) const
 オブジェクト形状タイプの取得
 
constexpr GxCollision::GxWorldgetRegisterWorld (void) const
 登録したワールドのアドレスを取得
 
constexpr void setRegisterWorld (GxCollision::GxWorld *pWorld)
 登録したワールドのアドレスを設定
 
GX_FORCE_INLINE const GxMatrixAffinegetMatrixAddress0 (void) const
 マトリクス0のアドレス取得
 
GX_FORCE_INLINE const GxMatrixAffinegetMatrixAddress1 (void) const
 マトリクス1のアドレス取得
 
GX_FORCE_INLINE void setMatrixAddress0 (const GxMatrixAffine *pMatrix)
 マトリクス0のアドレス設定
 
GX_FORCE_INLINE void setMatrixAddress1 (const GxMatrixAffine *pMatrix)
 マトリクス1のアドレス設定
 
GX_FORCE_INLINE GxMatrixAffine getMatrix0 (void) const
 マトリクス0の取得
 
GX_FORCE_INLINE GxMatrixAffine getMatrix1 (void) const
 マトリクス1の取得
 
GX_FORCE_INLINE const GxVector3getOffset0 (void) const
 オフセット0の取得
 
GX_FORCE_INLINE const GxVector3getOffset1 (void) const
 オフセット1の取得
 
GX_FORCE_INLINE void setOffset0 (const GxVector3 &offset)
 オフセット0の設定
 
GX_FORCE_INLINE void setOffset1 (const GxVector3 &offset)
 オフセット1の設定
 
GX_FORCE_INLINE const GxQuaterniongetQuaternion (void)
 回転の取得
 
GX_FORCE_INLINE void setQuaternion (const GxQuaternion &quaternion)
 回転の設定
 
GX_FORCE_INLINE b32 getActiveFlag (u32 flag) const
 アクティブフラグ取得
 
constexpr u32 getActiveFlagAll (void) const
 全アクティブフラグ取得
 
GX_FORCE_INLINE void setActiveFlag (u32 flag, b32 value)
 アクティブフラグ設定
 
GX_FORCE_INLINE b32 isActive (void) const
 アクティブかどうか取得
 
void setActive (b32 active)
 アクティブかどうか設定
 
GX_FORCE_INLINE b32 isActiveOld (void) const
 
constexpr GxUnitBasegetUnit (void) const
 ユニット取得
 
GX_FORCE_INLINE void setUnit (GxUnitBase *pUnit)
 ユニット設定
 
constexpr u32 getId (void) const
 ID取得
 
constexpr void setId (u32 id)
 ID設定
 
constexpr s32 getMaterial (void) const
 マテリアルの取得
 
constexpr void setMaterial (s32 material)
 マテリアルの設定
 
constexpr u32 getCheckFlag (void) const
 チェックフラグの取得
 
constexpr void setCheckFlag (u32 flag)
 チェックフラグの設定
 
constexpr void onCheckFlag (u32 flag)
 チェックフラグの有効化
 
constexpr void offCheckFlag (u32 flag)
 チェックフラグの無効化
 
constexpr s16 getGroup (void) const
 グループの取得
 
constexpr s16 getMask (void) const
 マスクの取得
 
void setGroupMask (s16 group, s16 mask)
 グループ・マスク設定
 
b32 setSphereRadius (f32 radius)
 球の半径変更
 
b32 setMultisphereRadius (f32 radius0, f32 radius1)
 マルチ球の半径変更
 
b32 setCapsuleRadius (f32 radius)
 カプセルの半径変更
 
b32 setBoxExtent (const GxVector3 &extent)
 箱のサイズ変更
 
b32 setCylinderExtent (const f32 radius, const f32 heightHalf)
 円柱のサイズ変更
 
b32 transformMeshVertex (const GxMatrixAffine &matrix)
 メッシュ頂点の変形
 
void getCenterPosition (GxVector3 &centerPosition)
 中心位置の取得
 
const GxMatrixAffine getCenterMatrix (void)
 中心のマトリクスを取得
 
f32 getRadiusMin (void)
 最小半径の取得
 
const GxVector3 getNormal (const GxVector3 &position)
 法線の取得
 
GX_FORCE_INLINE btCollisionObject * getBulletCollisionObject (void)
 BULLETコリジョンオブジェクトの取得
 
constexpr btCollisionShape * getBulletCollisionShape (void) const
 BULLET形状の取得
 
GX_FORCE_INLINE void getPropertyActiveOld (void *const pValue)
 前回のアクティブを取得
 
GX_FORCE_INLINE void getPropertyActive (void *const pValue)
 アクティブを取得
 
constexpr void setPropertyActiveOld (const void *const)
 前回のアクティブを設定
 
GX_FORCE_INLINE void setPropertyActive (const void *const pValue)
 アクティブを設定
 
constexpr void setCollision (GxCollision *pCollision)
 親コリジョンの設定
 
constexpr GxCollisiongetCollision (void) const
 親コリジョンの取得
 
virtual void prepareCheck (void)
 当たり判定チェック前準備
 
void addOffset (const GxVector3 &offset)
 オフセット加算
 
virtual b32 isHitCheckFlag (u32 targetFlag)
 チェックフラグからあたり判定が必要かを調べる
 
virtual b32 isHitCheckFlagTrimesh (u32 triangleIndex, u32 targetFlag)
 メッシュ形状の三角形単位で、チェックフラグから当たり判定が必要かを調べる
 
virtual GX_FORCE_INLINE void initializeActiveOn (void)
 アクティブON時のパラメタ初期化
 
virtual b32 createSphere (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeSphere &sphere)
 球の作成
 
virtual b32 createBox (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeBox &box)
 ボックスの作成
 
virtual b32 createMultisphere (b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1, const GxShapeMultisphere &multisphere)
 マルチ球の作成
 
virtual b32 createCylinder (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCylinder &cylinder)
 円柱の作成
 
virtual b32 createCapsule (b32 active, u32 id, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeCapsule &capsule)
 カプセルの作成
 
virtual b32 createMesh (b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btTriangleIndexVertexArray *pVertex, b32 isCompress, GxVector3 *pAabbMin=nullptr, GxVector3 *pAabbMax=nullptr)
 メッシュの作成
 
virtual b32 createMesh (b32 active, const GxMatrixAffine *pMatrix, const GxVector3 &offset, const GxShapeTrimesh &trimesh, btBvhTriangleMeshShape *pBtTrimeshShape)
 メッシュの作成(外部からBULLET用のシェイプを取得)
 
void resetBulletShape (btCollisionShape *pBtShapeNew)
 Bullet形状を再設定
 
- Public Member Functions inherited from GxClassBase
constexpr GxClassBase (void)
 コンストラクタ
 
constexpr GxClassBase (const GxClassBase &base)
 コピーコンストラクタ
 
 ~GxClassBase (void) override
 デストラクタ
 
- Public Member Functions inherited from GxClassBaseRoot
constexpr GxClassBaseRoot (void)
 コンストラクタ
 
constexpr GxClassBaseRoot (const GxClassBaseRoot &)
 コピーコンストラクタ
 
virtual ~GxClassBaseRoot (void)
 デストラクタ
 
constexpr GxClassBaseRootoperator= (const GxClassBaseRoot &)
 代入演算子
 
virtual GxRttigetRtti (void) const =0
 Rttiの取得
 
virtual GX_FORCE_INLINE const GxTypedObjectgetDefaultObject (void)
 デフォルトオブジェクトを取得
 
GX_FORCE_INLINE b32 isDefaultObject (void)
 デフォルトオブジェクト判定
 

定義

enum class  SHIFT {
  ATTACK_HIT_ONE_HIT = 0 , ATTACK_HIT_CAPSULE_OLD_NEW , ATTACK_HIT_DUMMY_0 , ATTACK_HIT_DUMMY_1 ,
  ATTACK_HIT_MAX
}
 属性定義用シフト量定義 More...
 
enum  ATTRIBUTE { ATTRIBUTE_ONE_HIT = (1L << static_cast<s32>(SHIFT::ATTACK_HIT_ONE_HIT)) , ATTRIBUTE_MULTISPHERE_OLD_NEW = (1L << static_cast<s32>(SHIFT::ATTACK_HIT_CAPSULE_OLD_NEW)) }
 属性定義 More...
 
enum class  ATTACK_DIRECT {
  MANUAL = 0 , OLD_NEW , CENTER_HIT_POSITION , UNIT_DIFF ,
  UNIT_AXIS_Z , MAX
}
 攻撃ベクトルの方向 More...
 
enum class  TYPE { ERROR_ , ATTACK , DAMAGE , MAX }
 
enum  GROUP { GROUP_ATTACK = (0x01 << 0) , GROUP_DAMAGE = (0x01 << 1) }
 
typedef void(GxClassBaseRoot::*) HIT_CALLBACK(GxAttackHit::GxObject *pHit)
 コールバック定義
 

Additional Inherited Members

- Public Types inherited from GxCollision::GxObject
enum  {
  ACTIVE_FLAG_ACTIVE = (1UL << 0) , ACTIVE_FLAG_ACTIVE_OLD = (1UL << 1) , ACTIVE_FLAG_REQUEST_REGISTER = (1UL << 2) , ACTIVE_FLAG_REQUEST_BAN = (1UL << 3) ,
  ACTIVE_FLAG_REQUEST_DELETE = (1UL << 4)
}
 アクティブフラグ定義 More...
 
- Static Public Member Functions inherited from GxClassBaseRoot
static GX_FORCE_INLINE GxRtti__getStaticRtti (void)
 Rttiの取得
 
- Static Public Attributes inherited from GxCollision::GxObject
static constexpr u32 CHECK_FLAG_ALL = 0x7fffffff
 全フラグ定数
 
- Protected Member Functions inherited from GxCollision::GxObject
GX_FORCE_INLINE void updateActiveFlag (void)
 アクティブフラグ更新
 
GX_FORCE_INLINE void updateUnitPointer (void)
 ユニットポインタの更新
 
- Protected Attributes inherited from GxCollision::GxObject
btCollisionShape * _pBtShape
 BULLET用形状
 

Detailed Description

イベントあたりオブジェクトクラス

Member Enumeration Documentation

◆ ATTACK_DIRECT

攻撃ベクトルの方向

Enumerator
MANUAL 

手動指定(ワールド座標)

OLD_NEW 

攻撃側オブジェクトの前フレーム中心位置から現フレーム中心位置方向

CENTER_HIT_POSITION 

攻撃側オブジェクトの中心からヒット位置方向

UNIT_DIFF 

攻撃側ユニット位置からダメージ側ユニット位置方向

UNIT_AXIS_Z 

攻撃側ユニットのZ軸方向

MAX 

定義数

◆ ATTRIBUTE

属性定義

Enumerator
ATTRIBUTE_ONE_HIT 

1フレに1つのものにしか当たらない(貫通しない)

ATTRIBUTE_MULTISPHERE_OLD_NEW 

マルチ球を前フレ位置から現フレ位置にする ・半径および貼り付けるマトリクスは、マルチ球0側に指定する ・TYPE_ATTACKかつマルチ球のときのみ有効

◆ GROUP

グループ定義

Note
リソースに保存していないので、値は自由に変更可。
setType()時にtypeに応じてsetGroupMask()され、
Bulletのフィルター機能を用いてGROUP_ATTACKとGROUP_DAMAGEのペアのみが作成される。
Enumerator
GROUP_ATTACK 

攻撃側のあたり

GROUP_DAMAGE 

ダメージ側のあたり

◆ SHIFT

enum class GxAttackHit::GxObject::SHIFT
strongprotected

属性定義用シフト量定義

Enumerator
ATTACK_HIT_ONE_HIT 

初回ヒット時のみ

ATTACK_HIT_CAPSULE_OLD_NEW 

カプセル(衝突前後)

ATTACK_HIT_DUMMY_0 

ダミー

ATTACK_HIT_DUMMY_1 

ダミー

ATTACK_HIT_MAX 

定義数

◆ TYPE

enum class GxAttackHit::GxObject::TYPE
strong

攻撃当たりのタイプ

Note
リソースに保存しているので、値に注意。
setType()時にtypeに応じてsetGroupMask()され、
Bulletのフィルター機能を用いてTYPE_ATTACKとTYPE_DAMAGEのペアのみが作成される。
Enumerator
ERROR_ 

エラー

ATTACK 

攻撃用

DAMAGE 

ダメージ用

MAX 

定義数

Member Function Documentation

◆ allocAttackRecord()

b32 GxAttackHit::GxObject::allocAttackRecord ( void )

攻撃記録情報の確保

Returns
確保できたらtrue

◆ allocDamageRecord()

b32 GxAttackHit::GxObject::allocDamageRecord ( void )

ダメージ記録クラスの確保

Returns
確保できたらtrue

◆ getAttackRecordIndex()

u32 GxAttackHit::GxObject::getAttackRecordIndex ( u32 idDamage)

空いている攻撃記録情報のインデックスを取得する

Parameters
idDamage[in] ダメージ側のID
Returns
登録先インデックス
Here is the call graph for this function:
Here is the caller graph for this function:

◆ initialize()

void GxAttackHit::GxObject::initialize ( b32 active,
u32 id,
const GxMatrixAffine * pMatrix0,
const GxVector3 & offset0,
const GxMatrixAffine * pMatrix1,
const GxVector3 & offset1 )
overridevirtual

オブジェクトの初期化

Parameters
active[in] アクティブにするかどうか
id[in] 当たりID
pMatrix0[in] 当たりを引っ付けるマトリクス0
offset0[in] 当たりを引っ付けるオフセット0
pMatrix1[in] 当たりを引っ付けるマトリクス1
offset1[in] 当たりを引っ付けるオフセット1

Reimplemented from GxCollision::GxObject.

◆ initializeActiveOff()

GX_FORCE_INLINE void GxAttackHit::GxObject::initializeActiveOff ( void )
inlineoverridevirtual

アクティブOFF時のパラメータ初期化

Reimplemented from GxCollision::GxObject.

Here is the call graph for this function:

◆ initializeUpdate()

void GxAttackHit::GxObject::initializeUpdate ( void )
overridevirtual

更新前のパラメータ初期化

Reimplemented from GxCollision::GxObject.

Here is the caller graph for this function:

◆ isNeedCheck()

b32 GxAttackHit::GxObject::isNeedCheck ( GxCollision::GxObject * pCollisionObject)
overridevirtual

お互いの当たり判定が必要かどうか

Parameters
pCollisionObject[in] 判定相手
Returns
当たり判定すべきならtrue

Reimplemented from GxCollision::GxObject.

Here is the call graph for this function:

◆ registerAttackRecord()

void GxAttackHit::GxObject::registerAttackRecord ( u32 index,
GxAttackHit::GxObject * pTarget,
const GxVector3 & position,
const GxVector3 & direction,
const GxVector3 & normal,
u32 idDamage )

攻撃記録情報への登録

Parameters
index[in] 登録先インデックス
pTarget[in] 攻撃ヒットオブジェクト
position[in] ヒット位置(ダメージ側オブジェクト上)
direction[in] 攻撃方向
normal[in] ヒット位置での法線
idDamage[in] ダメージ側のID
Here is the caller graph for this function:

◆ setHitParam()

void GxAttackHit::GxObject::setHitParam ( void )

ヒットパラメータをセットする

Note
TYPE_ATTACKに対してのみ呼ばれる
Here is the call graph for this function:

◆ setType()

void GxAttackHit::GxObject::setType ( TYPE type)

タイプの設定

Parameters
type[in] タイプ
Here is the caller graph for this function:

◆ update()

void GxAttackHit::GxObject::update ( void )
overridevirtual

オブジェクト位置の更新

Reimplemented from GxCollision::GxObject.

Here is the call graph for this function:

The documentation for this class was generated from the following files: