목록C (155)
응애맘마조
어제의 LinkedList에 이어서 강의를 했었습니다. 먼저 전치연산과 후치연산에 대해 잠깐 했었습니다. 먼저 후치연산부터 보겠습니다. 위의 코드처럼 계산하면 답이 어떻게 나올지 사람들마다 얘기가 다 달랐습니다. 12, 13, 14까지 얘기가 나왔었습니다. 하지만 답은 12가 나왔습니다. 그 이유를 알아보겠습니다. 연산자 우선순위로 인해 num++부터 연산하도록 되어있습니다. 하지만 명령줄이 끝나고 연산이 됩니다. 앞에 있는 num과 뒤에 있는 num모두 5가 됩니다. 그 이후에 ++가 두 번 되었기 때문에 5+5+2 해서 12가 나오게 됩니다. 이번엔 전치연산입니다. ++가 앞에 붙었을 경우에는 어떻게 나올지 감이 잡히지 않았습니다. 답은 36이 나왔는데 그 이유를 알아보겠습니다. 이번에는 ++부터 계..
개강 이후로 처음으로 Visual Studio를 켜면서 수업을 진행했었습니다. 배열과 STL의 vector과 list를 비교했었습니다. 먼저 선언하는 방법부터 알아보겠습니다. 배열을 제외하고는 벡터와 리스트는 헤더파일을 추가하고 선언을 해야 됩니다. 배열과 벡터와 리스트에 대해서 작성해 보겠습니다. 먼저 배열은 vector처럼 연속된 데이터로써 각각의 데이터 위치에 원소 값을 지정할 수 있습니다. 주소 값을 출력하게 되면 배열의 시작 주소를 출력하게 됩니다. int arr[5] = {0}; int arr[5] = { 0,1,2,3,4 }; int arr[3] = 1; 위의 코드에서 첫 번째 줄은 5개의 배열을 모두 0으로 초기화합니다. 두 번째 줄은 각각의 배열을 0, 1, 2, 3, 4로 초기화합니다...
D3D를 들어가기 전 더 기초가 되는 컴퓨터공학에 대해서부터 시작을 했습니다. 작성한 코드도 텍스트입니다. 그렇기 때문에 메모장이나 Visual Studio에 작성해도 똑같습니다. 하지만 컴파일러나 라이브러리등 메모장에는 존재하지 않기 때문에 작성해도 실행은 할 수 없습니다. (이외로 Visual Studio Code가 있지만 컴파일러가 없기 때문에 권장하지 않습니다.) IDE(Integrated Development Environment)는 통합 개발 환경입니다. 컴파일러가 내장되어 있습니다. 컴파일 또는 빌드는 텍스트로 작성한 코드를 디스크 작성 메모리에 저장을 해서 exe파일로 바꾸는 작업을 합니다. 이 작업은 프로세스 메모리에 저장이 됩니다. 따로 프로세스 메모리를 두는 이유는 CPU는 디스크의 ..
동기와 비동기가 있는데 동기는 순차적으로 처리하고 비동기는 비순차적이고 동시에 실행이 됩니다. 프로세스는 과정이나 처리라는 뜻을 갖고 있습니다. 컴퓨터에서의 프로세스는 실행이나 처리하고 있는 프로그램을 의미합니다. 더 나아가서 멀티프로세스는 연속적으로 처리를 하고 있는 프로세스를 의미합니다. 프로세스 내에서 실행되는 단위를 스레드라고 하고 비동기적으로 일어나야 되는 로딩씬은 멀티스레드라고 합니다. 멀티스레드에서는 공유되고 있는 메모리가 문제가 됩니다. map과 unmap을 해서 GPU와 CPU의 접근을 제한하는 것처럼 동시에 읽고 쓰기가 되지 않도록 Lock과 Unlock를 사용해야 됩니다. 안에 lock, unlock이 있습니다. 그리고 스레드를 사용해서 함수의 주소를 쓸 수 있습니다. 위처럼 공유되고..

오늘은 아이소타일(Isotile)에 대해서 배웠습니다. 아이소타일은 정육각형 모양으로 생겼으며 위에서 45˚ 각도로 보는 쿼터뷰입니다. 2.5D로 볼 수 있고 마름모 모양의 빈 공간을 알파값으로 둡니다. 그래서 DirectX의 2D의 끝은 아이소타일이라고 볼 수 있습니다. 정육각형이므로 정점 간의 각도는 120˚입니다. 타일 한쪽 면의 각도를 삼각함수로 구할 수 있는데 그때의 각도는 30˚입니다. 아이소타일도 타일맵의 일종이기 때문에 타일맵을 상속받도록 했습니다. 원점 (0, 0)을 시작점으로 했고 최상단의 중간입니다. (1, 0)부터 오른쪽 아래로 내려가도록 했습니다. 위 사진은 강사님이 설명하면서 그렸던 그림입니다. 내일은 로딩씬을 배운다고 했습니다. 읽어주셔서 감사합니다.