Skip to content

Commit

Permalink
攻撃のループ処理を実装
Browse files Browse the repository at this point in the history
  • Loading branch information
YutaTachibana0310 committed Aug 25, 2019
1 parent 401b561 commit 9b2b32f
Show file tree
Hide file tree
Showing 9 changed files with 102 additions and 12 deletions.
2 changes: 2 additions & 0 deletions 20190529_01三校合同2019夏.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,7 @@
<ClInclude Include="BossEnemyModel.h" />
<ClInclude Include="BossHitParticle.h" />
<ClInclude Include="BossHomingAttack.h" />
<ClInclude Include="BossIdle.h" />
<ClInclude Include="BossInit.h" />
<ClInclude Include="BossLargeDamage.h" />
<ClInclude Include="BossRebarAttack.h" />
Expand Down Expand Up @@ -355,6 +356,7 @@
<ClCompile Include="BossEnemyModel.cpp" />
<ClCompile Include="BossHitParticle.cpp" />
<ClCompile Include="BossHomingAttack.cpp" />
<ClCompile Include="BossIdle.cpp" />
<ClCompile Include="BossInit.cpp" />
<ClCompile Include="BossLargeDamage.cpp" />
<ClCompile Include="BossRebarAttack.cpp" />
Expand Down
20 changes: 13 additions & 7 deletions 20190529_01三校合同2019夏.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@
<Filter Include="ソース ファイル\Enemy\Model\State">
<UniqueIdentifier>{c61f044a-6561-4b82-920b-08f95d28823f}</UniqueIdentifier>
</Filter>
<Filter Include="ヘッダー ファイル\Enemy\State">
<Filter Include="ヘッダー ファイル\Enemy\Model\State">
<UniqueIdentifier>{68212930-f43b-4ee7-9b69-617aa999841f}</UniqueIdentifier>
</Filter>
</ItemGroup>
Expand Down Expand Up @@ -751,13 +751,13 @@
<Filter>ヘッダー ファイル\Framework</Filter>
</ClInclude>
<ClInclude Include="BossInit.h">
<Filter>ヘッダー ファイル\Enemy\State</Filter>
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
<ClInclude Include="BossRebarAttack.h">
<Filter>ヘッダー ファイル\Enemy\State</Filter>
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
<ClInclude Include="BossHomingAttack.h">
<Filter>ヘッダー ファイル\Enemy\State</Filter>
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
<ClInclude Include="BossController.h">
<Filter>ヘッダー ファイル\Enemy</Filter>
Expand All @@ -775,16 +775,16 @@
<Filter>ヘッダー ファイル\Enemy</Filter>
</ClInclude>
<ClInclude Include="BossDamageable.h">
<Filter>ヘッダー ファイル\Enemy\State</Filter>
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
<ClInclude Include="BossHitParticle.h">
<Filter>ヘッダー ファイル\Effect\Controller</Filter>
</ClInclude>
<ClInclude Include="BossLargeDamage.h">
<Filter>ヘッダー ファイル\Enemy\State</Filter>
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
<ClInclude Include="BossDefeat.h">
<Filter>ヘッダー ファイル\Enemy\State</Filter>
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
<ClInclude Include="ExplosionFire.h">
<Filter>ヘッダー ファイル\Effect\Controller</Filter>
Expand All @@ -795,6 +795,9 @@
<ClInclude Include="ExplosionFireCore.h">
<Filter>ヘッダー ファイル\Effect\Controller</Filter>
</ClInclude>
<ClInclude Include="BossIdle.h">
<Filter>ヘッダー ファイル\Enemy\Model\State</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="camera.cpp">
Expand Down Expand Up @@ -1352,6 +1355,9 @@
<ClCompile Include="ExplosionFireCore.cpp">
<Filter>ソース ファイル\Effect\Controller</Filter>
</ClCompile>
<ClCompile Include="BossIdle.cpp">
<Filter>ソース ファイル\Enemy\Model\State</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<FxCompile Include="Shaders\BloomFilter.fx">
Expand Down
4 changes: 3 additions & 1 deletion BossEnemyModel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
#include "BossDamageable.h"
#include "BossLargeDamage.h"
#include "BossDefeat.h"
#include "BossIdle.h"

#include "EnemyBulletController.h"

Expand Down Expand Up @@ -39,8 +40,9 @@ BossEnemyModel::BossEnemyModel(const Transform& player) : player(player)
fsm[State::Damageable] = new BossDamageable();
fsm[State::LargeDamage] = new BossLargeDamage();
fsm[State::Defeat] = new BossDefeat;
fsm[State::Idle] = new BossIdle();

//鉄筋のモデルをロード
//鉄筋のモデルをロード
ResourceManager::Instance()->LoadMesh("RebarObstacle", "data/MODEL/rebar.x");

//レベル初期化
Expand Down
1 change: 1 addition & 0 deletions BossEnemyModel.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ class BossEnemyModel
class BossIdle;
class BossLargeDamage;
class BossDefeat;
class BossIdle;
};

#endif
2 changes: 1 addition & 1 deletion BossHomingAttack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ int BossEnemyModel::BossHomingAttack::OnUpdate(BossEnemyModel* entity)

if (cntFrame == 300)
{
result = BossEnemyModel::State::Damageable;
result = BossEnemyModel::State::Idle;
}
return result;
}
45 changes: 45 additions & 0 deletions BossIdle.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
//=====================================
//
//ボスアイドル処理[BossIdle.cpp]
//Author:GP12A332 21 立花雄太
//
//=====================================
#include "BossIdle.h"
#include "BossEnemyActor.h"

/**************************************
マクロ定義
***************************************/

/**************************************
入場処理
***************************************/
void BossEnemyModel::BossIdle::OnStart(BossEnemyModel * entity)
{
entity->actor->ChangeAnimation(BossEnemyActor::AnimID::Idle);
cntFrame = 0;
}

/**************************************
更新処理
***************************************/
int BossEnemyModel::BossIdle::OnUpdate(BossEnemyModel * entity)
{
cntFrame++;

int next = BossEnemyModel::State::Idle;

if (cntFrame == 120)
{
if (entity->prevState == BossEnemyModel::State::HomingAttack)
next = BossEnemyModel::State::RebarAttack;

else if (entity->prevState == BossEnemyModel::State::RebarAttack)
next = BossEnemyModel::State::HomingAttack;

else
next = RandomRange(0, 100) < 50 ? BossEnemyModel::State::RebarAttack : BossEnemyModel::State::HomingAttack;
}

return next;
}
35 changes: 35 additions & 0 deletions BossIdle.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
//=====================================
//
//ボスアイドルヘッダ[BossIdle.h]
//Author:GP12B332 21 立花雄太
//
//=====================================
#ifndef _BOSSIDLE_H_
#define _BOSSIDLE_H_

#include "main.h"
#include "IStateMachine.h"
#include "BossEnemyModel.h"

/**************************************
前方宣言
***************************************/

/**************************************
マクロ・列挙子定義
***************************************/

/**************************************
クラス定義
***************************************/
class BossEnemyModel::BossIdle : public IStateMachine<BossEnemyModel>
{
public:
void OnStart(BossEnemyModel* entity);
int OnUpdate(BossEnemyModel* entity);

private:
int cntFrame;
};

#endif
3 changes: 1 addition & 2 deletions BossInit.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ int BossEnemyModel::BossInit::OnUpdate(BossEnemyModel *entity)
int result = BossEnemyModel::Init;
if (cntFrame == BOSSINIT_MOVE_DURATION)
{
entity->actor->ChangeAnimation(BossEnemyActor::AnimID::Idle);
result = BossEnemyModel::State::Damageable;
result = BossEnemyModel::State::Idle;
}

return result;
Expand Down
2 changes: 1 addition & 1 deletion BossRebarAttack.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ int BossEnemyModel::BossRebarAttack::OnUpdate(BossEnemyModel* entity)
entity->cntAttack++;
if (entity->cntAttack == 1)
{
result = BossEnemyModel::State::HomingAttack;
result = BossEnemyModel::State::Idle;
}
else
{
Expand Down

0 comments on commit 9b2b32f

Please sign in to comment.