반응형

분류 전체보기 282

[C++] 가상 함수 (virtual)

개요 가상 함수(virtual funcion)란, 자식 클래스에서 재정의할 것으로 예상되는 멤버 함수를 의미한다. 가상 함수는 자신을 호출하는 객체의 타입에 따라 실제 호출할 함수가 결정된다. 부모 클래스에서 virtual을 사용해 가상 함수를 선언하면, 자식 클래스에서 재정의된 멤버 함수도 자동으로 가상 함수가 된다. 선언 virtual FunName(); 동적 바인딩 C++ 컴파일러가 함수를 호출할 때 함수가 어느 블록의 어느 메모리 위치에 있는지 정확히 알고 있어야 한다. 대부분의 함수를 호출하는 코드는 컴파일 타임에 고정된 메모리 주소로 변환된다. 이것을 정적 바인딩(static binding), 초기 바인딩(early binding)이라고 한다. C++에서 가상 함수가 아닌 멤버 함수는 정적 바..

언어/C++ 2022.07.10

[게임 리뷰] 폴 가이즈

처음 출시 때부터 재밌게 했던 게임인데, 이번에 무료로 풀려서 다시 한번 재밌게 플레이했다. 확실히 무료로 풀리니 매칭도 전보다 빨라지고 유입도 많아져 입문 난이도도 완화되었다. 아기자기하면서도 깔끔한 디자인, 간단한 조작에서 나오는 심오한 플레이 등이 매력적이다. 또한 우승했을 때의 짜릿함과 성취감도 잘 설계되어있어 리플레이성을 높여줬다. 매 라운드마다 탈락자 비율도 적당해 너무 빠르게 탈락하지도, 너무 루즈하게 진행되지도 않으면서 다양한 레이스와 생존 게임을 즐길 수 있다. 탈락했을 때의 스트레스도 그렇게 높지 않다는 것도 장점이라고 볼 수 있을듯. 무엇보다도 가장 놀라운 점은 60명에 달하는 플레이어들이 한 화면에서 경쟁하면서도 잔렉이 발생하지 않고 조작감이 좋다는 것이다. 직접적인 비교가 적절하지..

게임/PC 2022.07.08

[Unity] Canvas Scaler (캔버스 스케일러)

개요 캔버스 스케일러는 캔버스 내 UI 요소의 전체적인 스케일과 픽셀 밀도를 제어하는 데 사용된다. Constant Pixel Size, Scale With Screen Size, Constant Physical Size 3개의 종류가 있다. Constant Pixel Size UI 요소가 화면 크기에 관계없이 동일한 픽셀 크기로 유지된다. 따라서 해상도가 커지면 UI 크기는 그대로 이기 때문에 UI가 작아보이고 해상도가 작아질 때도 UI 크기가 그대로이므로 이 때는 UI가 커보이게 된다. 해상도가 커지자 버튼 크기가 작아진 모습을 볼 수 있다. Scale Factor : 캔버스의 모든 UI 요소를 이 배율로 설정한다. Reference Pixels Per Unit : 스프라이트에 Pixels Per U..

게임 엔진/Unity 2022.07.07

[백준 14890] 경사로 C++

문제 백준 14890 경사로 C++ 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 이해 자체는 어렵지 않은 문제였다. 1. 이차원 배열에 값을 넣어주고 2. 행 / 열을 검사하면서 경사로를 놓을 수 있는지 확인한다. 경사로를 놓을 수 있는지 확인하는 과정은 다음과 같다. 1. 현재 값과 다음 값의 차를 구한다. 2-1) 차가 0인 경우 : 평지이므로 다음 구역으로 넘어간다. 2-2) 차가 1인 경우 : 현재가 더 높다. 따라서 내리막길이 필요하므로 다음 구역부터 그 다음 구역으로 가면서 내리막길을 설치할 수 있는 지 확인한다...

알고리즘/백준 2022.07.04

[방탈출] 그림자 없는 상자 후기

테마 정보 안다. 비극에 대처하는 방법은 우리 모두 각자 다르다는 것을. 또한 안다. 어린 나이의 동생에게 막내의 죽음은 감당하기 힘든 일이었을 것이라는 것을. 하지만 시현아. 누나도 사람이고, 힘들고, 아파. 초자연적인 물체니 뭐니... 동생의 망상을 견뎌주는 것도 이제 한계다. 지쳐버린 나는 이 허무맹랑한 문자를 받고, 마지막으로 쓴소리를 해주러 시현이의 집으로 향했다. https://www.dpsnnn.com/box 단편선 dps001: 그림자 없는 상자 www.dpsnnn.com 정보(매장) 난이도 3/5 공포도 0/5 플레이 타임 : 75분 3인, 0 Hint, 10:00 Left 난이도 2/5 스토리 감상을 권장하기 위해 어렵게 내지 않었다는 매장의 설명답게 난이도가 그렇게 어렵진 않았다. 쉬..

방탈출 2022.06.29

[Unity] Update, Start, OnEnable, OnDisable

개요 유니티에서 일정 시점에 호출되는 함수들이다. Awake 게임오브젝트가 Instantiate될 때 호출된다. 게임오브젝트가 활성화되어 있어야 호출된다. OnEnable 오브젝트가 활성화될 때 한 번 실행된다. 게임오브젝트와 스크립트 컴포넌트 모두 활성화되어있어야 호출된다. OnDisable 오브젝트가 비활성화될 때 한 번 실행된다. 참고로 gameObject.SetActive(false)와 this.enabled = false는 다르다. gameObject.SetActive(false)는 게임오브젝트 자체를 비활성화하는 거라면, this.enabled = false는 스크립트 컴포넌트를 비활성화하는 것이다. (게임오브젝트는 활성화) Start 게임오브젝트가 Instantiate되고 나서 호출된다. (..

게임 엔진/Unity 2022.06.28

2022년 제 2회 게임문화 가족캠프 참가

2022년 제 2회 게임문화 가족캠프에 스태프로 참가했다. 1회 게임문화 가족캠프는 평창에서 열렸는데, 참가 가족들의 반응이 매우 좋았다고 한다. 행사 소개 동영상에서도 좋은 분위기를 엿볼 수 있었다. 실제 행사는 6월 24일 부터 25일까지 이틀간 진행되었지만, 사전에 셋팅해야할 게 있어 행사 하루 전날인 23일에 무주로 내려갔다. 사진 촬영 공간을 마련했고 닌텐도 스위치, 각종 보드게임 등을 즐길 수 있는 공간을 셋팅했다. 대회 리허설 및 동선 체크도 진행했다. 스태프 인원이 꽤 많았고, 캠프 관계자 분들이 배려를 많이 해주셔서 셋팅은 그렇게 힘들지 않았다. 오히려 설명을 해야한다는 빌미로 닌텐도 스위치 스포츠와 보드게임을 신나게 즐겼다 ㅋㅋ. 전북 무주에서 행사가 진행되었는데, 서울 및 경상도 등등..

일상 2022.06.27

[백준 2343] 기타 레슨 C++

문제 백준 2343 기타 레슨 C++ 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 풀이 조건을 보고, 이분 탐색으로 해결할 수 있음을 유추해야 합니다. 순서를 변경하면 안 되고, 모든 동영상을 포함해야 하므로 mid 값에 대해 이분 탐색을 실행합니다. 조건을 만족하면 더 작을 mid 값을, 조건을 만족하지 못한다면 더 큰 mid값을 찾습니다. 길이의 합이 int 범위를 넘어설 수 있으므로 long long으로 선언해주고, mid 값의 최대는 100,000 * 10,000 = 10억이므로 범위에 유의합니다. 58%..

알고리즘/백준 2022.06.26

[백준 2805] 나무 자르기 C++

문제 백준 2805 나무 자르기 C++ 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 풀이 전형적인 이분 탐색 문제입니다. low = 0, high는 나무의 최대 높이로 설정한 뒤, mid 값을 바꿔가며 이분 탐색을 시행합니다. low > high 조건을 만족하기 전의 result 값이 최종결과가 됩니다. sum은 int 범위를 초과할 수 있으므로 long long 타입으로 설정합니다. 한편, N의 최대 개수가 백만이라 시간초과가 나지 않을까 걱정했지만, C++은 N ..

알고리즘/백준 2022.06.22
반응형