참고
https://www.aleksandrhovhannisyan.com/blog/implementing-a-finite-state-machine-in-cpp/#what-is-a-finite-state-machine
https://gameprogrammingpatterns.com/state.html
https://ansohxxn.github.io/design%20pattern/chapter11/
https://docs.unrealengine.com/4.27/ko/AnimatingObjects/SkeletalMeshAnimation/StateMachines/Overview/
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jerrypoiu&logNo=221235988023
if(input == PRESS_B)
{
Jump();
}
2) 이단 점프를 막기 위해 bool 변수를 하나 도입해서 처리해준다.
if(input == PRESS_B)
{
if(!bIsJumping)
{
bIsJumping = true;
Jump();
}
}
3) 아래 키보드를 누르면 엎드리고 떼면 일어서는 코드를 작성한다.
if(input == PRESS_B)
{
if(!bIsJumping)
{
bIsJumping = true;
Jump();
}
}
else if(input == PRESS_DOWN)
{
if(!isJumping_)
{
Duck();
}
}
else if(input == RELEASE_DOWN)
{
Stand();
}
위처럼 하나의 기능이 추가될 때 마다 if 문이 늘어나고, 새로운 변수가 계속해서 늘어나게 된다는 문제점이 있다.
-> FSM으로 이러한 문제를 해결
...