Skip to content

Commit ee95b0c

Browse files
committed
Feat: Enemy 피격할때마다 피격 애니메이션 출력 하도록 변경
1 parent fb9e8ea commit ee95b0c

5 files changed

Lines changed: 13 additions & 4 deletions

File tree

VPEngine/AnimationSystem.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ void AnimationSystem::OnChangeAnimation(std::any aniBlendData)
3535
auto aniComp = GetSceneManager()->GetComponent<AnimationComponent>(aniblenddata.EntityID);
3636
aniComp->isLoop = aniblenddata.Loop;
3737

38-
if (aniComp->curAni != aniblenddata.Index) //애니메이션이 다를때만 변경 같으면 그대로
38+
if (aniComp->curAni != aniblenddata.Index || aniblenddata.IsAgain) //애니메이션이 다를때만 변경 같으면 그대로
3939
{
4040
aniComp->preAni = aniComp->curAni;
4141
aniComp->curAni = aniblenddata.Index;

VPEngine/EngineStructs.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ namespace VisPred
1010
float Speed{};
1111
float TransitionTime{};
1212
bool Loop;
13+
bool IsAgain = false;
1314
};
1415

1516
enum class Skill

VisionpredatorProcess/EnemyChaseState.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,12 @@ void EnemyChaseState::Update(const std::shared_ptr<Component>& component, float
4343
{
4444
navComp->IsChase = false;
4545

46-
if (animationComp->IsBlending == false)
46+
//if (animationComp->IsBlending == false)
4747
if (enemyComp->OnHit == true)
4848
{
49+
if (enemyComp->MovementState == &EnemyMovementState::s_HitReaction)
50+
enemyComp->MovementState->Enter(enemyComp);
51+
4952
ChangeCurrentState(enemyComp, &EnemyMovementState::s_HitReaction);
5053
enemyComp->HeatComplete = false;
5154
}

VisionpredatorProcess/EnemyIdleMovementState.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ void EnemyIdleMovementState::Enter(const std::shared_ptr<Component>& component)
1313
auto enemyComp = std::dynamic_pointer_cast<EnemyComponent>(component);
1414

1515
if(dynamic_cast<EnemyDeadState*>(enemyComp->BehaviorState) == &EnemyBehaviorState::s_Dead)
16-
ChangeCurrentAnimation(*enemyComp, VisPred::Game::EnemyAni::DIE, 2.f, 0.f, false);
16+
ChangeCurrentAnimation(*enemyComp, VisPred::Game::EnemyAni::DIE, 2.f, 0.01f, false);
1717
else
1818
ChangeCurrentAnimation(*enemyComp, VisPred::Game::EnemyAni::IDLE, 2.f);
1919
}

VisionpredatorProcess/EnemyState.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,11 @@ float EnemyState::DetectTarget(EnemyComponent& enemyComp, float deltaTime)
7979
{
8080
enemyComp.OnHit = false;
8181

82+
const std::shared_ptr<EnemyComponent> temp(&enemyComp, null_deleter{});
83+
84+
if (enemyComp.MovementState == &EnemyMovementState::s_HitReaction)
85+
enemyComp.MovementState->Enter(temp);
86+
8287
ChangeCurrentState(enemyComp, &EnemyMovementState::s_HitReaction);
8388
}
8489
//else
@@ -265,7 +270,7 @@ void EnemyState::ChangeCurrentAnimation(const std::shared_ptr<EnemyComponent>& e
265270

266271
enemyComp->CurrentAni = animation;
267272

268-
VisPred::Engine::AniBlendData temp{ enemyComp->GetEntityID(), static_cast<int>(animation), speed, transitionTime, isLoop };
273+
VisPred::Engine::AniBlendData temp{ enemyComp->GetEntityID(), static_cast<int>(animation), speed, transitionTime, isLoop, isAgain };
269274

270275
const std::any data = temp;
271276
if (true == isImmediate)

0 commit comments

Comments
 (0)