League Of Legends - Link Select '๐Ÿค“ Study/winAPI' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

๐Ÿค“ Study/winAPI18

[winAPI 20] Tool ์ด์ œ Tool ์”ฌ์„ ์ž‘์—…ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ํƒ€์ผ์„ ์ด์šฉํ•ด ๋งต์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ์”ฌ์ด๋‹ค. ์ผ๋‹จ ๊ธฐ์กด ์”ฌ ๋งค๋‹ˆ์ €์—์„œ START ์”ฌ์ด ์•„๋‹Œ TOOL ์”ฌ์œผ๋กœ ์ง„์ž…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. // SceneManager.cppvoid SceneManager::init(){ // .... currScene = arrScene[(UINT)SCENE_TYPE::TOOL]; // ์ˆ˜์ • currScene->Enter();}  ์ด์ œ Tile ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๋ฐ ์•„๋ž˜์˜ ํ…์Šค์ณ๋ฅผ ์ด์šฉํ•  ๊ฒƒ์ด๋‹ค. ๋ณดํ†ต ํƒ€์ผ์€ ํ•œ ๋ณ€์˜ ํฌ๊ธฐ๊ฐ€ 64๋น„ํŠธ๋กœ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค.  // define.h#define TILE_SIZE 64 // New!!enum class GROUP_TYPE { DEFAULT, TILE, // New!! PLAY.. 2024. 6. 11.
[winAPI 19] Unity Build ํŒŒ์ผ์ด ๋งŽ์•„์ง€๋ฉด ๋””๋ฒ„๊น… ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค. ์ด ๋นŒ๋“œ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์—†์„๊นŒ?→ Unity Bulid (์ƒ๊ธด ์ง€ ์–ผ๋งˆ ์•ˆ๋จ) ์„œ๋กœ๊ฐ€ ์ฐธ์กฐ๋กœ ์—ฎ์—ฌ์žˆ๊ณ , ํŒŒ์ผ์ด ๋ถ„๋ฆฌ๋œ ๊ฒƒ์ด ๋งŽ๋‹ค ๋ณด๋‹ˆ ์ปดํŒŒ์ผ์ด ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•„์ ธ ๋А๋ ค์ง„ ๊ฒƒ์ด๋‹ค. ๋นŒ๋“œ ์†๋„๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์€ main์— ๋‹ค ๋•Œ๋ ค ๋„ฃ์–ด๋ฒ„๋ฆฌ๋Š” ๊ฒƒ์ด๋‹ค.  ํ”„๋กœ์ ํŠธ ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณด๋ฉด vcxproj ํŒŒ์ผ์ด ์กด์žฌํ•œ๋‹ค.   ์ด ํŒŒ์ผ์„ text ํŒŒ์ผ๋กœ ์—ด์–ด๋ณด์ž.    ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ ํŒŒ์ผ์ด ๋ชจ๋‘ ๋‚˜์™€์žˆ๋‹ค. ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ ์†์„ฑ ํ•˜๋‚˜๋งŒ ๋„ฃ์œผ๋ฉด ์–˜๋„ค๋ฅผ ๋นŒ๋“œ ์ œ์™ธ ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์–ด ๋†“์€ cpp์„ ์ œ์™ธ ์‹œํ‚ค๊ณ  ์ž„์‹œ cppํŒŒ์ผ์— ๋ชจ๋“  cpp ํŒŒ์ผ์„ ๋ชจ์•„ ์–˜๋งŒ ๋นŒ๋“œ ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?๊ทผ๋ฐ unity build cpp ํŒŒ์ผ์—๋„ ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์กด์žฌํ•˜๊ธฐ.. 2024. 6. 11.
[winAPI 16] Scene & Object ์”ฌ ์ „ํ™˜ (ํ™”๋ฉด ์ „ํ™˜) ์”ฌ ๋ณ€๊ฒฝ์„ ๊ตฌํ˜„ํ•ด๋ณด์ž. ์”ฌ ์ „ํ™˜์€ ์”ฌ ๊ด€๋ฆฌ์ž๊ฐ€ ๊ด€๋ฆฌ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•˜์ง€ ์•Š์„๊นŒ?์”ฌ ๋ณ€๊ฒฝ ๋˜ํ•œ ์ด์ „ ํ”„๋ ˆ์ž„๊ณผ ๋‹ค์Œ ํ”„๋ ˆ์ž„์˜ ์žฅ๋ฉด์ด ๋‹ค๋ฅด๊ธฐ์— ์ด๋ฒคํŠธ ๋ฐœ์ƒ์„ ํ•ด์„œ ์ฒ˜๋ฆฌํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ผ๋‹จ ์ƒˆ๋กœ์šด ์”ฌ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์ž. // Scene_Tool.h#pragma once#include "Scene.h"class Scene_Start : public Scene {public: Scene_Start(); ~Scene_Start(); virtual void Enter(); virtual void Exit();};// Scene_Tool.cpp#include "pch.h"#include "Scene_Tool.h"#include "KeyManager.h"Scene_Tool::Scene_Tool(){.. 2024. 6. 10.
[winAPI 15] Event Manager ์ €๋ฒˆ ์‹œ๊ฐ„์— ์„ค๋ช…ํ–ˆ๋“ฏ ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„  ์ด๋ฒคํŠธ ๊ด€๋ฆฌ์ž๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.๊ทธ ์ „์— ์ €๋ฒˆ ์‹œ๊ฐ„์— Object์— ์ด๋ฆ„ ๋ณ€์ˆ˜(strName)๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋Š”๋ฐ ๊ทธ์™€ ๊ด€๋ จ๋œ ์ธํ„ฐํŽ˜์ด์Šค ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋„๋ก ํ•œ๋‹ค. // Object.h // ์ด๋ฆ„ ๊ด€๋ จ ํ•จ์ˆ˜ ์„ค์ • void SetName(const wstring& _str) { strName = _str; } const wstring& GetName() { return strName; }  ๋ณธ๊ฒฉ์ ์ธ EventManager ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜์ž. ์ผ๋‹จ ์ด๋ฒคํŠธ ํƒ€์ž…์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ์„๊นŒ? ์ด๋ฒคํŠธ๋Š” ์–ด๋– ํ•œ ์ฝ”๋“œ ๊ธฐ์ ์œผ๋กœ ์ด์ „ ํ”„๋ ˆ์ž„์—๋Š” ์—†์—ˆ๋Š”๋ฐ ๋‹ค์Œ ํ”„๋ ˆ์ž„์—๋Š” ์ƒ๊ธฐ๋Š” ๊ฒฝ์šฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์šฐ๋ฆฌ์˜ ํ”„๋กœ๊ทธ๋žจ์—์„  ๋ฏธ์‚ฌ์ผ ์ƒ์„ฑ์ด ํ•ด๋‹นํ•œ๋‹ค. (์ด์ „ ํ”„๋ ˆ์ž„์—๋Š” ์—†์—ˆ๋Š”๋ฐ ๋‹ค์Œ ํ”„๋ ˆ์ž„์—๋Š” ์ƒ.. 2024. 6. 10.
[winAPI 14] Collider(3) Collider ์ถฉ๋Œ์ฒด๋งˆ๋‹ค ์•„์ด๋””๋ฅผ ๊ณ ์œ ๋กœ ์ฃผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๋งŒ์•ฝ ๊ฐ์ฒด๊ฐ€ ๋ณต์‚ฌ ๋˜์–ด ์ƒ์„ฑ๋˜๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? ๊ธฐ๋ณธ ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋Š” ๊ทธ๋Œ€๋กœ ๋ณต์‚ฌํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ID๊ฐ€ ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์Œ. ์ด๋Š” ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชฉํ‘œ์— ์œ„๋ฐฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๊นŠ์€ ๋ณต์‚ฌ ํ•„์š”๊ฐ€ ํ•„์š”ํ•˜๋‹ค. // Collider.hclass Object; class Collider {private: static UINT nextID; Object* owner; Vec2 offsetPos; Vec2 finalPos; Vec2 scale; UINT iID; UINT col;public: Collider(); Collider(const Collider& _ori); // ๋ณต์‚ฌ์ƒ์„ฑ์ž ~Collider(); Collider& operator =.. 2024. 6. 9.
[winAPI 13] Collider(2) ๊ฐค๋Ÿฌ๊ทธ ๊ฐ™์€ ๊ฒŒ์ž„์—์„œ์˜ ํ”Œ๋ ˆ์ด์–ด ์ถฉ๋Œ ๋ฐ•์Šค๋Š” ๋ณดํ†ต ์•ˆ์ชฝ์œผ๋กœ ๋˜์–ด, ๋ฏธ์‚ฌ์ผ์ด ๋‚ ๋ผ์™€๋„ ํ”ผํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌํ˜„๋˜๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ž˜์˜ ์‚ฌ์ง„๊ฐ™์ด ์ˆ˜์ •ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ถ”๊ฐ€๋กœ ๋ชฌ์Šคํ„ฐ์—๋„ ์ถฉ๋Œ ๋ฐ•์Šค๋ฅผ ๊ทธ๋ฆฌ๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜์˜€๋‹ค.  // Player.cpp ์ˆ˜์ •Player::Player() : tex(nullptr){ // Texture Loading tex = ResManager::Instance()->LoadTexture(L"PlayerTex", L"Texture\\Player.bmp"); CreateCollider(); // ์ถฉ๋Œ ํ•„์š”ํ•œ ์• ๋“ค ๋‹ค ๋„ฃ์–ด์ฃผ๊ธฐ. GetCollider()->SetOffsetPos(Vec2(0.f, 10.f)); // ์ˆ˜์ • GetCollider()->SetScale(Vec2(40.f, 50.f)).. 2024. 6. 8.
[winAPI 12] Collider(1) ์ถฉ๋Œ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด๋ณด์žฅ..๊ฒŒ์ž„์—์„œ ์ถฉ๋Œ์€ ๋งค์šฐ ํ•„์ˆ˜์ ์ธ ๋ถ€๋ถ„์ด๋‹ค. ์ถฉ๋Œ์€ ๋‹จ์ˆœํžˆ ๋ถ€๋”ช์ณค๋‹ค๋Š” ํ•˜๋‚˜์˜ ์‚ฌ์‹ค์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค. ์•„๋ž˜์—์„œ ์ด ์กฐ๊ฑด์— ๋”ฐ๋ผ ์„ธ ๊ฐ€์ง€ ์ด๋ฒคํŠธ๋กœ ๋‚˜๋ˆŒ ๊ฒƒ์ด๋‹ค.  ์˜ค๋ธŒ์ ํŠธ์— ์ถฉ๋Œ์ด ํ•„์š”ํ•œ ๊ฒƒ์ด ์žˆ๊ณ , ์•„๋‹Œ ๊ฒฝ์šฐ(๋ฐฐ๊ฒฝ, UI ๋“ฑ)๊ฐ€ ์žˆ๋‹ค. ์˜ค๋ธŒ์ ํŠธ ๋‚ด์—์„œ Collider ์™€ Non-Collider๋กœ ๋‚˜๋ˆ„์–ด ์ƒ์†์„ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ•˜๋ฉด ํ™•์žฅ์„ฑ์ด ๋–จ์–ด์ง„๋‹ค. Non-Collider ์ค‘์—์„œ ์ผ๋ถ€๋งŒ ์ถฉ๋Œ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๊ตฌ์กฐ๋ฅผ ๋‹ค ๋œฏ์–ด ๊ณ ์ณ์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ. ๊ทธ๋ž˜์„œ ์ƒ์† ๊ตฌ์กฐ์˜ ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ๊นŠ๋‹ค๋ฉด(์ƒ์†-์ƒ์†-์ƒ์†...) ์ด๋Ÿฐ ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ํ™•๋ฅ ์ด ๋†’๋‹ค. ์ด๋Ÿฐ ๋ฉค๋ฒ„๋Š” ํ•ญ์ƒ ๊ฐ–๊ณ  ์žˆ๋˜ ํ•„์š”ํ•˜๋ฉด ์“ฐ๊ณ , ์•„๋‹ˆ๋ฉด ์•ˆ ์“ฐ๋„๋ก ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค. ์ด๋Ÿฐ ์• ๋“ค์„ component๋ผ๊ณ  ๋ถ„.. 2024. 6. 6.
[winAPI 11] Resource Manager ๋ฆฌ์†Œ์Šค ๋งค๋‹ˆ์ €๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. // Resource.h#pragma onceclass Texture;class ResManager { SINGLE(ResManager);private: map mapTex;public: Texture* LoadTexture(const wstring& _key, const wstring& _path); Texture* FindTexture(const wstring& _key);};// Resource.cpp#include "pch.h"#include "ResManager.h"#include "PathManager.h"#include "Texture.h"ResManager::ResManager(){}ResManager::~ResManager(){ map::iterator ite.. 2024. 6. 6.
[winAPI 10] Resource & Path Manager ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋‹จ์ˆœํžˆ ๋„ํ˜•๋งŒ์„ ๋‹ค๋ฃจ์–ด๋ดค๋‹ค๋ฉด ์ด์ œ๋Š” ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•ด๋ณด์ž. ์‹ค์ œ ๊ฒŒ์ž„์—์„œ๋Š” ์ด๋ฏธ์ง€, ์‚ฌ์šด๋“œ ๋“ฑ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด ํ™”๋ฉด์— ์—ฌ๋Ÿฌ ์žฅ๋ฉด์„ ๊ทธ๋ ค ์œ ์ €์—๊ฒŒ ๋ณด์—ฌ์ค€๋‹ค. ์šฐ์„  ์ด ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ ธ์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„ Resํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค (๋ถ€๋ชจ๊ฒฉ ํด๋ž˜์Šค)๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์œ ์˜ ID์™€ ์ด ๋ฆฌ์†Œ์Šค๊ฐ€ ์–ด๋А ํŒŒ์ผ์— ์œ„์น˜ํ•ด ์žˆ๋Š” ์ง€๋ฅผ ์•Œ๋ ค์ฃผ์–ด์•ผ ํ•จ์œผ๋กœ ๊ฒฝ๋กœ๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค. // Res.h#pragma onceclass Res {private: wstring key; // ๊ณ ์œ  ID wstring strRelativePath; // ๋ฆฌ์†Œ์Šค ์ƒ๋Œ€ ๊ฒฝ๋กœ(ํด๋” ๋‚ด์˜ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ)public: Res(); ~Res(); void SetKey(const wstring& .. 2024. 6. 6.
728x90
๋ฐ˜์‘ํ˜•