사운드 기능을 만들어보면 좋을 것 같다.
void EndTurn(); 추가
전투중이 아닐 때 다이스를 볼 수 있게 만듦
레벨업 시에는
MaxHP += 3 해주기
죽은 상태
죽으면 체력은 0 고정
아이템
힐링포션
HP+5
TakeHeal
TakeShield
테이크 데미지에서 데미지를 받을 수 있게 조정
현재 경험치가 목표 경험치에 도달하면 레벨업
나중에 주사위 면을 강화하기
const 멤버변수는 초기화 리스트나 선언 시에 초기화해야한다. 생성자 본문에서는 안 됨.
함수 리팩토링
// 대미지 입음
void Character::TakeDamage(int Damage)
{
// 대미지 계산
int Damage_ = Damage - Shield;
// 실드가 데미지보다 크면 0 대미지로 처리
if (Damage_ < 0)
{
Damage_ = 0;
// 실드 처리
if (Damage >= Shield) {
Damage -= Shield;
Shield = 0;
}
else {
Shield -= Damage;
Damage = 0;
}
// 대미지 적용
cout << Name << "의 총 피해량: " << Damage_ << endl;
HP = HP - Damage_;
// HP는 최저 0으로 관리
// 죽은 상태는 HP == 0 여부로 판단
if (HP <= 0)
{
HP = 0;
}
cout << Name << "의 총 피해량: " << Damage << endl;
HP = max(0, HP - Damage); // max로 0 이하 방지
}
// 바꾼거 ======================================================
// 대미지 입음
void Character::TakeDamage(int Damage)
{
// 대미지 계산
int Damage_ = Damage - Shield;
// 실드가 데미지보다 크면 0 대미지로 처리
if (Damage_ < 0)
{
Damage_ = 0;
// 실드 처리
if (Damage >= Shield) {
Damage -= Shield;
Shield = 0;
}
else {
Shield -= Damage;
Damage = 0;
}
// 대미지 적용
cout << Name << "의 총 피해량: " << Damage_ << endl;
HP = HP - Damage_;
// HP는 최저 0으로 관리
// 죽은 상태는 HP == 0 여부로 판단
if (HP <= 0)
{
HP = 0;
}
cout << Name << "의 총 피해량: " << Damage << endl;
HP = max(0, HP - Damage); // max로 0 이하 방지
}
인벤토리매니저 싱글톤으로
인벤토리
수정해야할 것 같은 편의성
- 전체 리롤 기능
- 전체 주사위를 다시 굴리고 싶을 때, 커맨드 입력 횟수가 너무 많아지므로 전체 리롤 기능이 있으면 좋겠다.
- 배틀 시작 전에 몬스터가 몇 마리 나타났는지 출력되었으면 좋겠음
- 전투 화면에 표시되므로 시작 후에 알 수 있긴 하지만, 스테이지 사이사이 구분을 위해서 출력되는 것이 좋다고 생각함.
- 액션 해제하기 메뉴 선택 후에 뒤로가기(취소)가 가능해야할 듯
'코딩 학습 > C와 C++' 카테고리의 다른 글
| C++ 배치고사 필수 문제 (0) | 2026.04.02 |
|---|---|
| C++ 팀프로젝트 - 텍스트 RPG 게임 만들기(4) (0) | 2026.03.31 |
| C++ 팀프로젝트 - 텍스트 RPG 게임 만들기(1) (0) | 2026.03.26 |
| C++ 기초 - 찾고, 자르고, 바꾸기 (0) | 2026.03.25 |
| C++ 기초 - 문자열 -> 숫자 변환 (0) | 2026.03.24 |