1.1.1. Until 10/16 ¶
- ๊ณต ์์ง์
- ๋นํ๊ธฐ ์์ง์
- ๋นํ๊ธฐ์ ๊ณต์ ์ถฉ๋ ์ฒดํฌ(์์์ ๋ถ๋ช์น๋ ์์์ ๋ถ๋ช์น๋ )
- ๊ณต์ด๋ ๋ธ๋ก๋ค ์ถฉ๋ ์ฒดํฌ(์ฝ๊ฐ ์๋ฆฌ์๋ฆฌํ๋ค?--; ์ด๋๋์ด 1์ด ์๋ 2๊ฐ ๋์ด ๋ฒ๋ ค์ ๊ทธ๋ ๋ค.)
- ์ฅ๋๋ผ ๋ฐฐ๊ฒฝํ๋ฉด์์ ๊ทธ๋ฅ ํ๋ ํ๋ ๋ฐฐ๊ฒฝ์ผ๋ก ๋ฐ๊ฟจ๋ค. ์ขํ ๊ณ์ฐ ์ฝ์ง๋ก ์ธํด ์ผ์์๊ฐ ์งค๋ ค๋ฒ๋ ธ๋ค.
- ์๋ ์๋ 1ms๊น์ง ๋ฉํฐ ํ์ด๋จธ๊ฐ ๋จนํ๋๋ฐ, ์ง๊ธ ํ๋๊ฑด 5ms ์ดํ๋ก ํ๋๊น ๋๊ธด๋ค. ์๊ทธ๋ด๊น
- ์คํ
์ด์ง๋ ์ญ์ ํ์ผ๋ก ์ฒ๋ฆฌ
1.1.2. 10/17 ¶
- ์ ์, ๊นจ๋จ๋ฆฐ ๋ธ๋ก, ๊ฑธ๋ฆฐ ์๊ฐ ๋์ด
- ์ฝ๊ฐ ์ด์คํ๊ธด ํ์ง๋ง ์์ง์ด๋ ๋ฐ์ ๋ง์๋ ๊ฐ๋ ๋ฐ๋๋ค. ์๋๋ฅผ ์ ํํ ์ ์งํ๊ธด ํ๋ค๋ฏ ํ๋ค.
- ๋ฉํฐ ํ์ด๋จธ ํด๊ฒฐ๋ดค๋ค. ๊ฐ์ฒด๊ฐ ๋๋ฌด ํฌ๋ฉด ๊ทธ๋ฐ๊ฐ ๋ณด๋ค. ์ ๋ถ ํฌ๊ธฐ๋ฅผ 1/4๋ก ์ค์๋๋ 1ms๊น์ง ๋จนํ๋ค.
- ์๋ฌด๋ฆฌ ์๊ฐํด๋ ๋ฐฐ์ด์ ํ๊ณผ ์ด์ ๋๋ฌด ํท๊ฐ๋ฆฐ๋ค. ํ๋์ ๊ทธ๋ฆผ์ด 90๋ํ์ ๋์ ๋์ค๋๋, ์ ๊ฑฐ ๊ณ ์น๋๊น ๋๋๊ตฐ.
- ์์ค์ ์ด๊ฒ์ ๊ฒ ๋ง ๋ฃ๋ค ๋ณด๋ ์ง๊ธ ์ฝ๋๊ฐ ์๋นํ ์ง์ ๋ถํด์ก๋ค. ์ค๋ณต์ ์ต๋ํ ์์ ๋ ๋ฐฉํฅ์ผ๋ก ํด๋์ ์ค๋ณต์ ๋ณ๋ฃจ ์์ง๋ง, ํ ๋ฉ์๋๊ฐ ๋๋ฌด ๊ธธ๊ณ , ํด๋์ค ๋ณ ์ญํ ๋ถ๋ด์ด ์ ๋๋ก ์ด๋ค์ง์ง ์์๊ฒ ๊ฐ๋ค. ๋ชจ๋ ์ถฉ๋๋ฃจํด์ด ๋ค CArcaBall์ ์ง์ค๋์ด ์๋ค.
- ... ์๊ฐํด๋ณด๋ ๋ฐ์ดํฐ ํต์ ๊ณต๋ถ๋ฅผ ์ํ๊ณ ์์๋ค. ์ ๊ธธ--; ๊ณต๋ถํ์
1.1.3. 10/18 ¶
- ์์ดํ
๋จ์ด์ง๋ค.
- ์ปจํ
์ด๋์ ํฌ์ธํฐ ์ ๋ฃ์๋ผ๊ณ ๋ณต์ฌ ์์ฑ์, ๋์
์ฐ์ฐ์ ์ด๋ฐ๊ฒ๋ ๋ง๋ค์ด์ผ ํ๋ค..--;
- ์ ์ฒด์ ์ธ ๋์์ธ ๋ณํ : ๋จผ์ ๋ฒ๊ฒ ๋ถ์ฐ์์ด์๋ค๋ฉด, ์ด๋ฒ๊ฑด ์ปค๋ค๋ ๊ด๋ฆฌ ํด๋์ค์์ ์์์ ํ๋ ์์ผ๋ก ๋ฐ๊ผ๋ค. OOP๋ก๋ถํฐ ์ ์ ๋ฉ์ด์ง๋๊ฑฐ ๊ฐ๊ธด ํ์ง๋ง..--;
- ์ ์ ๋ฐฐ๋๋ณผํ ๋๊ฐ๊ณ ์๋ค.--;
1.1.4. 10/28 ¶
- ๊ทธ๋์ ์ํ๊ธฐ๊ฐ์ด๋ผ ์ข ์ฌ์๋ค.
- ์ถฉ๋์ฒ๋ฆฌ ๋ฒ๊ทธ ์ ๊ฑฐํ๋ค.
- ๋ฏธ์ฌ์ผ ๋๊ฐ๋ ๊ฒ๋ง ๋ฃ์ผ๋ฉด ๋๋ค.
- ๊ณต ์ฌ๋ฌ๊ฐ ๋์๋๊ธฐ๋๊ฒ๋ ๋ฃ์ด๋ณผ๊น ํ๋ค.
1.1.6. 10/30 ¶
- ๋งค๋ฒ ๋๋ผ๋ ๊ฑฐ์ง๋ง C++์ ๋ฆฌํฉํ ๋งํ๊ธฐ๊ฐ ์ ๋ง ํ๋ ๊ฒ ๊ฐ๋ค. ์ด๊ฑฐ ๊ณ ์น๋ฉด, ํค๋๋ ๊ณ ์ณ์ผ ํ๊ณ ::์์๊ฒ๋ ๊ณ ์ณ์ค์ผ ํ๊ณ .. ์ ์ง์ฆ๋.--;
- ์ด์ฌํ ๋ฆฌํฉํ ๋ง ์ค. ๋ค๋ฅธ ๊ฐ์ฒด๋ณด๋ค ๊ณต ๊ฐ์ฒด ๋ฉ์น๊ฐ ์ปค์ง๋๊ฑด ์ด์ฉ์ ์๋๊ฑด๊ฐ..
- ์ด์ฏค์์ ์๋ผ์
1.4. Class ¶
~cpp CArcaObject - ์์นด๋ ธ์ด๋์ ๋ฑ์ฅํ๋ ๋ชจ๋ ์ค๋ธ์ ํธ๋ค์ ๋ถ๋ชจ ํด๋์ค(์์น, ํฌ๊ธฐ, ๋นํธ๋งต, getter/setter) CArcaBall : public CArcaObject - ๊ณต CArcaBar : public CArcaObject - ๋ฐ CArcaBlock : public CArcaObject - ๋ธ๋ก CArcaBackground - ๋ฐฐ๊ฒฝ CArcaItem : public CArcaObject - ์์ดํ CArcaMissile : public CArcaObject - ๋ฏธ์ฌ์ผ CArcaDoc : ์์ ๊ฐ์ฒด๋ค์ ํฌํจํ๋ค. ๋ธ๋ก์ ๋ฒกํฐ๋ก ์ ์ฅํ๋ค. ์์ดํ ์ ๋จผ์ ๋์จ๊ฑธ ๋จผ์ ๋จน๊ฒ ๋๋ฏ๋ก ๋ฑ์ผ๋ก ์ ์ฅํ๋ค. CArcaView : ๊ทธ๋ ค์ค๋ค.
1.6. ๊ณ ๋ฏผ์ค ¶
- ์ง๋๋ฒ์ ํ ๋๋ ๋ฌด์กฐ๊ฑด 45๋๋ก ํด์ ๋ณ๋ฃจ ์๊ฐ์ํ์ง๋ง..
- ์ด๋ฒ์๋ ์์ง์ด๋ ๋ฐ์ ๋ง์ผ๋ฉด ๊ฐ๋๊ฐ ๊บพ์ฌ์ผ ํ๋จ๋ค...
- ์ง๋๋ฒ์ x๋ก 1, y๋ก 1 ์ด๋ ๊ฒ ์์ง์์ง๋ง.. ์ด๋ฒ์ ๋๊ฐ์ ๊ธธ์ด ๋ฃจํธ2์๋ค๊ฐ cos22.5, sin22.5 ์ด๋ฐ๊ฑธ ํด๋ฒ๋ฆฌ๋ฉด.. ์บ์คํ
๋ ๋ 1,0 ์ด ๋๋ฉด์ ์์ง, ๋๋ ์ํ์ผ๋ก๋ง ์์ง์ผ ์๊ฐ ์๋ค.
- ๊ทธ๋ฌ์๊ณ ์ด๋๋์ ๋๋ฆฌ์๋, ์ถฉ๋์ฒ๋ฆฌ๊ฐ ์ ๋งคํด์ง๊ณ ๋ถ๋๋ฝ์ง๋ ์๊ฒ ๋๋๋ ๋ง์ด๋ค.
- ๊ธฐ๋ฅ ์ถ๊ฐ๋ฅผ ํด์ผ ํ๋๋ฐ ๋ญ ํด์ผ ํ ๊น. ๊ฑ ๊ฐค๋ฌ๊ทธ๋ฅผ ๋ง๋ค์ด๋ฒ๋ฆด๊น..--;
1.7.1. MFC์ ๊ดํด? ¶
- MFC ์ฑ
์ ๋ณด๋ฉด ๋นํธ๋งต ๋๋ GDI ์ธ๋ CPen pen, *pOldPen ์ด๋ ๊ฒ ํด์ ๋ญ๊ฐ ์ด์ํ ์ง์ ํ๋๋ฐ ๊ฐ ์ ์ผ๋ก๋ ์ ๊ทธ๋ ๊ฒ ํ๋์ง ์ดํด๋ฅผ ๋ชปํ๊ฒ ๋ค. ๊ทธ๋ฅ ๋ฉค๋ฒ์ ๋ฃ์ด๋ฒ๋ฆฌ๋ฉด pOldPen ์ด๋ฐ๊ฑฐ ์ํด๋ ๋๋๋ฐ.. ์์๋๋ถ์ ๊ฐ์ณ ์ฃผ์ธ์.^^;
- ์ ํํ ๋ฌด์จ ์ด์ํ ์ง์ด๋ผ๋ ๊ฑฐ์ง? ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ผ --์๋ฏผ
- ์. ์๋ฅผ ๋ค์๋ฉด ๋ค์๊ณผ ๊ฐ์..
- ์. ์๋ฅผ ๋ค์๋ฉด ๋ค์๊ณผ ๊ฐ์..
- ์ ํํ ๋ฌด์จ ์ด์ํ ์ง์ด๋ผ๋ ๊ฑฐ์ง? ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๋ผ --์๋ฏผ
~cpp ... CDC *pDC = GetDC(); CPen pen, *pOldPen; pen.CreatePen(~~); oldpen = pDC->SelectObject(&pen); ... ๊ทธ๋ ค์ค๋ค ... pDC->SelectObject(pOldPen); pen.DeleteObject();
- ๋์ถฉ ์ด๋ฐ๊ฑด๋ฐ์. ์ ๋ ์ ์ ๋ ๊ฒ ํ๋์ง ์ ๋ชฐ๋ผ์, ๊ทธ๋ฅ ์ด๋ฐ์์ผ๋ก ํ๊ฑฐ๋ ์.
~cpp // ํค๋ CPen pen; ... // ์์ค OnInitialUpdate() ๋ง๋? ์ด์จ๋ ์ด๊ธฐํ ํ๋๊ฑฐ์์ pen.CreatePen(๋ง๋ ๋ค.); //ํด์ฃผ๊ณ //๊ทธ๋ ค์ค๋๋ pDC->SelectObject(&pen); //์ด๋ฐ์์ผ๋ก ํด์ ๊ทธ๋ฆฌ๋ค๊ฐ //OnDestroy()์์ DeleteObject()ํ๋ ๋ฐฉ์์ ์ฐ๊ฑฐ๋ ์.
- ๊ณ ๋ก ์์ง๋.. ์--; ์ ์ด๋ ๊ฒ ์ ๋ฌ์ด ์๋ผ์ง. ์ ๋ ๊ฒ ํฌ์ธํฐ ๋ง๋ค์๋ค๊ฐ ๊ทธ๋ฆฌ๋ค๊ฐ ๋ค์ ์ ํํ๋ค๊ฐ ํ๋ ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ๋ค๋..^^;
- ์ ์์ ์ฝ๋์ ์ต๋งค์ด๋๊ฑฐ ๊ฐ์๋ฐ, ์ ์์ ์ฝ๋์ ์ ์ ๊ฐ ์ฌ๋ฌ๋ช
์ด ๋์์ ๊ทธ๋ฆด๋ ค๊ณ ๋ฌ๋ ค๋ค๋์ ์ํฉ์ผ๋ก ์๊ฐํ์. gdi์์๋ event driven ์ด๊ธฐ ๋๋ฌธ์ ๋ชจ๋ ์ฑ
์ ์์ ๋ค์ด ํญ์ ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ฅผ ์์ ํ๊ณ ๋ฐ๋ก ์ด์ ์ ๊ฐ์ฒด๋ก ๊ทธ๋ฆฌ๊ธฐ ์ํ๋ก์ ๋ณต๊ท๋ฅผ ์ ์ ๋ก ํ์ฌ ์์ฑ๋์ด ์๋ค. ํ์ง๋ง, ๋ค๊ฐ ๊ทธ๋ฆฌ๊ณ ์ ํ๋ ์์ญ์ด์ผ ๊ณ์ ํ๋๋ก ์ ํ๋์ด ์์ด๋ ์๋ฌด ์๊ด ์๋๊ฑธ. CPen ์ด ์ด๋๋ก ๋๋ง๊ฐ๋ ๊ฒ๋ ์๋๊ณ ๋ง์ด์ง.
๋๋ ์ข๋ ์์ฌ์ ๋ถ๋ ค์, pDC ๊น์ง ๋ณด๊ดํ์ฌ~cpp GetDC
๋ก ์ป์ง๋ ์๊ณ ๊ทธ๋ฆด๋ ค๊ณ ์๋ ํ๋๋ฐ, ํด๋ด ๊ฒฐ๊ณผ๋ฅผ ์์ ์์๊บผ์ผ. pDC๋ ๋์์์ด ๋ณํ๋ฅผ ์๋ํ๋ ๋ ์์ด๋ผ ์ํ ์ ์ง๊ฐ ๋์ง ์๋๊ตฐ. ๋ฐ๋ก ์ ๊น์ง ๊ฐ์ง pDC๋ ์๋ ๋ ์์ด๋ผ ์ด๊ฑฐ์ง, ๊ฒฐ๋ก ์ผ๋ก ๋ค๊ฐ ์๋ํ๋ ๋๋ก ์ํ ์ ์ฅ์ด ๊ฐ๋ฅํ GDI Object๋ฅผ ๊ทธ๋ ๊ฒ ์ฐ๋๊ฑฐ ๋ถ๋ด์๋ค. --neocoin
ํ ใ
.ใ
์์ ์์ค๊ฐ ์์๋ค๋ฉด ์ ๊ฐ ์ด๊ฑฐ ๋ง๋ค๊ณ ์๊ฒ ์ด์?; ๊ณ ์คํธ ์ฝ์ง๋ก ์ธ๊ทธ๋ฆฌ ๋ ๋ ธ๋๋๋ง, ์๊ฐ๋ ๋ชปํ ZP ์๋ฃ์ค์ ์คํํ์ผ๋ง ๋ฉ๊ทธ๋ผ๋ ๋จ์์์์ค์..;
์ง์ง ์์ค ๊ฒ์ด์ ๋งํฌ ํด๋๊ป ๋ค๋ค ์๋ ์์ค ๋ณด๋ฉด ์ ๋ง ์ฌ๋ฏธ์์ํ
๋ฐ --neocoin
1.8. Tutorial ¶
- ์์ํ ๋๋ Space
- ๋ธ๋ก์ด ๊นจ์ก์๋ ๋์ค๋ ์์ดํ
์ 20๊ฐ ๋จน์ผ๋ฉด ๋ฏธ์ฌ์ผ์ด ํ๋ ์๊ธด๋ค. Ctrl์ ๋๋ฅด๋ฉด ๋ฏธ์ฌ์ผ ๋ฐ์ฌ. ์ง๋๊ฐ๋ ์ฝ์ค์ ์๋ ๋ธ๋ก๋ค์ ๋ด๊ตฌ๋ 1์ฉ ๊ฐ์.(๋ฏธ์ฌ์ผ์ด ์ด์ํ๊ฒ ์๊ฒผ๋ค. ๊ณ ์ณ์ผ๊ฒ ๋ค.)
- ๋
2.1.1. Until 10/16 ¶
- Ball can move.
- Plane can move.
- Game can check a collision shuttle and ball.
- Game can check a collision ball and blocks, but it has a few bugs. maybe ball's move amount is 2, not 1.
- I change a background picture from a Jang na ra picture to a blue sky picture. but my calculation of coordinate mistake cuts tree picture.
- My previous arcanoid could process 1ms of multi media timer, but this version of arcanoid can't process over 5ms of multi media timer. why..
- I process stage datas as files.
2.1.2. 10/17 ¶
- Game can exhibit score, number of broken blocks, and time.
- When a ball collides with a moving bar, its angle changes, but it's crude. Maybe it is hard that maintains a speed of a ball.
- I resolve a problem of multi media timer(10/16). its problem is a size of a object. if its size is bigger than some size, its translation takes long time. So I reduce a size of a object to 1/4, and game can process 1ms of multi media timer.
- A array's row and column is so confused. A long time, screen picture rotates a 90 angle, but I fixed that as change row and column.
- Now sources become very dirty, because I add a new game skill. I always try to eliminate a duplication, and my source has few duplication. but method's length is so long, and responsiblity of classes is not divided appropriately. All collision routine is focusing on CArcaBall class.
- ... I don't have studied a data communication. shit. --; let's study hard.
2.1.3. 10/18 ¶
- Game can generate items.
- I don't want pointers in container, so I had to make a copy constructor, substitute operator.--;
- I change a design of a arcanoid. - previous version is distribute, but this version is that god class(CArcanoidDoc)' admins a total routine. in my opinion, it's more far from OOP.--;
- It becomes like the badball--;
["Lovelyboy^_^"]