[내일배움캠프 Day16] C++ 3주차 과제 진행

2025. 1. 9. 22:58·내일배움캠프/TIL

[5번 과제] Unreal Engine 활용 프로그램 제작

 

MyActor.h

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/Actor.h"
#include "MyActor.generated.h"

UCLASS()
class STUDY1_API AMyActor : public AActor
{
	GENERATED_BODY()
	
public:	
	AMyActor();

protected:
	virtual void BeginPlay() override;

public:	
	virtual void Tick(float DeltaTime) override;

	void Move();
	int32 Step();
	float Distance(FVector2D first, FVector2D second);
	int32 CreateEvent();

private:
	FVector2D curPos;
	float totDist;
	int32 evCnt;
	int32 stepCnt;
};

 

MyActor.cpp

#include "MyActor.h"


AMyActor::AMyActor()
{
	PrimaryActorTick.bCanEverTick = true;
	curPos = FVector2D(0, 0);
	totDist = 0.0f;
	evCnt = 0;
	stepCnt = 0;
}

void AMyActor::BeginPlay()
{
	Super::BeginPlay();
	
	for (int i = 0; i < 10; ++i)
	{
		Move();
	}

	UE_LOG(LogTemp, Log, TEXT("Total Distance: %.2f"), totDist);
	UE_LOG(LogTemp, Log, TEXT("Total Events: %d"), evCnt);
}

void AMyActor::Tick(float DeltaTime)
{
	Super::Tick(DeltaTime);
}

// (0,0)부터 10회 움직이면서 좌표를 출력
void AMyActor::Move()
{
	stepCnt++;
	FVector2D prePos = curPos;
	int stepX = Step();
	int stepY = Step();

	curPos.X += stepX;
	curPos.Y += stepY;
	float distance = Distance(prePos, curPos);
	totDist += distance;

	UE_LOG(LogTemp, Log, TEXT("Step %d: (%.0f, %.0f)"), stepCnt, curPos.X, curPos.Y);
	UE_LOG(LogTemp, Log, TEXT("Moved distance: %.2f"), distance);
	
	if (CreateEvent())
	{
		evCnt++;
		UE_LOG(LogTemp, Log, TEXT("Event trigger!"));
	}
}

// x좌표 y좌표 각각 이동할 거리
int32 AMyActor::Step()
{
	return FMath::RandRange(0, 1);
}

// 이전 좌표기준 이동 거리
float AMyActor::Distance(FVector2D first, FVector2D second)
{
	float dx = first.X - second.X;
	float dy = first.Y - second.Y;
	return FMath::Sqrt(dx * dx + dy * dy);
}

// 50% 확률로 랜덤하게 이벤트가 발생
int32 AMyActor::CreateEvent()
{
	return FMath::RandRange(0, 1);
}

 

실행 결과

 

 

'내일배움캠프 > TIL' 카테고리의 다른 글

[내일배움캠프 Day18] 인라인 함수(inline function)  (2) 2025.01.10
[내일배움캠프 Day17] C++ 빌드 과정  (1) 2025.01.09
[내일배움캠프 Day15] 디자인 패턴 - 구조 패턴  (2) 2025.01.09
[내일배움캠프 Day14] 디자인 패턴 - 생성 패턴  (1) 2025.01.06
[내일배움캠프 Day13] C++ 2주차 과제 진행  (1) 2025.01.03
'내일배움캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프 Day18] 인라인 함수(inline function)
  • [내일배움캠프 Day17] C++ 빌드 과정
  • [내일배움캠프 Day15] 디자인 패턴 - 구조 패턴
  • [내일배움캠프 Day14] 디자인 패턴 - 생성 패턴
개발자 밍
개발자 밍
dev0404 님의 블로그 입니다.
  • 개발자 밍
    Developer
    개발자 밍
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 강의 (8)
        • UE Climbing System (3)
        • UE Dungeon (1)
        • HCI (4)
      • 책 (18)
        • 객체지향의 사실과 오해 (5)
        • Effective C++ (3)
        • 이득우의 게임 수학 (4)
        • 이것이 취업을 위한 컴퓨터 과학이다 (4)
        • 리뷰 (2)
      • C++ (2)
      • 알고리즘 (2)
      • 자료구조 (1)
      • Unreal (4)
      • 내일배움캠프 (52)
        • TIL (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    내일배움캠프
    컴퓨터 구조
    c++
    자료구조
    언리얼
    알고리즘
    Effective
    그래픽스
    게임수학
    객체지향
    컴퓨터구조
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
개발자 밍
[내일배움캠프 Day16] C++ 3주차 과제 진행
상단으로

티스토리툴바