본문 바로가기

전체 글

(231)
24 - 08 - 14 (게임 인스턴스, 캐릭터 선택, 터렛) 게임 인스턴스 게임의 전체 수명 주기를 관리하는 객체로, 게임이 실행되는 동안 한 번만 생성되고 종료 시 파괴 주요 기능 및 개념전역 데이터 관리: GameInstance는 플레이어 상태, 게임 설정, 글로벌 변수 등을 저장할 수 있는 공간을 제공합니다. 예를 들어, 플레이어의 프로그레스, 점수, 설정 등을 저장해 두고 레벨이 바뀌어도 그 데이터를 유지할 수 있습니다.레벨 간 데이터 전송: 일반적으로 각 레벨이 로드되면 레벨에 속한 객체들은 초기화되지만, GameInstance는 유지됩니다. 이를 통해 한 레벨에서 다른 레벨로 데이터를 안전하게 전송할 수 있습니다.지속성 및 상태 유지: GameInstance는 게임이 실행되는 동안 살아있기 때문에, 게임의 전체적인 상태나 설정을 유지하는 데 매우 유용합..
Monster 몬스터 클래스. 몬스터가 캐릭터와 오버랩 되면 2초마다 데미지를 주도록 만들었습니다. 기본 따라다니는 몬스터 (NormalEnemy) 를 만들었습니다. 이제 따라다니는 유형의 몬스터들을 NormalEnemy 를 상속하여 만들것입니다. NormalEnemy 를 상속받은 SpeedEnemy, TankEnemy 를 만들었습니다.SpeedEnemy 는 체력과 크기, 공격력이 적지만 이동속도가 빠릅니다. TankEnemy 는 이동속도가 느리지만 체력과 크기, 공격력이 높습니다.
24 - 08 - 13 ( 메뉴 레벨, 모드, 위젯 , 탱크 선택 보간) 카메라를 Orthographic 로 변경   플레이어 스타트의 스폰 옵션을 변경하면 무조건 소환이 가능하다.  게임오버존 제작   오버존 전용 채널을 만들고 플레이어와 오버랩 가능하게 만든다.     게임 오버 와 관련한 로직을 함수로 바꾸고 게임 모드로 이동한다.  이제 적에게 맞을때 오버존에 오버랩 되었을때 게임오버 함수를 호출하면 끝. 메인메뉴 레벨을 만들고 메인 메뉴 위젯을 만든다.    만든 위젯을 메인메뉴 레벨 전용 메인메뉴 게임 모드에서 생성한다.,   이제 왼쪽 오른쪽 선택에 따라 선택할 탱크로 이동하도록 한다. 보간    보간을 이용해서 옆 탱크를 볼 수 있도록 구현한다.  먼저 카메라를 게임모드가 알 수 있도록한다.  카메라 위치와 도착 위치를 캐싱해둔다.   이제 타겟 지점을 캐싱하기..
24 - 08 - 12 ( 파생 클래스, 머리 회전, 몸 회전, 발사 위치 상속, 탱크 메쉬) 플레이어를 상속 받은 탱크 클래스를 만들었다.   입력 움직임 시스템을 탱크처럼 바꿀 예정이다. 1. 움직임은 앞뒤만 가능하다.2. 머리는 마우스의 움직임에 따라 회전한다.3. 좌우 입력에 따라 본체가 회전한다.  전체 움직임과 회전을 구현했다.그리고 3가지 움직임에 따라 Fire Position이 변경 되도록 셋팅했다.  탱크 메쉬를 사용  총알을 상속받은 미사일 클래스를 생성했다.   미사일 메쉬와 나이아가라 이펙트를 추가했다. 탱크에서 1번 2번 선택에 따라 미사일을 선택하게 만들었다.  스칼라 값을 넣어주어 분기문에서 입력 값을 활용 가능하게 만들었다.액션 값을 통해 미사일을 교체 가능하도록 만들었다.
24 - 08 - 09 (Enhanced Input) 구버전 입력 시스템에서 Enhanced Input 으로 교체.     IA는 입력의 이름과 해당 입력에 따른 행동을 정의한다. 입력 매핑 컨텍스트 는 플레이어가 처할 수 있는 특정 컨텍스트를 나타내는 입력 액션 컬렉션으로, 주어진 입력 액션의 트리거 규칙을 설명합니다. 각 사용자에게 매핑 컨텍스트를 동적으로 추가하거나 제거하거나 우선순위를 지정할 수 있습니다    IMC 는 IA들의 입력 값을 설정한다. 예) 마우스 왼쪽 클릭           그 외, 나이아가라와 랜드스케이프에 대해 배웠다. 이 부분은 따로 안넣음.
프로그래머스 - 더 맵게 pop 할 때는 조심히 하자. 굳이 비어있을때만을 조건의 끝으로 보지 않아도 된다. 좀 더 쉽게 접근해도 괜찮다. 그게 오히려 잘만든거임#include #include #include #include using namespace std;int solution(vector scoville, int K) { int answer = 0; priority_queue, greater> pq(scoville.begin(), scoville.end()); while(pq.size() > 1 && pq.top() = K ) { break; } int two = pq.top(); pq.pop(); ..
24-08-08 (충돌, UI, 저장 및 불러오기, 게임오버 ) Collision충돌체를 만들어 충돌처리 기능 구현 가능. 프로젝트 셋팅 - 콜리전 - 새 오브젝트 채널에서 생성 가능  위와 같이 만들어진 채널을 이용해 각각의 클래스에 충돌 관리해준다. 원하는 충돌 처리 구현 충돌 시 액터 파괴    Play Sound && Spawn Emitter원하는 위치에서 소리 및 이펙트를 생성 가능하다. 충돌 시 주의 사항충돌 이후에 삭제된 액터와의 객체를 참조하거나 삭제 이후 로직이 존재한다면 에러가 난다.예외처리 및 삭제는 항상 맨 마지막에 실행한다.    점수 UI 와 GameMode 점수를 보여줄 UI와 점수를 관리하는 게임모드. 점수와 같은 게임의 규칙과 같은 변수들은 게임모드가 직접 관리 하는 것이 일반적이다.  UserWidget 을 상속 받아 생성한 블루프린트..
프로그래머스 - 예상 대진표 a 와 b 가 2,3    4,5 이렇게 붙을 때에 예외처리를 해주어야한다. #include using namespace std;int solution(int n, int a, int b){ int answer = 0; if(a