전체 글 (842) 썸네일형 리스트형 [백준 11508번] 2+1 세일 (C++) 문제링크 : https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = INT_MAX; int N, arr[100001]; int result; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=1; i> ar.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-24 발사체 이동 컴포넌트 현재 발사체가 고정되어있는 상태이므로, 이름에 맞게 발사시켜주어야 한다. 이를 위해서는 직접 위치를 설정시킬 수 있고, 임펄스를 추가해줄 수도 있으나, 우리는 언리얼에 내장된 기능인 발사체 이동 컴포넌트를 사용하여 발사시켜줄 것이다. 이를 위해 우선 발사체 클래스에서 해당 컴포넌트를 생성해주어야 한다. 생성하고 나면 해당 컴포넌트를 통해서 최대속도 및 기초속도와 같은 변수에 접근할 수 있다. 해당 값들을 직접 설정해주자. 이제 컴파일을 해보면 발사체 블루프린트 클래스에 컴포넌트가 추가되었고, 초기속도와 최대속도 변수도 값이 설정된 것을 볼 수 있다. 이제 플레이를 해보면 탱크와 터렛 모두 발사체가 무사히 발사되는 것을 볼 수 있다. 하지만 설정된 속도만큼 이동한 이후에 여전히 멈춰있.. [백준 1448번] 삼각형 만들기 (C++) 문제링크 ; https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = INT_MAX; int N, arr[1000001]; int result = -1; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(i.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-23 발사체 생성 이제 발사체가 생성되는 것을 구현해줄 차례이다. 우리는 발사체를 생성되는 것을 VScode 내의 Fire 함수를 통해 하게 된다. 이때 발사체에 적용한 메시를 알아야 하는데, 이는 언리얼 블루프린트를 통해서 설정한 정보이다. 이렇게 블루프린트에서 설정한 정보를 C++에서 접근하기 위해서는 TSubclassOf가 사용된다. TSubclassOf는 UClass 타입을 반환하게 된다. UClass 타입은 클래스 타입이지만 C++와 블루프린트 사이 정보를 교환할 수 있는 언리얼 엔진의 리플렉션 시스템과 상호작용이 가능하다. 우리가 액터를 생성하는데 사용할 SpawnActor 함수의 첫 번째 인풋 매개 변수가 이 UClass 타입을 사용하게 된다. 먼저 TSubcalssof를 사용하여 AProject.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-22 Projectile 클래스 발사하기 위한 작업을 마쳤으므로, 실제 발사체를 만들어준다. 따라서 발사체에 대한 C++ 클래스를 먼저 생성한다. 월드에 배치되기만 하면 되기에, 부모 클래스로 액터를 선택해준다. 발사체는 메시를 필요로 하므로, 이에 UStaticMeshComponent 타입 포인터가 필요하다. 그리고 전에 몇 번 했던 것과 똑같이 CreateDefaultSubobject 함수를 통해 컴포넌트를 생성해준다. 그리고 발사체는 Tick에 대한 내용이 굳이 필요없으므로, 생성자에 있는 Tick을 false로 바꿔주었다. 이렇게 만든 클래스를 바탕으로 블루프린트 클래스르를 만들어주고, 해당 스태틱 메시 컴포넌트에 발사체 메시를 넣어주면 된다. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-21 타이머 탱크에서 Fire가 가능하도록 해줬으니, 타워에서도 가능하게 해줄 차례이다. 타워는 탱크를 보면 알아서 Fire를 해야하므로 타이머를 사용하도록 하였다. FTimerManager라고 하는 클래스로 타이머 설정이 가능하며, 이는 GetWorldTimerManager() 함수를 통해 얻게 된다. 이후 SetTimer 함수를 통해 실질적인 타이머 설정을 하게 된다. 이때 필요한 인풋 매개 변수들이 있는데 우선 타이머를 관리하는 타이머 핸들이 필요하다. 이를 위해 따로 선언해주어야할 필요가 있으며, 마찬가지로 타이머가 실행되기까지 걸리는 시간에 대한 변수와 콜백 함수가 필요하여 각각 선언 및 구현을 해줄 필요가 있다. 콜백 함수는 언제 발사할지의 여부이다. 우리는 타워의 일정 범위내에 도달하면 타워가 탱.. [백준 20291번] 파일 정리 (C++) 문제링크 : https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net #include using namespace std; typedef long long ll; typedef pair pii; const int MAX = INT_MAX; int N; string s; mapm; //Key 기준 오름차순 정렬 int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> N; for(int i=0; i> s; i.. Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 5-20 Fire 탱크는 발사체를 발사해야 하지만, 아직 이와 관련된 함수가 없다. 우리는 프로젝트 세팅에서 액션 매핑으로 Fire가 마우스 좌클릭으로 있었던 것을 알고 있기에, 여기에 바인드할 함수를 구현해주어야 한다. 해당 함수 자체는 터렛과 탱크 모두에게 필요하다. 따라서 베이스폰에서 해당 함수를 구현하게 된다. 탱크에서는 입력을 통해 발사가 이루어지기에 바인드 작업이 필요하다. 축 매핑의 경우 BindAxis 함수를 통해 바인드 작업을 해줬지만, 액션 매핑의 경우 BindAction 함수를 통해 바인드 작업을 하게 된다. 동작 매핑은 축 매핑과 다소 다른데, 우선 동작 매핑은 일회성이기에 모든 프레임에서 실행되지 않는다. 또한 축 매핑의 스케일 값과 같은 인풋 매개 변수가 존재하지 않는다. 버튼이 눌렸는지.. 이전 1 ··· 29 30 31 32 33 34 35 ··· 106 다음