~ 개요 ~
■ 엔진
AnimationInfo
- 애니메이션이 마지막까지 재생되어야 끝났다고 판정되게 수정
Actor
- Render, Collision의 Activate와 Destroy
■ 컨텐츠
커비 상태 및 이동
- Squeeze 상태 추가
- 벽을 만나면 Squeeze된 이후에 벽 방향 방향키가 무력화되도록 수정
# 엔진
# 컨텐츠
커비 상태 및 이동
void APlayer::Squeeze(float _DeltaTime)
{
if (Renderer->IsCurAnimationEnd() == true)
{
Renderer->ChangeAnimation(GetAnimationName("Idle"));
}
if (UEngineInput::IsPress(VK_LEFT))
{
AddMoveVector(FVector::Left * _DeltaTime);
}
if (UEngineInput::IsPress(VK_RIGHT))
{
AddMoveVector(FVector::Right * _DeltaTime);
}
if (UEngineInput::IsFree(VK_LEFT) && UEngineInput::IsFree(VK_RIGHT))
{
StateChange(EPlayState::Idle);
return;
}
if (UEngineInput::IsDown(VK_SPACE))
{
StateChange(EPlayState::Jump);
return;
}
if (UEngineInput::IsPress(VK_DOWN))
{
StateChange(EPlayState::Crouch);
return;
}
MoveUpdate(_DeltaTime);
}
void APlayer::Idle(float _DeltaTime)
{
if (UEngineInput::IsDown('1'))
{
StateChange(EPlayState::FreeMove);
return;
}
if (UEngineInput::IsDown('2'))
{
StateChange(EPlayState::CameraFreeMove);
return;
}
if (IsWallCheck() == false)
{
if (UEngineInput::IsPress(VK_LEFT) || UEngineInput::IsPress(VK_RIGHT))
{
StateChange(EPlayState::Run);
return;
}
}
else if (IsRightWallCheck() == true)
{
if (UEngineInput::IsPress(VK_LEFT))
{
StateChange(EPlayState::Run);
return;
}
}
else if (IsLeftWallCheck() == true)
{
if (UEngineInput::IsPress(VK_RIGHT))
{
StateChange(EPlayState::Run);
return;
}
}
if (UEngineInput::IsDown(VK_SPACE))
{
StateChange(EPlayState::Jump);
return;
}
if (UEngineInput::IsPress(VK_DOWN))
{
StateChange(EPlayState::Crouch);
return;
}
MoveUpdate(_DeltaTime);
}