어제까지는 개발환경구축에 중점을 뒀고 오늘부터는 본격적으로 기능구현을 시작했다.
혼자 이런저런 망상하느라 현재는 남들에 비해 진도가 많이 느린편이다.
#pragma once
#include "CoreMinimal.h"
#include "GameFramework/GameState.h"
#include "CP_GameState.generated.h"
UCLASS()
class CYBERPUNK_API ACP_GameState : public AGameState
{
GENERATED_BODY()
public:
ACP_GameState();
virtual void BeginPlay() override;
int32 Wave;
int32 AI_Count;
float WatingTime;
FTimerHandle AIWatingTimerHandel; //ai스폰 이후 대기시간 타이머
FTimerHandle PlayTimerHandle; // 총 플레이 타임 타이머
void StartWave(); //Wave 시작 함수
void StartBossWave(); //보스전 시작 함수
void OnGameOver(); //캐릭터 체력이 0이 됬을 경우 호출
void KillAll(); //모든 적을 잡았을 때 호출
void SpawnAI(); //웨이브가 새로 시작할 때 적을 생성하는 함수
};
GameState.h 파일이다. 게임흐름을 관리하게 될 것이고 아직은 이이상 더 추가할 요소는 잘 모르겠다.
게임 진행자체가 강의에서 했던 프로젝트와 비슷해서 다른 팀원들이 구현해놓은 기능들 쏙쏙 빼서 쓰다보면 쉽게 완성하지 않을까 라는 생각이 든다. 아직은...
#include "Core/CP_GameState.h"
#include "Character/CP_PlayerController.h"
#include "Core/CP_PlayerHUD.h"
ACP_GameState::ACP_GameState()
{
Wave = 0;
WatingTime = 3.0f;
AI_Count = 0;
}
void ACP_GameState::BeginPlay()
{
Super::BeginPlay();
StartWave();
}
void ACP_GameState::StartWave()
{
SpawnAI();
//AI스폰이후 WatingTime초가 지나면 이동시작 이동함수 미구현으로 주석처리.
/*GetWorldTimerManager().SetTimer(
AIWatingTimerHandel,
this,
&CP_EnemyAI::StartMove,
WatingTime,
false
);*/
}
void ACP_GameState::StartBossWave()
{
}
void ACP_GameState::OnGameOver()
{
if (APlayerController* PlayerController = GetWorld()->GetFirstPlayerController())
{
if (ACP_PlayerController* CP_PlayerController = Cast<ACP_PlayerController>(PlayerController))
{
CP_PlayerController->SetPause(true);
// CP_PlayerController->ShowMainMenu(); //미구현
}
}
}
void ACP_GameState::KillAll()
{
if (AI_Count >= 0 && Wave <= 3)// ai가 모두 죽고 현재 웨이브가 2이하면 다음 웨이브 진행
{
StartWave();
}
else if (AI_Count >= 0 && Wave > 2) // 3웨이브를 끝냈다면 보스전 진행
{
StartBossWave();
}
else //보스전 종료
{
if (Wave > 3)
{
OnGameOver();
}
}
}
void ACP_GameState::SpawnAI()
{
}
아직은 많이 앙상한 .cpp파일... 생각해보니 오늘이 3일차인데 진도가 느린 느낌이 없지않긴 하다...
그래도 리비전 컨트롤이랑 깃허브 환경은 구축해놨으니 개발만 하면 된다..!
'UE5' 카테고리의 다른 글
AI Spawn (0) | 2025.02.21 |
---|---|
Character Spawn (0) | 2025.02.20 |
Revision Control (0) | 2025.02.18 |
새벽 과제 (0) | 2025.02.15 |
Unreal Engine Chater.3 Code Review(1) (0) | 2025.02.11 |