목록공부 (292)
응애맘마조
전역변수는 지역변수와는 다르게 중괄호 내에 선언되지 않습니다. 이 변수는 프로그램이 처음 실행되면 메모리 공간에 할당되고 프로그램이 종료될 때까지 남아있는 변수입니다. 그리고 프로그램 전체 영역 어디서든 접근이 가능합니다. 전역변수를 초기화하지 않으면 0으로 초기화됩니다. 지역변수처럼 쓰레기 값이 나오는 것과는 비교되는 특징이 보입니다. 0으로 되는 이유는 초기화되지 않은 전역변수는 데이터 영역에 저장하면 BSS(데이터 영역과 힙 영역 사이)에 저장됩니다. 이 변수들은 BSS에서 0으로 채우는 과정을 거칩니다. (출처) : https://hydroponicglass.tistory.com/182 파일 형식 중에서 .bss가 있습니다. 컴파일러와 링커가 처음에 0 값으로 표현되는 정적으로 할당된 변수를 포함..
지역변수는 지역 내에 있는 변수입니다. 즉, 중괄호 내에 선언되어 있는 모든 변수는 지역변수입니다. 이러한 변수는 그 지역 내에서, 그 중괄호 내에서만 사용되고 중괄호를 벗어나게 되면 소멸합니다. 새롭게 함수가 호출될 때마다 변수는 새롭게 메모리 공간에 할당됩니다. 지역변수는 선언된 지역 내에서만 유효하기 때문에 지역이 다르면 변수의 이름이 같아도 문제가 되지 않습니다. 위의 사진처럼 똑같은 이름의 num을 2개를 사용하였지만 지역이 다르기 때문에 같은 이름을 사용해도 오류가 뜨지 않고 출력이 되는 모습을 볼 수 있습니다. Function이라는 함수를 만들어서 num을 10으로 초기화합니다. 그다음 출력문을 사용해서 콘솔창에 num을 출력하는 명령문을 작성하고 마지막에 return을 해서 함수의 종료를 ..
씬이 바뀌면서 효과를 주는 것이 과제였습니다. //stage01.h #pragma once class Stage01 : public Scene { public: ObTileMap* map; ObImage* coin; bool fadeOut; float fadeIn; public: virtual void Init() override; virtual void Release() override; virtual void Update() override; virtual void LateUpdate() override; virtual void Render() override; virtual void ResizeScreen() override; }; //stage01.cpp #include "stdafx.h" voi..
동기와 비동기가 있는데 동기는 순차적으로 처리하고 비동기는 비순차적이고 동시에 실행이 됩니다. 프로세스는 과정이나 처리라는 뜻을 갖고 있습니다. 컴퓨터에서의 프로세스는 실행이나 처리하고 있는 프로그램을 의미합니다. 더 나아가서 멀티프로세스는 연속적으로 처리를 하고 있는 프로세스를 의미합니다. 프로세스 내에서 실행되는 단위를 스레드라고 하고 비동기적으로 일어나야 되는 로딩씬은 멀티스레드라고 합니다. 멀티스레드에서는 공유되고 있는 메모리가 문제가 됩니다. map과 unmap을 해서 GPU와 CPU의 접근을 제한하는 것처럼 동시에 읽고 쓰기가 되지 않도록 Lock과 Unlock를 사용해야 됩니다. 안에 lock, unlock이 있습니다. 그리고 스레드를 사용해서 함수의 주소를 쓸 수 있습니다. 위처럼 공유되고..

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