미로스 - 개인 진행 결과물(디테일 등) - 3. 인터페이스 구현
- 100 powerun
- 2024년 11월 27일
- 1분 분량
최종 수정일: 2월 4일
총 제작한 인터페이스의 소분류로는 플레이어의 체력과 스테미너, 그리고 보스의 인터페이스입니다.

우선 두 HP바 전부 빨강과 노랑, 회색을 가지고 있습니다. 이렇게 만든 이유는 공격을 당할 시 보통의 게임들처럼 얼마나 대미지를 받았는지 빨간색 바가 먼저 내려가며 알려준 뒤 뒤이어 노란색 바가 내려오는 방식을 카피한 것입니다.

위가 바로 피격 시 Hp바에 대한 변화와 관련된 함수입니다. 우선 피격 판정을 받게된다면 가장 우선인 빨간색 바가 깎이는데 속도가 매우 빠르게 되어있습니다. 그 뒤 HpLossBar의 값이 델타 타임을 통해 노란색 바가 실시간으로 천천히 내려가게 만들어줍니다. 그리고 만약 HpLossBar의 value값이 HpBar.value값보다 작거나 같다면 혹시라도 튀어나왔을 BpLossBar를 현재 HpBar의 값만큼 바꿔줍니다.
플레이어에겐 스테미너라는 또 다른 스탯을 가지고 있는데, 이 스탯은 최대한 다른 게임들처럼 보이게 하는 것이 최우선 목표였습니다.

이 코드들이 플레이어 클래스 내부에 있는 스테미너 관련 변수들 입니다.

스테미너는 위의 if문 처럼 스테미너가 단 1이라도 달았는지 안 달았는지를 수시로 확인하며 만약 소모되었을 다면 중간에 스테미너가 추가로 소모 됐는지 안됐는지를 확인합니다.

위의 함수는 플레이어가 특정 행동 때 집어넣어 스테미너를 사용했음을 알려주는 함수로 보통은 이벤트 트리거로 작동됩니다.

우선 모든 스테미너 사용 시 위의 WaitingStaminaRestore함수가 작동하는데 이 함수는 스테미너 사용 후 대기시간을 가지는데 만약 이 중간에 또 특수행동으로 스테미너를 사용한다면 다시 2초간의 대기시간을 가지게 만들어 줍니다.
대기시간을 가지는 이유는 스테미너는 떨어지자마자 충전되어 신중한 플레이가 아닌 막 빨리 누르는 그런 플레이가 성행할 것 같아 다음과 같이 대기시간을 가지게 했습니다.

만일 대기시간을 무사히 보낸다면 델타타임을 통해 천천히 오르게 합니다. 그리고 만약 스테미너가 최대값이 된다면 스테미너의 충전은 멈추게 됩니다.

위의 변수는 점프 함수의 일부이고 아래와 같이 스테미너를 20을 사용한다는 문구가 적혀있습니다. 이렇게 스테미너의 사용은 이런 식의 다른 이동 함수와 섞거나, 애니메이션 트리거를 통해 작동시킬 수 있습니다.
Comments