67 static constexpr u32 ID_COUNT = 16;
88 b32 check(u32 attackId, u32 damageGroup)
const;
91 void addData(u32 attackId, u32 damageGroup);
100 u32 _attackObjId[ID_COUNT];
101 u32 _damageObjGroup[ID_COUNT];
130 void update(
void)
override;
133 static void initializeUniqueId(
void);
136 static void clearUniqueId(
void);
139 static u32 getUniqueId(u32 threadNumber);
142 void initializeTargetId(
void);
145 b32 isSamePair(u32 attackId, u32 damageGroup)
const;
148 void setPairData(u32 attackId, u32 damageGroup);
164 GX_FORCE_INLINE
static void setDevelopDrawAttackHit(
b32 display ) { getGxSysMain()->setDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_ATTACK_HIT, display); }
167 GX_FORCE_INLINE
static b32 getDevelopDrawAttackHit(
void ) {
return getGxSysMain()->isOnDevelopFlag(DEVELOP_FLAG_COLLISION_DRAW_ATTACK_HIT); }
183 static u32* _pUniqueIdTable;
184 static u32 _uniqueIdTableCount;
186 GxPairRecord _pairRecord;
230 void check(
void)
override;
327 GX_ENUM_TABLE_MAX(
TYPE)
340 class GxAttackRecord;
341 class GxDamageRecord;
374 void update(
void)
override;
413 constexpr void onAttribute(u32 attribute) { _attribute |= attribute; }
415 constexpr void offAttribute(u32 attribute) { _attribute &= ~attribute; }
430 constexpr void setPriority(s32 priority) { _priority = priority; }
477 constexpr f32
getPower(
void)
const {
return _power; }
479 constexpr void setPower(f32 power) { _power = power; }
502 GxAttackRecord* _pAttackRecord;
503 GxDamageRecord* _pDamageRecord;
751GX_PHYSICS_NAMESPACE_END()
#define GX_PROHIBIT_CLASS_BASE(__CLASS__)
GxClassBase継承の禁止宣言
Definition GxBase.h:240
void GxTypedObject
その他
Definition GxDefine.h:213
#define GX_PHYSICS_NAMESPACE_BEGIN()
ネームスペースマクロ
Definition GxPhysics.h:28
PRIMITIVE_FILL_MODE
塗りつぶしモード
Definition GxPrimitive.h:31
Definition GxAttackHit.h:513
void registerInfo(u32 index, GxAttackHit::GxObject *pTarget, const GxVector3 &position, const GxVector3 &vector, const GxVector3 &normal, f32 distance, u32 damageID)
情報の登録
Definition GxAttackHit.cpp:1180
static constexpr u32 DETAIL_NUM
攻撃詳細情報個数
Definition GxAttackHit.h:527
GX_FORCE_INLINE GxDetail & getDetail(u32 index)
情報の取得
Definition GxAttackHit.h:569
void initialize(void)
初期化
Definition GxAttackHit.cpp:1118
void sortDetail(void)
情報を優先順位→距離でソートする
Definition GxAttackHit.cpp:1213
constexpr u32 getRegisterCount(void)
登録個数の取得
Definition GxAttackHit.h:575
~GxAttackRecord(void) override
デストラクタ
Definition GxAttackHit.h:551
GxAttackRecord(void)
デフォルトコンストラクタ
Definition GxAttackHit.cpp:1110
u32 getIndex(u32 idDamage)
インデックスの取得
Definition GxAttackHit.cpp:1138
Definition GxAttackHit.h:594
constexpr f32 getDamageMax(void) const
最大ダメージ値取得
Definition GxAttackHit.h:634
constexpr f32 getDamageSum(void) const
ダメージ和取得
Definition GxAttackHit.h:631
GxDamageRecord(void)
デフォルトコンストラクタ
Definition GxAttackHit.cpp:1274
~GxDamageRecord(void) override
デストラクタ
Definition GxAttackHit.h:617
void initialize(void)
初期化
Definition GxAttackHit.cpp:1282
constexpr void addDamageSum(f32 power)
ダメージ和加算
Definition GxAttackHit.h:629
constexpr void setDamageMax(f32 power)
最大ダメージ値設定
Definition GxAttackHit.h:636
イベントあたりオブジェクトクラス
Definition GxAttackHit.h:264
b32 isNeedCheck(GxCollision::GxObject *pCollisionObject) override
お互いの当たり判定が必要かどうか
Definition GxAttackHit.cpp:728
void setHitParam(void)
ヒットパラメータをセットする
Definition GxAttackHit.cpp:831
GX_FORCE_INLINE void setHitPosOnDamage(const GxVector3 &position)
ヒット点の設定
Definition GxAttackHit.h:458
GX_FORCE_INLINE const GxVector3 & getHitDirection(void) const
攻撃方向の取得
Definition GxAttackHit.h:461
void update(void) override
オブジェクト位置の更新
Definition GxAttackHit.cpp:786
GX_FORCE_INLINE void setHitNormal(const GxVector3 &normal)
ダメージ法線方向の設定
Definition GxAttackHit.h:468
SHIFT
属性定義用シフト量定義
Definition GxAttackHit.h:281
@ ATTACK_HIT_CAPSULE_OLD_NEW
カプセル(衝突前後)
@ ATTACK_HIT_ONE_HIT
初回ヒット時のみ
GX_FORCE_INLINE b32 getResult(void) const
当たったかどうかの取得
Definition GxAttackHit.h:438
~GxObject(void) override
デストラクタ
Definition GxAttackHit.cpp:671
GxObject(void)
デフォルトコンストラクタ
Definition GxAttackHit.cpp:651
constexpr GxAttackRecord * getAttackRecord(void) const
攻撃記録クラス取得
Definition GxAttackHit.h:471
constexpr TYPE getType(void) const
タイプの取得
Definition GxAttackHit.h:423
constexpr void setAttackDirecType(ATTACK_DIRECT type)
攻撃ベクトル方向のタイプを設定
Definition GxAttackHit.h:420
constexpr void setDamageGroup(u32 damageGroup)
ダメージグループの設定
Definition GxAttackHit.h:435
constexpr void setPriority(s32 priority)
優先順位の設定
Definition GxAttackHit.h:430
b32 allocDamageRecord(void)
ダメージ記録クラスの確保
Definition GxAttackHit.cpp:1075
GX_FORCE_INLINE const GxVector3 & getHitPosOnDamage(void)
ヒット点の取得
Definition GxAttackHit.h:456
constexpr void setTarget(GxObject *pTarget)
攻撃相手のセット
Definition GxAttackHit.h:445
constexpr GxObject * getTarget(void)
攻撃相手の取得
Definition GxAttackHit.h:443
constexpr ATTACK_DIRECT getAttackDirecType(void) const
攻撃ベクトル方向のタイプを取得
Definition GxAttackHit.h:418
GX_FORCE_INLINE const GxVector3 & getHitNormal(void) const
ダメージ法線方向の取得
Definition GxAttackHit.h:466
void registerAttackRecord(u32 index, GxAttackHit::GxObject *pTarget, const GxVector3 &position, const GxVector3 &vector, const GxVector3 &normal, u32 idDamage)
攻撃記録情報への登録
Definition GxAttackHit.cpp:1058
constexpr f32 getPower(void) const
攻撃力を取得
Definition GxAttackHit.h:477
b32 allocAttackRecord(void)
攻撃記録情報の確保
Definition GxAttackHit.cpp:1008
void(GxClassBaseRoot::*) HIT_CALLBACK(GxAttackHit::GxObject *pHit)
コールバック定義
Definition GxAttackHit.h:276
void executeHitCallback(void)
コールバック関数の実行
Definition GxAttackHit.cpp:996
constexpr void setAttribute(u32 attribute)
属性を設定
Definition GxAttackHit.h:411
constexpr u32 getAttribute(void) const
属性を取得
Definition GxAttackHit.h:409
void setType(TYPE type)
タイプの設定
Definition GxAttackHit.cpp:956
constexpr s32 getPriority(void) const
優先順位の取得
Definition GxAttackHit.h:428
GX_FORCE_INLINE void initializeActiveOff(void) override
アクティブOFF時のパラメータ初期化
Definition GxAttackHit.h:359
void initializeAttackRecord(void)
攻撃記録情報の初期化
Definition GxAttackHit.cpp:1021
GX_FORCE_INLINE void setHitDirection(const GxVector3 &vector)
攻撃方向の設定
Definition GxAttackHit.h:463
constexpr void setHitCallback(HIT_CALLBACK pCallBack)
コールバック関数の設定
Definition GxAttackHit.h:453
ATTACK_DIRECT
攻撃ベクトルの方向
Definition GxAttackHit.h:301
@ UNIT_AXIS_Z
攻撃側ユニットのZ軸方向
@ OLD_NEW
攻撃側オブジェクトの前フレーム中心位置から現フレーム中心位置方向
@ CENTER_HIT_POSITION
攻撃側オブジェクトの中心からヒット位置方向
@ UNIT_DIFF
攻撃側ユニット位置からダメージ側ユニット位置方向
constexpr GxDamageRecord * getDamageRecord(void) const
ダメージ記録クラス取得
Definition GxAttackHit.h:474
constexpr void setPower(f32 power)
攻撃力を設定
Definition GxAttackHit.h:479
constexpr void onAttribute(u32 attribute)
属性を有効化
Definition GxAttackHit.h:413
GX_FORCE_INLINE void setResult(b32 result)
当たったかどうかの設定
Definition GxAttackHit.h:440
constexpr void offAttribute(u32 attribute)
属性を無効化
Definition GxAttackHit.h:415
GX_FORCE_INLINE const GxVector3 & getOldCenter(void) const
前フレーム中心位置を取得
Definition GxAttackHit.h:448
GROUP
Definition GxAttackHit.h:335
@ GROUP_DAMAGE
ダメージ側のあたり
Definition GxAttackHit.h:337
@ GROUP_ATTACK
攻撃側のあたり
Definition GxAttackHit.h:336
void initializeUpdate(void) override
更新前のパラメータ初期化
Definition GxAttackHit.cpp:918
void initialize(b32 active, u32 id, const GxMatrixAffine *pMatrix0, const GxVector3 &offset0, const GxMatrixAffine *pMatrix1, const GxVector3 &offset1) override
オブジェクトの初期化
Definition GxAttackHit.cpp:718
u32 getAttackRecordIndex(u32 idDamage)
空いている攻撃記録情報のインデックスを取得する
Definition GxAttackHit.cpp:1034
ATTRIBUTE
属性定義
Definition GxAttackHit.h:291
@ ATTRIBUTE_MULTISPHERE_OLD_NEW
Definition GxAttackHit.h:296
@ ATTRIBUTE_ONE_HIT
Definition GxAttackHit.h:292
void initializeDamageRecord(void)
ダメージ記録の初期化
Definition GxAttackHit.cpp:1089
TYPE
Definition GxAttackHit.h:319
constexpr u32 getDamageGroup(void) const
ダメージグループの取得
Definition GxAttackHit.h:433
Definition GxAttackHit.h:54
u32 _idIndex
次の書き込み先
Definition GxAttackHit.h:99
オブジェクトあたりワールドクラス
Definition GxAttackHit.h:198
void calculateHitObject(btPersistentManifold *pPersistentManifold)
ヒットしたオブジェクトの処理
Definition GxAttackHit.cpp:450
~GxWorld(void) override
デストラクタ
Definition GxAttackHit.h:218
GxCollision::GxConvexCallback * createConvexCallback(const btVector3 &checkFrom, const btVector3 &checkEnd, GxConditionInformation *pConditionInfo) override
Definition GxAttackHit.cpp:441
virtual void calculateAttackDirection(GxVector3 &direction, GxObject *pAttack, GxObject *pDamage, const GxVector3 &hitPositionOnDamage)
攻撃方向ベクトルを計算
Definition GxAttackHit.cpp:544
GxWorld(void)
デフォルトコンストラクタ
Definition GxAttackHit.cpp:351
void postBulletUpdate(void) override
Definition GxAttackHit.cpp:376
GxCollision::GxRayCallback * createRayCallback(const btVector3 &rayFrom, const btVector3 &rayEnd, GxConditionInformation *pConditionInfo) override
Definition GxAttackHit.cpp:426
オブジェクトあたりクラス
Definition GxAttackHit.h:20
b32 isInvincible(void) const
無敵時間判定
Definition GxAttackHit.h:151
GX_FORCE_INLINE GxPairRecord * getPairRecord(void)
記録先クラスアドレスの取得
Definition GxAttackHit.h:175
constexpr void setDeltaTimeRatio(f32 deltaTimeRatio)
デルタタイム比率設定
Definition GxAttackHit.h:157
constexpr void setInvincibleTime(f32 time)
無敵時間設定
Definition GxAttackHit.h:154
オブジェクト基底クラス
Definition GxBase.h:88
基底クラス
Definition GxBase.h:51
Collision基本オブジェクトクラス
Definition GxCollision.h:489
Collision基本ワールドクラス
Definition GxCollision.h:236
virtual void check(void)
Definition GxCollision.cpp:664
コリジョン基本クラス
Definition GxCollision.h:20
プロパティクラス
Definition GxProperty.h:48
実行時型情報クラス
Definition GxRtti.h:154
Definition GxAttackHit.h:724
GxConvexCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, GxConditionInformation *pConditionInfo)
コンストラクタ
Definition GxAttackHit.h:731
bool needsCollision(btBroadphaseProxy *pProxy) const override
Definition GxAttackHit.cpp:1341
攻撃詳細情報構造体
Definition GxAttackHit.h:531
GxVector3 _direction
攻撃ベクトル
Definition GxAttackHit.h:533
GxVector3 _positionOnDamage
ヒットした点
Definition GxAttackHit.h:532
u32 _id
ヒットID
Definition GxAttackHit.h:538
GxVector3 _normal
攻撃した点の法線
Definition GxAttackHit.h:534
f32 _distanceSquare
攻撃側オブジェクト中心からの距離の二乗
Definition GxAttackHit.h:535
b32 _isActive
情報が入っているかどうか
Definition GxAttackHit.h:536
GxAttackHit::GxObject * _pTarget
ヒット相手
Definition GxAttackHit.h:537
Definition GxAttackHit.h:690
GxRayCallback(const btVector3 &rayFromWorld, const btVector3 &rayToWorld, GxConditionInformation *pConditionInfo)
コンストラクタ
Definition GxAttackHit.h:697
bool needsCollision(btBroadphaseProxy *pProxy) const override
Definition GxAttackHit.cpp:1305
Definition GxCollision.h:898
Definition GxCollision.h:848
アフィン変換行列(行優先)
Definition GxMatrix.h:330
3次元ベクトル
Definition GxVector.h:245
32bitブーリアン
Definition GxDefine.h:173