·Î±×ÀÎ | ȸ¿ø°¡ÀÔ (´º½º·¹ÅͽÅû) | SITEMAP
   
  °³¹ß   Ç÷§Æû   ½Ã½ºÅÛ   ¸Å´ÏÁö¸ÕÆ®   Àüü±â»ç  
ÀÚ¹Ù
´å³Ý
C/C++
DB
¸ðµ¨¸µ
À¥°³¹ß
±âŸ
À¯´Ð½º/¸®´ª½º
À©µµ¿ì
±âŸ
¼­¹ö
³×Æ®¿öÅ©
º¸¾È
±âŸ
BM
PM
±âŸ
 
±â»çÀúÀå
0
 
¸¶ÀÌ ½ºÅ©·¦
[¸ð¹ÙÀÏ 3D °ÔÀÓÀ» ¸¸µéÀÚ] ¨é ÄÚµå ºÐ¼®

Á¶Á¾±Ù, ±¸º´±â (¸¶ÀÌÅ©·Î¼ÒÇÁÆ®¿þ¾î ÇÊÀÚ)   2004/08/12
[Áöµð³ÝÄÚ¸®¾Æ]À̹ø¿¡´Â º»°ÝÀûÀ¸·Î °ÔÀÓ Äڵ带 »ìÆì º»´Ù. ¹é¹®ÀÌ ºÒ¿©ÀϰßÀ̶ó°í ½ÇÁ¦ Äڵ带 Á÷Á¢ ÀÛ¼ºÇÏ°í ½ÇÇàÇØ ºÁ¾ß ¾î¶² ½ÄÀ¸·Î 3D °ÔÀÓÀÌ Á¦À۵ǴÂÁö¸¦ ÀÌÇØÇÒ °ÍÀÌ´Ù. 3D °ÔÀÓÀÌ °ÑÀ¸·Î´Â ´Ù¼Ò È­·ÁÇØ º¸ÀÏÁö ¸ô¶óµµ ½ÇÁ¦ Á¦ÀÛÀº ±×¸® È­·ÁÇÏÁö ¾Ê´Ù. ¿ÀÈ÷·Á ¸¹Àº ¼öÀÛ¾÷À» ÇÊ¿ä·Î ÇÑ´Ù. ÇÏÁö¸¸ ±×·¸´Ù°í ÇØ¼­ ÀÛ¾÷ ÀÚü°¡ Áö·çÇÏÁø ¾Ê´Ù. Çϳª¾¿ ¿Ï¼ºµÇ¾î°¡´Â ¸ð½ÀÀ» È®ÀÎÇÒ ¶§¸¶´Ù »õ·Î¿î ÈûÀÌ ¼Ú¾Æ³ª±â ¶§¹®ÀÌ´Ù.

À̹ø ÁÖÁ¦ÀÇ ¸¶Áö¸· ±Û¿¡ ÀÌ·¯ÇÑ ±â»ÝÀ» ½ÆÁö ¸øÇÏ´Â ¾Æ½¬¿òÀÌ ÀÖ´Ù. ¿Ö³ÄÇÏ¸é µð¹ö±ë°ú Çϳª¾¿ ±â´ÉÀÌ Ãß°¡µÇ´Â °ÍÀ» µå¶ó¸¶Æ½ÇÏ°Ô Ç¥ÇöÇÏ´Â °ÍÀº ÇÊÀÚÀÇ ´É·Â ÀÌ»óÀÇ °ÍÀ̶ó´Â »ý°¢ÀÌ µé±â ¶§¹®ÀÌ´Ù. ÀÛ¾÷ÇÏ´Â °ÍÀ» ´©±º°¡ Á¶±Ý¾¿ ÃëÀçÇÏ¿© Á¤¸®ÇÏ´Â °ÍÀ̶ó¸é ¸ð¸¦±î, ¿À·¡ ÀüÀÇ °³¹ß °úÁ¤À» ÇϳªÇϳª¾¿ À½¹ÌÇØ º¸¸é¼­ ´Ù½Ã Á¤¸®Çϱâ¶õ ½±Áö°¡ ¾Ê´Ù. ±×·¡¼­ »ý°¢ÇÑ °ÍÀÌ ±×³É Áö·çÇÏÁö¸¸ ÀÖ´Â ¼Ò½º¸¦ ¼³¸íÇØ º¸±â·Î °áÁ¤ÇÏ¿´´Ù. ¼Ò½º ÄÚµå´Â ±×·¸°Ô ¾î·Æ°Ô ÀÛ¼ºµÇ¾î ÀÖÁö ¾ÊÀ¸¸ç, ´©±¸³ª ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ´Â ¼öÁØÀÌ´Ù.

ÇÏÁö¸¸ ¸ð¹ÙÀÏ È¯°æ°ú 3D ȯ°æÀ» µ¿½Ã¿¡ ÀÌÇØÇϰí ÇÁ·Î±×·¡¹ÖÇÑ´Ù´Â °ÍÀÌ ±×¸® ½¬¿î Àϸ¸ÀÌ ¾Æ´Ï´Ù. ƯÈ÷ Ä«¸Þ¶ó ÀÛ¾÷À» ±¸ÇöÇÏ´Â °ÍÀº ¸Å¿ì ¼öÇÐÀûÀÎ ÀÌÇØ¸¦ ¹ÙÅÁÀ¸·Î ÇØ¾ß °¡´ÉÇÑ ÀÏÀÌ´Ù. ¹°·Ð PC ȯ°æÀÇ ¸¹Àº °ÔÀÓ °³¹ß SDK¿¡¼­´Â ³Ê¹«³ª ´Ù¾çÇÑ ±â´ÉµéÀ» ½±°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï Á¦°øÇØÁÖ°í Àֱ⠶§¹®¿¡ ¼öÇÐÀû ½Ç·Âº¸´Ù´Â Åø »ç¿ë¹ýÀ̳ª ½Ã³ª¸®¿À¿¡ ´õ ½Å°æÀ» ¾µ ¼ö ÀÖ°Ô ÇØÁֱ⵵ ÇÑ´Ù. ±×·¯³ª ¸ð¹ÙÀÏÀº ÀÏ´Ü Á¦ÇÑÀûÀΠȯ°æ¿¡¼­ ÇàÇÏ´Â ÀÛ¾÷À̸ç, ¾Õ¼­ ¼±ÇèÀûÀ¸·Î °³¹ßµÈ ¸ð¹ÙÀÏ 3D °ÔÀÓµµ Àü¹«ÇÑ ÇüÆíÀÌ´Ù. µû¶ó¼­ ¾øÀ¸¸é ¸¸µé¾î¼­ ÇÑ´Ù´Â »ý°¢À» ±âº»ÀûÀ¸·Î °¡Áö°í ÀÖ¾î¾ß ÇÑ´Ù. ¶ÇÇÑ ±â´ÉÀûÀ¸·Î ±¸ÇöÀÌ °¡´ÉÇÏ´Ù°í ÇÏ´õ¶óµµ ¼º´ÉÀ̳ª ´Ù¸¥ Á¦¾àÀÌ ÀÖÀ¸¸é ±× Á¦¾à ¾È¿¡¼­ ÇÁ·Î±×·¡¹ÖÀ» ÇØ¾ß ÇÑ´Ù.

¸ð¹ÙÀÏ È¯°æÀÌ °¡Áö°í ÀÖ´Â ¾àÁ¡¿¡ ´ëÇÑ Çª³äÀº ÀÌ Á¤µµ·Î ÇØµÎÀÚ. ÀÌÁ¦ Áö·çÇÑ ÄÚµå ¼³¸í¿¡ µ¹ÀÔÇØ º¸ÀÚ. ÀÏ´Ü Çì´õ ÆÄÀÏÀ» »ìÆìº¸°í ¸ÞÀÎ ·çÇÁÀÇ ±¸¼º, °ÔÀÓ ÃʱâÈ­, Űº¸µå ¾×¼Ç, ±×·¡ÇÈ ¾×¼Ç ¼øÀ¸·Î Äڵ带 ¼³¸íÇØ º¸°Ú´Ù. ±×¸®°í ÃÖÁ¾ÀûÀ¸·Î´Â ½ÇÇà °á°ú¸¦ ¼³¸íÇÏ´Â °ÍÀ¸·Î ¿¬À縦 ¸¶¹«¸®ÇÑ´Ù(ÀÌ¿Í °ü·ÃµÈ Áú¹® »çÇ×Àº www.g3d.co.kr¿¡ Á¢¼ÓÇϰųª e¸ÞÀÏ·Î Áֽøé Èû´ê´Â ´ë·Î ´äÀåÀ¸·Î µå¸®µµ·Ï ÇϰڴÙ).

G3 SDK¸¦ ÀÌ¿ëÇÑ ½ºÆäÀ̽ºÅ¥ºêÀÇ ÀüüÀûÀÎ °ÔÀÓ ÀÛ¼º ±¸¼ºµµ´Â <±×¸² 1>°ú °°´Ù. <±×¸² 1>ÀÇ ³»¿ëÀ» ¼ø¼­´ë·Î ¼³¸íÇØ º¸¸é ´ÙÀ½°ú °°´Ù.

<±×¸² 1> G3 SDK¸¦ ÀÌ¿ëÇÑ ÀüüÀûÀÎ °ÔÀÓ ±¸¼º È帧µµ

1. °ÔÀÓ ¸®¼Ò½º¸¦ Á¦ÀÛÇÑ´Ù.
2. °ÔÀÓ¿¡ »ç¿ëÇÏ´Â º¯¼ö ¹× ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ´Ù.
3. ÅØ½ºÃÄ ¹× À̹ÌÁö¸¦ ¼ÂÆÃÇÑ´Ù.
4. °ÔÀÓ ¸ÞÀÎ ·çƾÀ» ÀÛ¼ºÇÑ´Ù.
5. °ÔÀÓ ¸ÞÀÎ ·çÇÁÀÇ »ç¿ëÀÚ°¡ ÀÔ·ÂÇϴ Ű À̺¥Æ®¸¦ ó¸®ÇÑ´Ù.
6. °ÔÀÓ ¿î¿µ¿¡ ÇÊ¿äÇÑ Ãæµ¹ ¹× ·çƾÀ» ÀÛ¼ºÇÑ´Ù.
7. °ÔÀÓ »ó¿¡ º¸¿©ÁÙ ±×·¡ÇÈ ·çƾÀ» ¼³°èÇϰí ÀÛ¼ºÇÑ´Ù.
    polygon/3d plane Generation
    - ½ºÆäÀ̽º Å¥ºê »ó¿¡¼­ º¸¿©ÁÖ´Â ¹°Ã¼¿Í Æò¸éÀ» º¸¿©ÁÖ´Â ºÎºÐÀ» ÀÛ¼ºÇÑ´Ù.
    normal vector Generation
    - È­¸é¿¡ º¸¿©ÁÙ Æò¸éÀÇ ¹æÇâÀ» ¼³Á¤ÇÑ´Ù.
    Texture Binding(Texture Index)
    - È­¸é¿¡ º¸¿©ÁÙ Æò¸é¿¡ ÀÔÇôÁú ÅØ½ºÃĸ¦ ¼±ÅÃÇÑ´Ù.
    Texture Coordinate
    - È­¸é¿¡ º¸¿©ÁÙ Æò¸é¿¡ ÅØ½ºÃĸ¦ ÀÔÈù´Ù.
    DrawElements(3D °ø°£¿¡ Àû¿ë)
    - 3D °ø°£¿¡ ¾Õ¿¡ ¼³¸íÇÑ µ¥ÀÌÅ͵éÀ» Àû¿ëÇÏ°í ±×·ÁÁØ´Ù.
    OpenGL°ú ´Þ¸® OpenGL ES¿¡¼­ ¹°Ã¼¸¦ ±×¸± ¶§ »ç¿ëÇÏ´Â ÇÔ¼öÀÌ´Ù.
    3D Buffer Flipping
    - 3D ¿µ¿ª ¹öÆÛ¸¦ LCD È­¸é¿¡ ±×·ÁÁØ´Ù.
    2D Image Blitting
    - ·ÎµùµÈ 2D À̹ÌÁö¸¦ ÇÊ¿äÇÑ ºÎºÐ¸¸ LCD¿¡ »Ñ·ÁÁØ´Ù(UI ºÎºÐ).
8. Sound ·çƾ ó¸®
    - Ű À̺¥Æ® ¹× °ÔÀÓ ·çƾÀÇ º¯È­¿¡ µû¸¥ »ç¿îµå¸¦ Ç÷¹À̽ÃŲ´Ù.
9. °ÔÀÓ Á¾·áÇÑ´Ù.
10. ¸®¼Ò½º¸¦ ÇØÁ¦ÇÑ´Ù.
11. ÇÁ·Î¼¼½º¸¦ Á¾·áÇÑ´Ù.

ÀÌ¿Í °°Àº ÀýÂ÷·Î °ÔÀÓÀ» ÀÛ¼ºÇÑ´Ù. ƯÈ÷ 2D °ÔÀÓÀÌ ¾Æ´Ï¶ó 3D °ÔÀÓÀÎ °æ¿ì¿¡´Â È­¸é¿¡ 3D ¹°Ã¼¸¦ ¾î¶»°Ô ¸¸µé¾î°¡¸ç, ¸¸µé¾îÁø ¹°Ã¼¿¡ À̹ÌÁö¸¦ ¾î¶² ½ÄÀ¸·Î ÀÔÇô°¡´ÂÁö¿¡ ´ëÇØ¼­ ÁýÁßÀûÀ¸·Î ¾Ë¾Æº¸±â ¹Ù¶õ´Ù. À̹ø È£¿¡¼­µµ ÀÌ ºÎºÐ¿¡ ´ëÇØ¼­µµ ÃæºÐÈ÷ ¾ð±ÞÇ߱⠶§¹®¿¡ µµ¿òÀÌ µÉ °ÍÀÌ´Ù.

Çì´õ ÆÄÀÏ
ÀÚ, ¿ì¼± Çì´õ ÆÄÀÏÀ» »ìÆìº¸ÀÚ. Çì´õ ÆÄÀÏ¿¡´Â °ÔÀÓ¿¡ ÇÊ¿äÇÑ °ÔÀÓ ½ºÅÜÀÇ »ó¼ö, ŸÀÏ ¸ÊÀÇ ¼Ó¼º, Vertex, Coords, Index, Normal µîÀÇ °¢Á¾ Á¤º¸°¡ µé¾î ÀÖ´Ù. Çì´õ ÆÄÀϸ¸ º¸´õ¶óµµ °ÔÀÓ ÇÁ·Î±×·¡¹Ö ½Ç·ÂÀÌ ¶Ù¾î³­ µ¶ÀÚµéÀº ¾î´À Á¤µµ °ÔÀÓÀÇ ¼öÁØÀ» ÆÄ¾ÇÇÒ ¼ö ÀÖÀ»Áöµµ ¸ð¸£°Ú´Ù. »ó¼ö´Â °ÔÀÓÀÇ »óŸ¦ ³ªÅ¸³»´Â °ÍÀ¸·Î, ÀÎÆ®·Î(Intro), ij¸¯ÅÍ ¼±ÅÃ, ½ÇÁ¦ °ÔÀÓ, °ÔÀÓ Á¾·á µîÀÇ »óŸ¦ Á¤ÀÇÇÏ¸ç °ÔÀÓÀÇ Àü¹ÝÀûÀÎ È帧À» Á¦¾îÇÏ°Ô µÈ´Ù.

<¸®½ºÆ® 1>ÀÇ FirstStage[8][8]¿¡´Â ŸÀÏ ¸Ê¿¡ ÇÊ¿äÇÑ Á¤º¸ µ¥ÀÌÅͰ¡ µé¾î ÀÖ´Ù. À̸§¿¡¼­ ¾Ë ¼ö ÀÖµíÀÌ Ã¹ ¹øÂ° ½ºÅ×ÀÌÁö¿¡ ´ëÇÑ Å¸ÀÏ Á¤º¸ µ¥ÀÌÅ͸¦ °¡Áö°í Àִµ¥, °¢ ŸÀϸ¶´Ù ´Ù¸¥ °ªµéÀ» ¼³Á¤ÇÔÀ¸·Î½á ¸ÊÀ» ±¸¼ºÇÒ ¼ö ÀÖ´Ù. ŸÀÏ¿¡ Àû¿ëµÇ´Â ¼Ó¼ºÀº ´ÙÀ½°ú °°´Ù.

 <¸®½ºÆ® 1> ù ¹øÂ° ½ºÅ×ÀÌÁöÀÇ Å¸ÀÏ ¸Ê

0 = À§Çè Áö¿ª
1 = Á¤º¹ÇÑ Áö¿ª
2 = Á¤º¹ÇØ¾ß ÇÒ Áö¿ª
4 = ºñȰ¼ºÈ­µÈ ½ºÅ×ÀÌÁö Ŭ¸®¾î Áö¿ª
5 = Ȱ¼ºÈ­µÈ ½ºÅ×ÀÌÁö Ŭ¸®¾î Áö¿ª
9 = À¯È¿ Áö¿ª(»çÀü ¸ð¾çÀÇ ÅØ½ºÃ³)

ŸÀÏ ¸Ê¿¡ ´ëÇÑ ¼Ó¼ºµéÀ» Á¤ÀÇÇßÀ¸´Ï ÀÌÁ¦ ŸÀÏ ¸Ê¿¡ ´ëÇÑ ½ºÅ×ÀÌÁö ¸ÊµéÀÇ vertex À§Ä¡ Á¤º¸¸¦ Á¤ÀÇÇØ º¸ÀÚ. ½ºÅ×ÀÌÁö ¸ÊÀÇ Á¤Á¡µéÀÇ À§Ä¡´Â cubeVerticesXX[][]¸¦ ÅëÇØ¼­ ÇÒ ¼ö ÀÖ´Ù. Áï cubeVerticesXX´Â ŸÀÏ ¸Ê(FirstStage[][])ÀÇ vertex À§Ä¡¸¦ ÀǹÌÇϸç, cubeVertices00´Â FirstStage[0][0]¿Í µ¿ÀÏÇϰí, cubeVertices01Àº FirstStage[0][1]¿Í µ¿ÀÏÇÏ´Ù.

 <¸®½ºÆ® 2> °¢ ŸÀϵéÀÇ Vertex List

±× ¿ÜÀÇ °ÔÀÓ¿¡ °¢Á¾ ÇÊ¿äÇÑ µ¥ÀÌÅ͵éÀ» <¸®½ºÆ® 3>°ú °°ÀÌ Á¤ÀÇÇÑ´Ù.

 <¸®½ºÆ® 3> °¢ ŸÀÏÀÇ µ¥ÀÌÅÍ °ªµé

<¸®½ºÆ® 4>´Â g3main.c¿¡ ¼±¾ðµÇ¾î ÀÖ´Â °ÔÀÓ ·ÎÁ÷¿¡ ÇÊ¿äÇÑ Àü¿ª º¯¼ö ¹× ÇÔ¼öÀÇ ÇÁ·ÎÅäŸÀÔÀÌ´Ù.

 <¸®½ºÆ® 4> °ÔÀÓ¿¡ ÇÊ¿äÇÑ Àü¿ª º¯¼ö ¹× ÇÔ¼ö ¸®½ºÆ®

°ÔÀÓ¿¡ ÀÌ¿ëµÇ´Â µ¥ÀÌÅÍ, º¯¼ö, ÇÔ¼öµéÀ» ¸ðµÎ Á¤ÀÇÇÏ¿´´Ù. ÀÌÁ¦ºÎÅÍ´Â º»°ÝÀûÀ¸·Î ³»ºÎ¸¦ µé¿©´Ù º¸ÀÚ.

¸ÞÀÎ ·çÇÁ
½ºÆäÀ̽ºÅ¥ºêÀÇ ¸ÞÀÎ ·çÇÁ´Â »ó´çÈ÷ °£´ÜÇÏ´Ù. InitGame()¸¦ ÅëÇØ¼­ °¢Á¾ µ¥ÀÌÅ͸¦ ÃʱâÈ­Çϰí, »ç¿ëÀÚ°¡ Á¾·á۸¦ ´©¸¦ ¶§±îÁö ¹«ÇÑ·çÇÁ¸¦ µ¹¸é¼­ KeyProcess() ÇÔ¼ö¸¦ ÅëÇØ »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÌ°Ô µÇ°í, ÀÔ·ÂµÈ Å° °ªÀº UpdateGame() ÇÔ¼ö¿¡¼­ °ÔÀÓ¿¡ ¹Ý¿µµÈ´Ù. À̸¦ G3_SurfaceFlip() ÇÔ¼ö¸¦ È£ÃâÇÔÀ¸·Î½á LCD È­¸é¿¡ Ãâ·ÂÇÏ°Ô µÇ´Â °£´ÜÇÑ ±¸Á¶¸¦ Áö´Ï°í ÀÖ´Ù. SynchFrame(150)Àº 150ms¸¶´Ù »ç¿ëÀÚ Å° ÀÔ·ÂÀ» ¹Þ°í, À̸¦ °ÔÀÓ¿¡ ¹Ý¿µÇÏ´Â ÇÔ¼öÀÌ´Ù. G3_Main() ÇÔ¼ö´Â <¸®½ºÆ® 5>¸¦ Âü°íÇϱ⠹ٶó¸ç, °¢ ÇÔ¼öµé¿¡ ´ëÇØ¼­ ÀÚ¼¼È÷ »ìÆìº¸ÀÚ.

 <¸®½ºÆ® 5> ¸ÞÀÎ ·çÇÁ

°ÔÀÓ ÃʱâÈ­
°ÔÀÓÀÇ ÃʱâÈ­ ±â´ÉÀº ´ÙÀ½ÀÇ InitGame() ÇÔ¼ö¿¡¼­ ó¸®ÇØ ÁØ´Ù. ¸» ±×´ë·Î ÃʱâÈ­ ÇÔ¼ö¿¡¼­´Â PCM »ç¿îµå¸¦ ÃʱâÈ­Çϰí, 3D ¹öÆÛ¸¦ »ý¼ºÇϸç, 2D ÅØ½ºÃÄ ¸ÊÇΰú °ÔÀÓ¿¡ ÀÌ¿ëµÇ´Â °¢Á¾ µ¥ÀÌÅ͸¦ »ý¼ºÇϰí ÃʱâÈ­ÇÑ´Ù. <¸®½ºÆ® 6>À» º¸¸é ¾Ë°ÚÁö¸¸, ¼ö¸¹Àº µ¥ÀÌÅ͵éÀ» ÃʱâÈ­ÇÏ¿©¾ß ÇÑ´Ù.

 <¸®½ºÆ® 6> °ÔÀÓ ÃʱâÈ­

Űº¸µå ¾×¼Ç
´ÙÀ½À¸·Î »ç¿ëÀÚÀÇ Å° ÀÔ·ÂÀ» ¹Þ¾Æ¼­ ó¸®ÇÏ´Â KeyProcess() ÇÔ¼ö¸¦ º¸ÀÚ. ÇÔ¼öÀÇ ÀÎÀÚ °ªÀÎ nGameState´Â ÇöÀç °ÔÀÓÀÇ »óÅ¿¡ ´ëÇÑ ÀÎÀÚ °ªÀÌ´Ù. nGameState¿¡ µû¶ó¼­ °ÔÀÓÀÇ »óŸ¦ º¯È­½Ãų ¼ö ÀÖ´Ù. ¸¸¾à nGameStateÀÇ °ªÀÌ CUBE_EXIT¶ó¸é °ÔÀÓ Á¾·á¸¦ ÀǹÌÇϸç, ÀÌ¿¡ µû¶ó °ÔÀÓÀ» Á¾·áÇÏ°Ô µÈ´Ù.

°ÔÀÓÀº CUBE_START, CUBE_CHOOSE, CUBE_EXIT, CUBE_CHOOSE, CUBE_MAINÀÇ ³× °¡Áö »óŸ¦ °¡Áú ¼ö ÀÖÀ¸¸ç, CUBE_START´Â °ÔÀÓÀÇ Ã¹ È­¸é(intro)À» ¶æÇϰí, CUBE_CHOOSE´Â ij¸¯Å͸¦ ¼±ÅÃÇÏ´Â »óÅÂ, CUBE_MAINÀÌ ½ÇÁ¦ °ÔÀÓÀ» Çϰí ÀÖ´Â »óÅÂ, CUBE_EXIT´Â °ÔÀÓÀ» Á¾·áÇÏ´Â »óŸ¦ ÀǹÌÇÏ°Ô µÇ°í, ÀԷ¹ÞÀº Ű °ªÀº °ÔÀÓÀÇ »óÅÂ¿Í ÇÔ²² °ÔÀÓ¿¡ ¹Ý¿µµÈ´Ù.

2, 4, 5, 6, 8 ۰¡ °ÔÀÓ¿¡ ÀÌ¿ëµÇ´Âµ¥, 2, 4, 6, 8´Â ¹æÇâŰ ¿ªÇÒÀ» ÇÏ°Ô µÇ°í, 5´Â È®ÀÎŰ¿Í °°Àº ¿ªÇÒÀ» ÇÑ´Ù. <¸®½ºÆ® 7>ÀÇ KeyProcess() ÇÔ¼ö¸¦ º¸¸é 5, 6Ű¿¡ ´ëÇÑ ³»¿ëÀÌ Àִµ¥ 2, 4, 8Ű´Â 6Ű¿Í °°Àº ±¸Á¶·Î ÀÌ·ç¾îÁ® Àֱ⠶§¹®¿¡ Æ÷ÇÔÇÏÁö ¾Ê¾Ò´Ù. óÀ½ nGameState´Â CUBE_START·Î °ÔÀÓÀÌ ½ÃÀ۵ǰí, G3_KeyGetEx() ÇÔ¼ö¸¦ ÅëÇØ¼­ ½ÇÁ¦·Î »ç¿ëÀÚÀÇ ÀÔ·ÂÀ» ¹Þ°Ô µÈ´Ù. ÀԷ¹ÞÀº ۰¡ 6(->)À̶ó¸é ÇöÀç °ÔÀÓ »óÅÂ(nGameState)¸¦ üũÇÏ°í ¸¸¾à CUBE_CHOOSE¶ó¸é ÇöÀç »óŰ¡ ij¸¯Å͸¦ ¼±ÅÃÇÏ´Â »óÅ·ΠÀνÄÇÏ°Ô µÅ À̸¦ ´ëÇÑ Ã³¸®¸¦ ÇÏ°Ô µÈ´Ù. ¸¸¾à CUBE_MAINÀ̶ó¸é °ÔÀÓÀÌ ½ÇÇàµÇ°í ÀÖ´Â »óÅÂÀ̹ǷΠij¸¯Å͸¦ ¿À¸¥ÂÊÀ¸·Î À̵¿Çϰí, ±×¿¡ µû¸¥ Ãâ·Â±îÁö ó¸®ÇÏ°Ô µÈ´Ù.

 <¸®½ºÆ® 7> °ÔÀÓÀÇ Å° À̺¥Æ® °ü¸®

±×·¡ÇÈ ¾×¼Ç
±×·¡ÇÈ ¾×¼ÇÀº UpdateGame(int nGameState) ºÎºÐ¿¡ ´ëÇÑ ¼³¸íÀÌ´Ù. ¾Õ¼­ ¼³¸íÇÑ nGameState¸¦ Index·Î ±¸º°ÇÏ¿© °ÔÀÓÀÇ ±×·¡ÇÈ Àüü¸¦ ³ªÅ¸³» ÁØ´Ù. ¸ÞÀÎ ·çÇÁ¿¡ ÀÖ¾ú´ø void UpdateGame(int nGameState) ºÎºÐ¿¡¼­ ÇÏ´Â ¿ªÇÒÀº ´ÙÀ½°ú °°´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº <¸®½ºÆ® 8>ÀÇ UpdateGame() ÇÔ¼ö¸¦ Âü°íÇϱ⠹ٶõ´Ù.

  • nGameStateÀÇ »óÅ¿¡ µû¶ó¼­ swtch¹®À» °¢°¢¿¡ ÇØ´çÇÏ´Â case¸¦ ½ÇÇàÇÑ´Ù.

  • nGameState°¡ CUBE_EXITÀÏ °æ¿ì¿¡´Â °ÔÀÓÀÌ Á¾·áµÇ¹Ç·Î Á¾·á¿¡ ´ëÇÑ Ã³¸®¸¦ ÇØÁØ´Ù. Á¾·á¿¡ ´ëÇÑ Ã³¸®´Â È­¸éÀ» °ËÀº»öÀ¸·Î Áö¿ì°í ¡®SpaceCube Á¾·á!¡¯¶ó´Â ¹®ÀÚ¿­À» È­¸é¿¡ Ãâ·ÂÇØ ÁØ´Ù.

  • nGameState°¡ CUBE_STARTÀÏ °æ¿ì¿¡´Â °ÔÀÓÀÌ ½ÃÀ۵Ǵ »óÅÂÀ̹ǷΠ°ÔÀÓ ÀÎÆ®·Î È­¸éÀ» º¸¿©ÁØ´Ù. °ÔÀÓ ÀÎÆ®·Î È­¸é¿¡¼­ 4¹ø ۸¦ ´­·¶À» °æ¿ì start roll over À̹ÌÁö¸¦ »Ñ·ÁÁÖ°í, 6¹ø ۸¦ ´­·¶À» °æ¿ì¿¡´Â exit roll over À̹ÌÁö¸¦ »Ñ·ÁÁØ´Ù.

  • nGameState°¡ CUBE_CHOOSEÀÏ °æ¿ì¿¡´Â ¹è°æÀ» Ŭ¸®¾îÇϰí ŸÀÌÆ² À̹ÌÁö¸¦ »Ñ¸®°í »ç¿ëÇÒ Ä³¸¯Å͵éÀ» »Ñ·ÁÁØ´Ù.

  • NGameState°¡ CUBE_MAINÀÏ °æ¿ì¿¡´Â 3D ¹öÆÛÀÇ È­¸éÀ» Áö¿ì°í ±íÀÌ ¹öÆÛ¸¦ ÃʱâÈ­ÇÑ´Ù. È­¸é¿¡ »Ñ¸± ½ºÅ×ÀÌÁö ¸ÊµéÀÇ face normal ÁÂÇ¥¸¦ Àаí face¿¡ ÀÔÇôÁú texture ÁÂÇ¥µµ Àаí 8*8 ŸÀϸÊÀ» ÁöÁ¤µÈ ¼Ó¼º¿¡ ¸ÂÃç ÅØ½ºÃĸ¦ ¹ÙÀεùÇÏ¿© DrawElements·Î 3D °ø°£¿¡ ±×·ÁÁØ´Ù. ±×·ÁÁØ »óÅ¿¡¼­ ŰÆÐµåÀÇ ¹øÈ£ 1¹ø ۸¦ ´©¸£¸é »ó, 3¹ø ۸¦ ´©¸£¸é ÇÏ, 2¹ø ۸¦ ´©¸£¸é ¿ì, 4¹ø ۸¦ ´©¸£¸é Á·Π°¢°¢ À̵¿ÇÑ´Ù.

  •  <¸®½ºÆ® 8> °ÔÀÓÀÇ È­¸é °»½Å ºÎºÐÀ» °ü¸®

    ½ÇÇà °á°ú
    ¿­½ÉÈ÷ ¸¸µé¾î¿Â °ÔÀÓÀÇ È­¸éÀ» º¸µµ·Ï ÇÏÀÚ. <È­¸é 1>¿¡¼­ <È­¸é 6>Àº °¢ »óÅ ȭ¸éÀÌ´Ù.

     
    <È­¸é 1> CUBE_START »óÅ ȭ¸é <È­¸é 2> CUBE_EXIT »óÅ ȭ¸é

     
    <È­¸é 3> CUBE_CHOOSE »óÅ ȭ¸é <È­¸é 4> CUBE_MAIN(Play) »óÅ ȭ¸é

     
    <È­¸é 5> CUBE_MAIN(fall) »óÅ¿¡¼­ ij¸¯ÅͰ¡ À§ÇèÁö¿ª¿¡ Á¸ÀçÇϰí ÀÖÀ» ¶§ÀÇ È­¸é <È­¸é 6> CUBE_MAIN(TimeOver) »óÅ¿¡¼­ ŸÀÓÄ«¿îÅͰ¡ ´Ù µÇ¾úÀ» ¶§ÀÇ È­¸é

    °ÔÀÓ Á¦ÀÛÀº ¿µÈ­ °°Àº ¿¹¼ú
    Áö±Ý±îÁö ½ºÆäÀ̽º Å¥ºê¶ó´Â ºñ±³Àû °£´ÜÇÑ °ÔÀÓÀ» ±¸ÇöÇÑ ¼Ò½ºÄڵ带 °¡Áö°í ¼³¸íÀ» ÇØº¸¾Ò´Ù. »ç½Ç, °ÔÀÓÀ̶ó°í ÇÏ´Â °ÍÀº »ç¿ëÀÚ¿¡°Ô ¿©·¯ °¡Áö ¸¸Á·°¨À» Á¦°øÇؾßÁö¸¸ ÁÁÀº °ÔÀÓÀÌ µÈ´Ù. ´«¿¡ º¸±â ÁÁ¾Æ¾ß Çϰí, Àç¹Ì Àֱ⵵ ÇØ¾ß Çϰí, ±Íµµ Áñ°Å¿ö¾ß ÇÑ´Ù. ÀÌ·± Ãø¸é¿¡¼­ °ÔÀÓ Á¦ÀÛÀº ±â¼úÀ̶ó±âº¸´Ù´Â ¿µÈ­¿Í °°Àº ¿¹¼ú¿¡ °¡±õ´Ù°í º¼ ¼ö ÀÖ´Ù. ±âȹ, µðÀÚÀÎ, È¿°ú, ÆíÁý, ÄÚµù, ¹èÆ÷ µî ¸ð¹ÙÀÏ °ÔÀÓÀÌ ¼º°øÇϱâ À§Çؼ­´Â ´Ù¾çÇÑ ºÐ¾ßÀÇ ÀϼյéÀÌ ÇÊ¿äÇÏ´Ù. ƯÈ÷ ¸ð¹ÙÀÏ 3D´Â ±âÁ¸ÀÇ 2D °ÔÀÓ Á¦ÀÛ°ú´Â ÆÇÀÌÇÏ°Ô ´Ù¸¥ °³¹ß Á¢±Ù ¹æ¹ýÀ» ¿ä±¸Çϰí ÀÖ´Ù.

    µû¶ó¼­ ¸ð¹ÙÀÏ 3D °ÔÀÓÀÌ ÀϹÝÈ­µÇ±â À§Çؼ­´Â ´õ ¸¹Àº »ç¶÷µéÀÌ Á¦ÀÛ¿¡ Âü¿©ÇÏ°í °ü·Ã ÀηµéÀÌ ¸¹ÀÌ ¸¸µé¾îÁ®¾ß °¡´ÉÇϸ®¶ó°í º»´Ù. À̸¦ À§Çؼ­ ¿À´Ãµµ ¿­½ÉÈ÷ ³ë·ÂÇÏ´Â ºÐµé¿¡°Ô °¨»çÀÇ ¸¶À½À» ÀüÇÏ°í ½Í´Ù. ±×¸®°í ±×·¯ÇÑ ³ë·Â µÚ¿¡´Â ÁÁÀº °á°úµéÀÌ ³ª¿À±â¸¦ ±â´ëÇÑ´Ù. @
    µ¶ÀÚÀÇ°ß ³²±â±â (·Î±×ÀÎ ÈÄ µ¶ÀÚ ÀǰßÀ» ³²±â½Ç ¼ö ÀÖ½À´Ï´Ù.)
    ¾ÆÀ̵ð ºñ¹Ð¹øÈ£
     
     
    [ORM ¨é] iBATIS SQL...
    [¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
    [ORM ¨è] JPA Ȱ¿ëÇϱâ
    [ORM ¨ç] ÇÏÀ̹ö³×ÀÌÆ® Ȱ¿ëÀü...
    [±â°í]±ÝÀ¶ ¼­ºñ½º ½ÃÀåÀ» À§ÇÑ ...
    [DDD ¨ë] BDD(Behavi...
    [±â°í]¿Ã¸²ÇÈ ½ÃÁ𠺸¾È À§Çù¿¡ ...
    '±¤¼¶À¯ 3D ¿µ»ó', ³úÀÇÇп¡ »õ ÁöÆò ¿­´Ù [00:02:31]
    Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
    Ç÷¹À̽ºÅ×À̼Ç3(PS3) ´ë¿ë·® HDD ±³Ã¼ ½¬¿î ÆÁ [00:03:22]
    Áöµð³ÝÄÚ¸®¾Æ ¿µ»óÁ¦ÀÛÆÀ
    ¡°À¥ Ç¥ÁØÀº ¹«½¼!¡±¡¦IE8¿¡ ´ë...
    Á¶Áßµ¿, ´ÙÀ½¿¡ ´º½º°ø±Þ Áß´Ü¡¦"...
    ¡®³ªÈ¦·Î ¾×ƼºêX¡¯¡¦¼¼°è ÀÎÅͳݰú...
    ³×À̹ö´Â ¿Ö '10´ë ÇØÄ¿'¿¡ ´ç...
    [¼öÆÛ°³¹ßÀÚÀÇ ±æ ¨ç] °¡½¿ÀÇ ²Þ...
    °øÀÎÀÎÁõüÁ¦, ¿ì¸®¿¡°Ô ÀÓ¹ÚÇÑ ¹Ì...
    Áö¾Öµå, ¿Á¿Ü±¤°í¿Í Ç×°ø»çÁø °áÇÕ...
    [Àλç]Áö½Ä°æÁ¦ºÎ
    ÆÄ¼ö´åÄÄ "DRMÀÌ º¸¾È»ê¾÷ À̲ö...
    ³×À̹ö ¼­ºñ½º ÀÚ¹®À§¿øÈ¸, º»°ÝÀû...
    Çѱ¹¾ÆÀ̽ǷÐ, ¾¾µð³×Æ®¿÷½º¿¡ ´ë±Ô...