TIL

2025.02.19(수)

iiblueblue 2025. 2. 19. 12:49

Code KATA

오늘 치의 알고리즘 코드카타를 풀이하고 정리하였다

https://iiblueblue.tistory.com/221

 

[2025.02.19] 예상 대진표

문제 설명△△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 투너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고 1번↔2번, 3번↔4번, ...,

iiblueblue.tistory.com

vector와 같은 다른 컨테이너를 새로 정의하고 활용하여야 한다고 생각했는데 생각보다 매개변수로 주어지는 것 만으로도 풀이할 수 있다는 것에 놀랐다. 처음에는 모든 선수들의 상태를 확인해야 한다고 생각해서인데 중요한 것은 a와 b였다. a와 b를 이겨서 위로 올려주면 되고 둘이 대결상대인지만 확인해주면 되는 것이다.

 

결론적으로 생각보다 간단하게 풀 수 있는 문제였다. 그림을 그리면서 푼 것이 도움이 된 것 같았다.

 

 

Unreal

이전에 적 AI와 관련되어 강의해주신 튜터님의 영상을 보면서 그대로 따라하였다.

 

 

Quest

  • [Project] C++로 구현하는 언리얼 엔진 5 기반 슈터 게임 프로젝트

 

깃 허브 오류 해결

revision control 때문인지 main 브랜치에서 merge를 마친 후 다시 내 브런치로 돌아왔을 때 다른 사람의 작업 내용이 변경사항으로 들어가 있는 것을 확인하였다. 변경 사항을 그대로 commit 하고 push하면 나중에 main으로 merge를 할 때 해당 작업 내용에서 충돌이 발생할 것을 염려하여 다른 사람의 변경 사항은 discard 해주는 것이 맞다는 생각이 들었다. 그래서 discard 하려고 하였지만 이상하게도 변경사항들이 discard 되지 않았다.

그래서 변경 사항들을 discard 시키기 위해 일단 해당 변경사항들을 모두 commit 하고 commit 되돌리기를 hard로 하여 변경사항들을 제거해주었다. 되돌리는 것은 취소 시킬 변경사항들을 commit하기 바로 전 가장 최근에 commit하고 push한 곳까지로 하였다. 

 

EnemyInterface와 적 클래스 구성 

이전에 ItemInterface 만들었던 것을 참고하여 UInterface를 상속한 인터페이스를 만들어주었다. 상속 할 때는 IEnemyInterface를 사용해야하는데 UEnemyInterface를 적어 무엇이 잘못 되었는지 한참을 찾았다. 이전에 강의에 나왔던 내용인데 아직 숙지되지 않은 모양이다.

 

EnemyFactory와 Factory 클래스 구성

이전에 몬스터를 Factory Method 패턴으로 구현했던 것이 생각나서 같은 패턴으로 구현하기로 하였다. 이것도 UML 다이어그램에 미리 적어 놓은 것이 있기 때문에 그대로 구현해주었다.

 

좀비 순찰, 추격 별도 프로젝트 구현

튜터님 강의를 보면서 좀비가 일정 구간을 순찰하며 이동하고 플레이어를 발견하면 쫓아오는 것을 구현하였다.
강의 영상과 한 가지 다르게 구현한 부분이 있다. 강의에서는 적이 한 번 쫓아오고 플레이어를 잡고 나면 다시 쫓아오지 않는데 이 부분을 수정하여 플레이어를 잡고 나서도 플레이어가 도망가면 또 쫓아오도록 하였다.

위 처럼 Excecute에서는 TargetActor가 될 플레이어만 cast하여 받아와 변수에 저장한다. 그리고 Tick을 이용하여 계속 AI_MoveTo가 실행되도록 해주었다.

 

내일 할 작업

내일은 좀비의 움직임을 구체화하고 피격, 공격을 구현한 후 애니메이션을 손 볼 예정이다.

  • 플레이어에게서 멀리 떨어지면 추격을 포기하고 원래 자리로 복귀
  • 플레이어를 쫓아올 때는 좀 더 빨리 이동
  • 플레이어에게 총에 맞았을 때 체력이 닳도록 구현
  • 일정 공간 안에 플레이어가 들어오면 공격
  • 체력이 다 닳으면 죽음
  • 걷기, 뛰기, 죽음, 공격, idle 등의 애니메이션 추가

갱스터의 기본적인 움직임과 피격, 공격을 구현한 후 애니메이션을 손 볼 예정이다.

  • 일정 구간을 순찰하도록 한다.
  • 플레이어가 시야 안에 들어오면 플레이어를 따라가지만 일정 거리를 유지
  • 플레이어에게서 멀리 떨어지면 추격을 포기하고 원래 자리로 복귀
  • 플레이어가 감지된 상태에서는 플레이어에게 총을 발사한다.
  • 플레이어가 시야에 들어오지 않으면 발사를 중지하고 자리로 돌아간다.
  • 총을 발사한다.
  • 플레이어에게 총을 맞았을 때 체력이 닳는다.
  • 체력이 다 닳으면 죽음
  • 걷기, 뛰기, 죽음, 공격, idle 등의 애니메이션 추가

'TIL' 카테고리의 다른 글

2025.02.21(금)  (0) 2025.02.22
2025.02.20(목)  (0) 2025.02.20
2025.02.13(목)  (0) 2025.02.13
2025.02.11(화)  (0) 2025.02.11
2025.02.10(월)  (0) 2025.02.10