殺虫侍
Toggle main menu visibility
読み取り中…
検索中…
一致する文字列を見つけられません
enemy.h
[詳解]
1
7
#pragma once
8
#include "
actor.h
"
9
#include "
../model/box_model.h
"
10
#include "
collider.h
"
11
12
class
Player
;
13
17
enum
MoveType
18
{
19
Curve
,
20
Basic
,
21
};
22
29
class
Enemy
:
public
Actor
30
{
31
public
:
33
Enemy
();
34
36
~Enemy
();
37
43
void
Initialize
(
Renderer
&renderer,
Player
* pPlayer);
44
46
void
Setup
()
override
;
47
49
void
Update
()
override
;
50
52
void
Draw
()
override
;
53
55
void
Terminate
()
override
;
56
61
const
Collider
&
GetCollider
()
const
{
return
m_collider; }
62
67
void
TakeDamage
(
int
amount);
68
73
void
SetPosition
(
const
DirectX::XMFLOAT3& pos) { m_position = pos; }
74
79
void
SetMoveType
(
MoveType
type) { m_moveType = type; }
80
82
void
Attack
();
83
88
bool
IsDead
()
const
{
return
m_isDead; }
89
91
void
CancelAttack
();
92
93
private
:
95
void
move();
97
void
look();
99
void
calcMoveAxis();
101
void
calcBoxPos();
103
void
calcBoxRot();
111
float
lerpAngle(
float
a,
float
b,
float
t);
113
void
knockback();
115
void
curveLook();
117
void
basicLook();
119
void
setTargetPosRandom();
120
121
BoxModel
m_boxBody;
122
BoxModel
m_boxRight;
123
BoxModel
m_boxLeft;
124
Player
* m_pPlayer =
nullptr
;
125
Collider
m_collider;
126
Renderer
* m_pRenderer =
nullptr
;
127
128
DirectX::XMFLOAT3 m_position = { 0, 0, -5.f };
129
DirectX::XMFLOAT4 m_rotation = { 0, 0, 0, 0 };
130
131
DirectX::XMFLOAT3 m_forward = { 0, 0, 1 };
132
DirectX::XMFLOAT3 m_right = { 1, 0, 0 };
133
134
float
m_yaw;
135
float
m_pitch;
136
137
int
m_health = 30;
138
139
bool
m_isHit =
false
;
140
bool
m_isKnockback =
false
;
141
float
m_hitTimer = 0.f;
142
float
m_knockbackTimer = 0.f;
143
static
constexpr
float
HIT_DURATION = 0.25f;
144
static
constexpr
float
KNOCKBACK_DURATION = 0.5f;
145
146
float
m_wingTimer = 0.f;
147
float
m_waveTimer = 0.f;
148
149
MoveType
m_moveType =
MoveType::Basic
;
150
151
float
m_sideYawOffset = 0.f;
152
float
m_dirChangeTimer = 0.f;
153
154
DirectX::XMFLOAT3 m_targetPos{ 0,0,0 };
155
156
float
m_targetTimer = 0.f;
157
float
m_targetDuration = 3.f;
158
159
bool
m_isAttack =
false
;
160
float
m_attackTimer = 0.f;
161
162
bool
m_isDead =
false
;
163
float
m_deadTimer = 0.f;
164
};
actor.h
アクターの基底クラス定義
box_model.h
ボックス形状モデルクラスの定義
Actor
ゲーム内アクター(プレイヤー・敵など)の純粋仮想基底クラス
Definition
actor.h:15
BoxModel
ボックス(直方体)形状の 3D モデルクラス
Definition
box_model.h:16
Collider
球体ベースの当たり判定コンポーネント
Definition
collider.h:19
Enemy::Draw
void Draw() override
描画処理
Definition
enemy.cpp:137
Enemy::Setup
void Setup() override
シーン開始時の初期化処理
Definition
enemy.cpp:28
Enemy::SetPosition
void SetPosition(const DirectX::XMFLOAT3 &pos)
ワールド座標を設定する
Definition
enemy.h:73
Enemy::Initialize
void Initialize(Renderer &renderer, Player *pPlayer)
レンダラーとプレイヤーポインタを受け取って初期化する
Definition
enemy.cpp:15
Enemy::CancelAttack
void CancelAttack()
進行中の攻撃をキャンセルする
Definition
enemy.cpp:388
Enemy::Update
void Update() override
毎フレームの更新処理
Definition
enemy.cpp:53
Enemy::IsDead
bool IsDead() const
死亡しているか判定する
Definition
enemy.h:88
Enemy::GetCollider
const Collider & GetCollider() const
当たり判定コライダーを取得する
Definition
enemy.h:61
Enemy::Enemy
Enemy()
コンストラクタ
Definition
enemy.cpp:6
Enemy::Attack
void Attack()
攻撃アクションを開始する
Definition
enemy.cpp:383
Enemy::SetMoveType
void SetMoveType(MoveType type)
移動パターンを設定する
Definition
enemy.h:79
Enemy::~Enemy
~Enemy()
デストラクタ
Definition
enemy.cpp:10
Enemy::TakeDamage
void TakeDamage(int amount)
ダメージを受ける
Definition
enemy.cpp:334
Enemy::Terminate
void Terminate() override
終了処理・リソース解放
Definition
enemy.cpp:146
Player
プレイヤーキャラクタークラス
Definition
player.h:22
Renderer
Direct3D 11 デバイスとスワップチェーンを管理するレンダラークラス
Definition
renderer.h:21
collider.h
球体コライダーコンポーネントの定義
MoveType
MoveType
敵の移動パターンを表す列挙型
Definition
enemy.h:18
Curve
@ Curve
曲線的な移動
Definition
enemy.h:19
Basic
@ Basic
直線的な基本移動
Definition
enemy.h:20
scripts
actor
enemy.h
構築:
1.17.0