포스트한 이유 총알이나 로켓을 발사할때 오브젝트와 충돌해서 발사하자마자 바로 충돌하는 기괴한 현상이 발생 방법1. IgnoreActorWhenMoving(); 충돌체에서 무시할 액터를 추가하는함수 생성하자마자 충돌하고있..
GameMode에 namespace로 존재합니다. namespace MatchState { extern ENGINE_API const FName EnteringMap; // We are entering this map, actors are not yet ticking extern ENGINE_API const FName WaitingToSt..
C++ 캐스팅은 https://wkals1213.tistory.com/77 C++ Cast 암시적 캐스팅과 명시적 캐스팅이 있다. 암시적 캐스팅은 컴파일러가 자동으로 컴파일을 해줄때입니다. 명시적캐스팅은 프로그래머가 코드를 직접 작성하..
암시적 캐스팅과 명시적 캐스팅이 있다. 암시적 캐스팅은 컴파일러가 자동으로 컴파일을 해줄때입니다. 명시적캐스팅은 프로그래머가 코드를 직접 작성하여 캐스팅을 해줄때입니다. 캐스팅은 네가지 종류가 있습니..
GameModeBase 게임모드가 갖게될 모든 기본 기능이 포함되있음 게임시작시 플레이어폰을 실제로 스폰하는것을 처리 다시 시작하거나 리스폰하고 게임을 전체적으로 재시작할때 처리 GameMode Match State를 정의 H..
클라이언트의 현재 게임시간은 서버의 현재 게임 시간과 다르다 (GetWorld()->GetTimeSeconds()) 이러한 현상은 로딩시간때문에 나타난다. 이 차이를 계산하기위해서 서버에서 시간을 가져와야 한다. 1. GameState..
총알 클래스에서 OnHit 에서 ApplyDamage를 호출하고 파괴 OnTakeAnyDamage는 어떤 피해를 입었을때 작동 (콜백함수 넣을때 서버에만 넣기) OnHit가 호출되면 이쪽에서 콜백함수를 집어넣은 함수가 호출이 됨 플레..
GameMode GameMode는 서버에만 존재한다. 기본클래스와 같은 게임의 기본 클래스를 설정 -Pawn,PlayerController,HUD 게임의 규칙 - 플레이어가 제거되었을때 어떤일이 발생하는지 결정하고 부활 처리 Match State..
애니메이션 리타겟팅을 사용하는이유는 메쉬가 다른 애니메이션을 다른 메쉬에 적용하려고할경우 IK릭이 필요한데 에픽게임즈에서 직접 제공해주는 에셋에서는 기본적으로 있다. 콘텐츠브라우저 오른쪽마우스클릭..
빌보드 컴포넌트 메쉬가 기본적으로 Z는 후면방향을 바라보고잇게 되어있다. 선형보간을 사용해서 높이 구하기 (전에햇엇음 ㅁ 해서 비율로 어느 사각형에있는지 찾아냈었음 (좌와 하단을..
https://www.acmicpc.net/problem/1891 1891번: 사분면 첫 줄에 이동시키려는 사분면 조각 번호의 자릿수를 나타내는 정수 d와, 그 사분면 조각의 번호가 주어진다. (1≤d≤50) 둘째 줄에는 이동의 내용을 나타내..
https://www.acmicpc.net/problem/1201 1201번: NMK 첫째 줄에 세 정수 N, M, K가 주어진다. www.acmicpc.net 비둘기집 원리 참고 https://ko.wikipedia.org/wiki/%EB%B9%84%EB%91%98%EA%B8%B0%EC%A7%91_%EC%9B%9..
캐릭터는 상하좌우대각선, 제자리로 움직일 수 있다. 벽은 계속 아래로 내려가다가 사라진다. 벽의 크기는 8이므로 8번 벽이 내려가는동안 캐릭터가 살아있다면 목적지에 100% 도착이 가능하다. 여기서 곤란한것..
다이나믹 프로그래밍 문제 조건은 오른쪽이나 아래로만 이동을 해야한다는 점이다. 시작할때 출발점에 1을 더한다음, 0번째부터 숫자만큼 아래쪽 오른쪽으로 2차원 배열에 1를 더해주는 동작을 차례대로 수행했다..
오늘 프로그래머스 2레벨 테스트볼때 나온 문제 https://programmers.co.kr/learn/courses/30/lessons/17684?language=cpp 코딩테스트 연습 - [3차] 압축 TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15..
컴파일러 과정 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 전처리기 #으로 시작하는 구문이 전처리기이다. ex) #include 컴파일러 고급 언어를 저수준 언어로 변경해주는 역할 Virtual Studio에서는 지정된 폴더에..
C++에서 자식 클래스에서 부모클래스에 선언된 함수를 재정의(오버라이딩)할때 사용하는 멤버 함수 멤버 함수 앞에 virtual을 붙이면 된다. 함수의 다양성을 구현할때 사용한다. 가상함수는 static일 수 없다. 가..
얕은 복사 한 객체의 모든 멤버 변수의 값을 다른 객체로 복사. 깊은복사. 모든 멤버 변수의 값뿐만 아니라 '포인터 변수' 가 가리키는 모든 객체에 대해서도 복사 얕은 복사는 실제 데이터를 복사하지 않고, 그..
다이나믹 프로그래밍 문제이다. 그림을 그려서 확인했다. 1은 1개니까 1 2는 11 = 이렇게 두개있어서 2개 이후는 이렇게 그려졌다. 점화식이 d[n]=d[n-2]+d[n-1] 이렇게 나왔다. 이후 문제에서 10007의 나머지를..
다이나믹 프로그래밍 문제이다. 조건은 3나눌떄 2나눌때 1뺄때이다. 이 세개를 진행할때마다 계산했다는 1을 더해주고 세개를 비교한 후 작은값을 저장하면서 4부터 하나씩 구하면 정답이 나온다. #include using..
비슷한문제 https://www.acmicpc.net/problem/1699 다이나믹 프로그래밍이다 제일 못하는것중에 하나 ㅠㅠ.. 일단 제곱이 되는 것들은 d에서 1을 다 넣어주고 시작했다. for (int i = 0; i <= n; ++i) { d[i] = 4..
문제 이진 트리는 매우 중요한 기본 자료 구조이다. 아래 그림은 루트 노드가 유일한 이진 트리이다. 모든 노드는 최대 2개의 자식 노드를 가질 수 있으며, 왼쪽 자식이 순서가 먼저이다. 노드 n개로 이루어진 이..
트리인지 아닌지 확인하는 문제이다. 노드의 개수가 0개는 트리이므로 간선의 개수가 0이면 트리, 만약 노드의개수가 1이상이면 모든 노드는 root노드를 제외한 간선을 하나씩만 가지고있다. 만약 두개이상 갖게..
문제 추천 시스템 Version 1 처음엔 아무생각없이 Map두개를 사용하여 풀었다. 맵이 알아서 정렬되고, 시간복잡도가 log N이여서 이정도면 시간초과 안나올줄 알았는데 나왔다. 그래서 자세히 살펴보니 N과 P가 1..
이 문제는 가능한 최대의 곱을 출력해야한다는 문제 더한값이 10 더할수있는 횟수가 3이면 10에서 3을 나누면 3,3,3이 나오게되는데 여기서 나머지가 1이므로 3,3,3중에서 1을 더하면 3,3,4가 된다. 만약에 더한..
처음에 아무생각없이 완전탐색으로 구했다가 시간초과를 맞았다. 시간제한은 1초인데 완전탐색으로 구하게되면 3*1000*1000이므로 초과가 된다. 그래서 메모리제이션기법을 사용해서 구했다. #include //1000,100..