Programming/Dev
-
[004] 이미지 로딩 및 렌더링Programming/Dev 2023. 2. 2. 22:19
이전 게시글에서는 데이터 에디터로 만든 파일을 클라이언트에서 읽어오는 작업에 대해 작성했다. 이번에는 파일에서 이미지 데이터를 읽어서 화면에 렌더링하기까지의 과정에 대해 작성할 것이다. void NytLoader::Load(std::ifstream& fs, NytProperty& root) { NytDataType type{ Read(fs) }; std::string name{ Read(fs) }; std::any data{}; switch (type) { case NytDataType::GROUP: break; case NytDataType::INT: { data = Read(fs); break; } case NytDataType::FLOAT: { data = Read(fs); break; } case..
-
[003] 데이터 로딩Programming/Dev 2023. 1. 28. 14:02
이전 게시글에서 데이터 에디터를 통해 저장한 파일을 클라이언트에서 읽어오는 작업을 했다. 이렇게 생긴 데이터를 불러와보도록 할 것이다. class NytLoader : public TSingleton { public: NytLoader() = default; std::unique_ptr Load(std::string_view filePath); private: void Load(std::ifstream& fs, NytProperty& root); }; std::unique_ptr NytLoader::Load(std::string_view filePath) { std::ifstream ifstream{ filePath.data(), std::ifstream::binary}; assert(ifstream);..
-
[002] 데이터 에디터Programming/Dev 2023. 1. 24. 22:04
게임에 사용할 데이터를 관리할 툴을 만들어 보았다. 해당 툴은 C#을 이용하여 제작하였다. 처음 켜면 이런 모습이다. 상단의 메뉴를 통해 파일을 만들거나 열 수 있다. 파일을 새로 만들거나 열면 하위 윈도우가 생기고 트리 구조 데이터를 보여준다. 노드는 편집 - 추가 메뉴를 통해 위와 같이 만들 수 있다. GROUP 타입 같은 경우 이름 그대로 하위 노드들을 그룹 지을 때 사용한다. 물론 다른 타입의 노드 하위에도 노드를 추가할 수 있다. 타입 같은 경우 GROUP, INT, FLOAT, STRING, IMAGE가 있다. IMAGE 타입의 경우 .png파일을 저장할 수 있게 하기 위한 타입이다. 이미지는 나중에 클라이언트에서 이 데이터를 읽어서 정상 출력되는지 확인해볼 예정이다. 2 GROUP, MyGr..
-
[001] 프레임워크Programming/Dev 2022. 12. 8. 22:13
혼자 취미로 Direct2D를 이용한 2D게임을 천천히 만들어보려고 한다. 무슨 게임을 만들지는 정하지 않았지만, 프레임워크는 미리 만들어두도록 할 것이다. #include "Stdafx.h" #include "NytApp.h" int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow) { NytApp::Instantiate(); if (NytApp::IsInstanced()) { NytApp::GetInstance()->OnCreate(); NytApp::GetInstance()->Run(); } } 엔트리 함수를 이렇게 멋있게 작성해보고 싶었다. ..