목록DirectX2D (55)
응애맘마조
이미지의 알파에 대해서 배웠습니다. 투명도와 관계되어 있습니다. 값은 0 ~ 1 사이입니다. 1로 갈수록 불투명해집니다. 여태 나타내던 타일맵, 캐릭터, 오브젝트 등등 모두 알파가 1이라서 선명하게 나타낼 수 있었습니다. 예를 들어서 빨간색 화면에 파란색 사각형을 놓았다고 했을 때 각각의 알파는 1이라서 각각의 색깔로 보이게 됩니다. 하지만 알파를 낮춰서 빨간색을 0.5, 파란색을 0.5로 역행렬을 곱해서 1의 비율로 맞췄을 때 둘은 섞여서 보라색에 가까운 색을 보이게 됩니다. 그렇기 때문에 알파는 색이 아니고 색의 섞임으로 봐야 됩니다. 약간 필터에 대해서 살짝 알아봤습니다. 이미지를 표현할 때 D3D11_FILTER_MIN_MAG_MIP_POINT는 주변에 있는 픽셀로 샘플러 색을 채웁니다. D3D1..
어제 잠깐 배웠던 A*을 했습니다. 어제일자 강의에서 말했던 대로 최소비용으로 찾아가는 방식이고 비용이 커지면 갱신을 하지 않는 특성입니다. 따로 PathFinding 함수를 만들어서 사용했습니다. (객체가 아니기 때문에 따로 클래스로 빼지 않았습니다. 또한 잘 다루지 않는 기능이기도 하고 강사님이 독자적으로 만들었기 때문에 코드는 공개하지 않겠습니다.) 공식은 F = G + H입니다. G는 출발점으로부터 현재 위치까지 경로를 따라 이동하는 데 사용되는 비용입니다. H는 현재 위치에서 도착점까지의 경로를 따라 이동하는 데 사용되는 비용입니다. F는 G와 H의 합산입니다. 먼저 길을 찾았는지 아닌지 판단을 해야 되기 때문에 bool 값으로 사용하였습니다. 처음 시작할 때 타일맵 밖으로 이동하려고 하면 이동..
먼저 강의 내용에 앞서 제 생일을 많은 분들이 축하해 주셨네요. 감사합니다. 어제의 타일맵 에디터에 이어서 맵 상태를 저장하는 세이브와 로드에 대해 배웠습니다. 먼저 세이브입니다. 세이브는 경로를 지정해서 파일로 저장을 하게 됩니다. 저장을 해서 파일로 내보내기 때문에 송출을 사용하게 됩니다. 따라서 변수 이름을 fout으로 지정하고 string으로 경로를 코드로 작성해서 콘솔창이 아닌 txt파일로 저장했습니다. 이 txt파일을 열게 되면 어떤 내용들이 적혀있는지 타일 사이즈부터 해서 인덱스랑 프레임 값 등등 타일맵을 구성하고 있는 모든 값들을 저장하게 됩니다. 원래 저장을 할 때 토큰을 따로 사용을 합니다. 하지만 굉장히 까다롭기 때문에 구성하고 있는 값들을 공백값. 즉, 스페이스바로 구분을 하기로 했..
어제의 타일맵에 이어서 오늘은 편하게 맵을 만들 수 있도록 에디터를 만들었습니다. 방식은 ImGui에 타일맵 이미지를 렌더 시키고 그 이미지를 클릭하고 실행창 화면을 클릭하면 표시되도록 만들었습니다. 이미지 버튼으로 만들었습니다. 이번에도 타일맵 전체를 렌더를 하였기 때문에 uv는 달라도 주소는 똑같습니다. 특징이라고 한다면 라벨이 필요 없다는 점입니다. 이번 에디터 과정에서 코드는 강사님이 프레임워크를 만들기까지 어려웠던 점이 많았기에 올리지 않겠습니다. 실행 화면입니다. 읽어주셔서 감사합니다.
드디어 타일맵을 들어갔습니다. 많이 어렵겠지만 2D는 거의 끝나가는 쪽이니까 끝까지 잘해보겠습니다. 먼저 타일맵은 2차원 좌표계를 1차원 좌표계로 바꿔서 사용합니다. 타일맵에도 각각의 인덱스가 존재합니다. (좌측 하단이 position(0, 0)입니다.) 타일맵 각각의 인덱스마다 DrawCall을 하게 되면 사용자의 컴퓨터에 부하를 많이 주게 됩니다. 그래서 타일맵 전체를 DrawCall 해서 한 번만 하기로 했습니다. 타일맵의 정점 관리는 VertexTile에서 합니다. 사람마다 사용하는 타일맵의 사이즈는 전부 제각각입니다. 그래서 Update로 계속 갱신이 되어야 합니다. 타일맵 전체를 DrawCall 하지만 Scale은 오차를 줄이기 위해 타일 하나씩만 쓰는 것으로 지정했습니다. 타일맵도 오브젝트로..