๋ชฉ๋ก์ ์ฒด ๊ธ (1104)
KoreanFoodie's Study

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 8 : ๊ฐ์ฒด ์งํฅ์ ์ธ ์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ "๋ชจ๋ ๊ฒ์ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ ธ ์๋ค". ๊ฐ์ฒด ์งํฅ์ ์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ฉด ์ ์ง ๋ณด์๊ฐ ํธํ๋ฉฐ ์๋ก์ด ๊ธฐ๋ฅ์ ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ๊ตฌํํ ์ ์๋ค. ์ด ๊ธ์์๋ ์ค์ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ณด๋ฉฐ ๊ทธ ๋ถ๋ถ์ ๋ํ ๊ธฐ์ด๋ฅผ ๊ฐ๋ตํ ์์ ํ๋ค. ๊ธฐ๋ฅ ์์1 . ๋ ์์ธํ ๋ด์ฉ์ด ๊ถ๊ธํ์๋ค๋ฉด ์ง์ ๋ค์ด๋ณด์๋ ๊ฑธ ์ถ์ฒ๋๋ฆฝ๋๋ค!

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 7 : ๊ฒ์ ํ๋ ์์ํฌ ๊ตฌ์ฑ ์ง๊ธ์ ๊ฐ๋จํ ๊ฒ์์ด๋๊น WindowsProject1.cpp๋ผ๋ ๋จ์ผ ํ์ผ์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ์ง๋ง, ํ๋ก๊ทธ๋จ์ด ๋ณต์กํด์ง๋ฉด ์ฌ์ค ํ์ํ ์ฝ๋๋ฅผ ํ์ํ ํ์ผ์ ๋ถํ ํด์ ๊ตฌ์ฑํด์ผ ํ๋ค. ์ด ๊ธ์์๋ ์ด๋ฅผ ์ํ ๋ฐ์์ ์ ์ด๋ป๊ฒ ํ๋์ง๋ฅผ ๋ค๋ฃจ๊ณ ์ ํ๋ค. GameNode : ๋จผ์ ์ค์ผ๋ ํค ํด๋์ค๋ฅผ ๋ง๋ค์ #pragma once class GameNode { public: GameNode(); ~GameNode(); virtual void Init() = 0; // ์์ ๊ฐ์ ํจ์ virtual void Update() = 0; virtual void Render() = 0; }; ๋จผ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ผ๋ก Init, Update, Render๋ผ๋ ๊ฐ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง..

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 6 : ๊ฐ๋จํ UI ๊ตฌํ๊ณผ ๋ฅํผํ๊ธฐ ๊ฒ์ ์์ ์ด์ ๊ธ์ ์ด์ด์ ์ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ฝ๊ฐ ์ถ๊ฐํด ๋ณด์. ์ ์ญ ๋ณ์ ์ฌ์ค์ struct tagBox { RECTrt; floatspeed; }; vectorvecBox;// ๋จ์ด์ง๋ ๋ ํธ๋ค์ ์ ๋ณด intnDelay = 50; struct tagBox๋ฅผ ์๋ก ์ ์ธํ์ฌ RECT๋ฅผ ๋์ฒดํ๋ค. ๊ทธ ์ด์ ๋, ๊ฐ๊ฐ์ ์์๋ง๋ค ๋จ์ด์ง๋ ์๋๋ฅผ ๋ค๋ฅด๊ฒ ๋ง๋ค๊ธฐ ์ํด์์ธ๋ฐ, ์ด๋ ๋์ด๋๋ ์ฝ๊ฐ์ ์ฌ๋ฏธ ์์๋ฅผ ์ฒจ๊ฐํ๋๋ฐ ์ฌ์ฉ๋ ์ ์๋ค. WM_TIMER : ์ ์ ๊ณ์ฐ๊ณผ ํ์ ์์ case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ { InvalidateRect(hWnd, NULL, true); nLevel = nScore / 100 + 1; // ํฌ์ง์ ์..

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 5 : ๋ฌผ์ฒด ๋จ์ด๋จ๋ฆฌ๊ธฐ ์ด๋ฒ ๊ธ์์๋ ๊ฐ๋จํ ๋ฌผ์ฒด๋ฅผ ๋จ์ด๋จ๋ฆฌ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉฐ ๋ค๋ฅธ ๋ํ ์ผ์ ์ค๋ช ํ๋ค. WM_CREATE case WM_CREATE:// ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ํ๋ฒ ํธ์ถ ๋๋ค. (์ด๊ธฐํ) SetTimer(hWnd, 1, 10, NULL); srand(time(NULL)); break; ์ด๊ธฐํ ํจ์๋ฅผ ํตํด ํ์ด๋จธ๋ฅผ SET ํ๊ณ , ๋๋ค ํจ์๋ฅผ ํธ์ถํ๋ค. WM_TIMER case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ { InvalidateRect(hWnd, NULL, true); // ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ ํธ ์ ๋ณด ์ ๋ฐ์ดํธ rtBox1 = RECT_MAKE(ptPos1.x, ptPos1.y, 50); if (nDelay == 50) { RECT rt; rt.le..

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 4 : ์ถฉ๋ ๊ฒ์ฌ (IntersectRect...) ์ด๋ฒ ๊ธ์์๋ ๋ํ์ด ๋ค๋ฅธ ๋ํ๊ณผ ๋ง๋ฌ์ ๋ ์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํ๊ณ ์ฒ๋ฆฌํ๋์ง๋ฅผ ์ดํด๋ณธ๋ค. WM_TIMER์์ IntersectRect๋ฅผ ๋ฃ์ด๋ณด์ // ์๋ ๋ ์ค์ ์ ์ญ๋ณ์๋ก ์ ์ธํจ enum MOVE_DIR { MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN }; MOVE_DIReMoveDir; // ... case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ InvalidateRect(hWnd, NULL, true); // ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ ํธ ์ ๋ณด ์ ๋ฐ์ดํธ rtBox1 = RECT_MAKE(ptPos1.x, ptPos1.y, 100); rtBox2 = RECT_MAKE(ptPos2.x, ptPos..

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 3 : ํค ์ ๋ ฅ๊ณผ ๊ฒ์ ์ ๋ฐ์ดํธ ์ด๋ฒ ๊ธ์์๋ WIM_KEYDOWN์ ํตํ ํค ์ ๋ ฅ์ ๋ํด ์์๋ณด๋๋ก ํ๋ค. ํค ์ ๋ ฅ ์ฒ๋ฆฌํ๊ธฐ case WM_CREATE:// ํ๋ก๊ทธ๋จ์ด ์คํ ๋ ๋ ํ๋ฒ ํธ์ถ ๋๋ค. (์ด๊ธฐํ) SetTimer(hWnd, 1, 10, NULL); break; case WM_TIMER:// ํ์ด๋จธ์ ์ํด์ ํธ์ถ InvalidateRect(hWnd, NULL, true); break; case WM_KEYDOWN:// ํค ์ ๋ ฅ์ด ์์ ๋ ๋ง๋ค ํธ์ถ ๋๋ค. switch (wParam) { // ์ผํญ์ (์กฐ๊ฑด) ? ์ฐธ์ผ ๋ : ๊ฑฐ์ง์ผ ๋ case 'A': case VK_LEFT: ptPos.x -= (ptPos.x > 0) ? 1 : 0; break; case 'D': ..

์๋์ฐ API ํ๋ก๊ทธ๋๋ฐ 1 : ์ฐฝ ์์ฑ ๋ฐ ๊ธฐ๋ณธ ์ธํ ๋จผ์ ๋น์ฃผ์ผ ์คํ๋์ค(2019)์์ Windows ๋ฐ์คํฌํ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ์. ๊ทธ๋ผ ์๋์ ๊ฐ์ ์์ผ๋ก ํ๋ก์ ํธ๊ฐ ์์ฑ๋๋๋ฐ, ์ด์ค framework.h, WindowsProject1.cpp ํ์ผ์ด ์๋ ์์ฑ๋๊ณ , ์ด ๋ถ๋ถ์ ๊ณ ์น๋ฉด์ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค. framwork.h ํ์ผ์ ํค๋ ํ์ผ์ด๋ ๋งคํฌ๋ก ์ ์ธ, ๋ณ๊ฒฝ์ด ๊ฑฐ์ ์๋ ๋ณ์ ๋ฑ์, WindowsProject1.cpp ํ์ผ์์๋ ํ์ด๋จธ๋ ํ์ธํ ์ ํฌํจํ๊ณ ์๋ค. framework.h // header.h: ํ์ค ์์คํ ํฌํจ ํ์ผ // ๋๋ ํ๋ก์ ํธ ํน์ ํฌํจ ํ์ผ์ด ๋ค์ด ์๋ ํฌํจ ํ์ผ์ ๋๋ค. // #pragma once #include "targetver.h" #define WIN..

๊ฒฝ์ ์ ์์ ๋ฅผ ์ํด ์ฝ๊ณ ์ ๋ฆฌํ ๊ธ๋ค์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ์ฌํ ํฌ, ๋ถ์ํ, ๊ฒฝ์ ์ ์์ , ์์ฐ ๊ด๋ฆฌ, ๋ ๊ด๋ฆฌ, ์ ์ถ, ์ฃผ์, ๋ถ๋์ฐ, ํฌ์ ๋ฑ์ ๊ด์ฌ์ด ๋ง์ ๋ถ๋ค๊ป ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ์ฑ ์ ๊ฒฝ์ฐ, ์ก๊ธฐ์ค๋ง ๋ฝ์์ ์ ๋ฌํด ๋๋ฆฌ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ์ ํน์ ๋น ์ง์ง ๋ง๋ผ. 1. ๊ณ ์์ต์ ์ ํน - ๋๊ตฌ๋ ์์ ์ ๋์ด ๋ถ์ด๋๊ธธ ๋ฐ๋๋ค 2. ๊ณผ์๋น์ ์ ํน - ๋จ๋ค๊ณผ ์์ ์ด ๋ค๋ฅด๋ค๋ ๊ฒ์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ดํ๋ค 3. ๊ฒ์ผ๋ฆ์ ์ ํน - ๋ ๋ง ์๊ฒ ์ ์ฌ์ ์ ์ธ ์ด๋ ค์์ ์ง์ , ๊ฐ์กฑ, ๊ฐ์ธ์ ์์ญ ์ ๋ฐ์ ๊ทธ๋์ง๊ฒ ํ๋ค. ๋ ๊ฑฑ์ ์ ์ฌ๋ฅ, ์ฉ๊ธฐ, ์ ์ฌ๋ ฅ์ ๊ฐ์๋จน๋๋ค. ๋์ ์ง์ฐฉํ๋ฉด, ๋์ ์ข์ผ๋ฉด ๋์ ๋๋ง๊ฐ๋ค. ์ง์ ํ ๋ถ์๋ ๋์ ์ง์ฐฉํ์ง ์๋๋ค. ๋์ ์ฌ๋์ ๋์์ด ์๋๋ผ ์ฒ ์ ํ๊ณ ๋์ ํ๊ฒ ๊ด๋ฆฌ๋์ด์ผ ํ ๋์์ด๋ค. ์ํ..

์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 8. ๋ชจ๋ธ๋ง (์ ๊ทํ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ, ์ผํ๋ชฐ ๋ชจ๋ธ๋ง) -- tProject ํ ์ด๋ธ์์ UPDATE ์ฟผ๋ฆฌ๋ฅผ ์คํํ๋ค. UPDATE tProject SET ๋ด๋น์='๋ฌธ์ข ๋ฏผ' WHERE ํ๋ก์ ํธ='TV ๊ด๊ณ ๊ฑด'; SELECT ํ๋ก์ ํธ๋ช FROM tProject WHERE ๋ด๋น์ = '๊น์ํ'; CREATE TABLE tEmployee ( name CHAR(10) PRIMARY KEY, salary INT NOT NULL, addr VARCHAR(30) NOT NULL ); INSERT INTO tEmployee VALUES ('๊น์ํ', 650, '์ด์ฒ์'); INSERT INTO tEmp..

์ด ๊ธ์ '๊น์ํ์ SQL ์ ๋ณต'์ ์์ ์ฝ๋๋ฅผ ์ค๋ช ํ๋ ๋ฐฉ์์ผ๋ก SQL ์ฟผ๋ฆฌ ์์ ๋ฅผ ์๊ฐํ๊ณ ์์ต๋๋ค. SQL ๊ธฐ์ด - 7. ์ ์ฝ(์ ์ฝ, ๊ธฐ๋ณธํค, ์ํ์ค) ์ปฌ๋ผ ๋ฌด๊ฒฐ์ฑ : ์ปฌ๋ผ ํ๋์ ์ ์ฅ๋๋ ์์์ ์ธ ๊ฐ์ ์ ๊ฒ(๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ). ํ์ ์ง์ , ๋ ํ์ฉ ์ฌ๋ถ, ์ฒดํฌ, ๊ธฐ๋ณธ๊ฐ ๋ฑ์ ์ ์ฝ์ด ์๋ค. ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ : ๋ ์ฝ๋๋ผ๋ฆฌ ์ค๋ณต๊ฐ์ ๊ฐ์ง์ง ์๋๋ก ํ์ฌ ์ ์ผํ ์๋ณ์๋ฅผ ๊ด๋ฆฌํ๋ค. ๊ธฐ๋ณธํค์ ์ ๋ํฌ ์ ์ฝ์ด ์๋ค. ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ : ํ ์ด๋ธ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ํค๊ฐ ํญ์ ์ ํจํ๋๋ก ๊ด๋ฆฌํ๋ฉฐ ์ธ๋ํค ์ ์ฝ์ผ๋ก ๊ด๋ฆฌํ๋ค. ์ด์ชฝ ํ ์ด๋ธ์ด ์ฐธ์กฐํ๋ ์ ๋ณด๊ฐ ์ ์ชฝ ํ ์ด๋ธ์ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๋ค. -- ํ๋ฒํ ๋ฐ์ดํฐ ์ฝ์ ... INSERT INTO tCity VALUES ('ํ์','์์ฒญ ๋์','๊ฝค ๋ง์๊ฑธ','n','์กฐ์ ์ธ๋ฏผ๋ฏผ์ฃผ..