ID3DXSprite´Â 2D À̹ÌÁö¸¦ ·»´õ¸µÇÏ´Â °´Ã¼ÀÌ´Ù. ID3DXSprite´Â ±×¸®±â À§ÇÑ ½ºÄÉÄ¡ºÏÀ¸·Î ¿©±â¿¡ ¹º°¡¸¦ º¸¿©ÁÙ·Á¸é IDirect3DTexture9ÀÇ ÅؽºÃĸ¦ ¿Ã·Á¾ß ÇÑ´Ù.
¿ÞÂÊÀÇ À̹ÌÁö´Â ID3DXSprite¸¦ ÀÌ¿ëÇؼ ±×¸° À̹ÌÁö°í ¿À¸¥ÂÊ À̹ÌÁö´Â 3D °ø°£¿¡ ·»´õ¸µÇÑ À̹ÌÁö´Ù.
°úÁ¤À» »ý¼º, ¼Ò¸ê, ±×¸®±â¼ø ¾Ë¾Æº»´Ù.
< ID3DXSprite »ý¼º >
ID3DXSprite »ý¼º°´Ã¼¸¦ ¸®ÅϹޱâ À§ÇØ µÎ ¹ø° ÀÎÀÚ¿¡ ID3DXSpriteÀÇ Æ÷ÀÎÅÍÀÇ ÅÍÀÎÅ͸¦ ³Ñ°ÜÁØ´Ù.
HRESULT D3DXCreateSprite( LPDIRECT3DDEVICE9 pDevice, LPD3DXSPRITE* ppSprite);
|
< ID3DXSprite ¼Ò¸ê >
ID3DXSprite °´Ã¼¸¦ ÇØÁ¦ÇÑ´Ù.
< ID3DXSprite ±×¸®±â > ID3DXSprite::Draw( )¸¦ È£ÃâÇÏ¸é ±×¸®±â¸¦ ÇÑ´Ù. ½ºÇÁ¶óÀÌÆ®¸¦ ´ÙÀÌ·ºÆ®XÀÇ BeginScene( )°ú EndScene( ) »çÀÌ¿¡ ±×¸®¸é ½±°Ô À̹ÌÁö¸¦ ±×¸±¼ö ÀÖ´Ù. ±âº»ÀûÀÎ ±×¸®±â´Â Å©°Ô ¾î·Á¿îÁ¡ÀÌ ¾ø´Ù.
ID3DXSPRITE* pSprite
IDIRECT3DDEVICE9* pDevice;
IDIRECT3DTEXTURE9* pTexture = NULL;
POINT pos;
pos.x = 100;
pos.y = 100;
pDevice->BeginScene()
pSprite->Begin(0);
pSprite->Draw( pTexture, NULL, &pos, NULL, 0xffffffff );
pSprite->End();
pDevice->EndScene();
pDevice->Present(NULL, NULL, NULL, NULL);
|
Çà·ÄÀ» ÀÌ¿ëÇؼ ȸÀü, À̵¿, ½ºÄÉÀϸµ ÇÏ¸é º¯È¯À» ¾î¶»°Ô ÇØ¾ß µÇ´ÂÁö È¥¶õ½º·´´Ù. Çà¿À» ÀÌ¿ëÇÑ º¯È¯À» ÇÒ·Á¸é ID3DXSPRITE::SetTransform( )À» »ç¿ëÇÑ´Ù.
POINT pos;
pos.x = 0;
pos.y = 0;
D3DXMATRIX spriteMat;
D3DXMatrixRotationZ( &spriteMat, D3DXToRadian(-15.0f) );
spriteMat._41 = 100.0f;
spriteMat._42 = 100.0f;
spriteMat._11 = 0.25f;
spriteMat._22 = 0.25f;
pSprite->SetTransform( &spriteMat );
pSprite->Draw( pTexture, NULL, &pos, NULL, 0xffffffff );
|
½ºÇÁ¶óÀÌÆ®¸¦ ¹Ý½Ã°è ¹æÇâÀ¸·Î 15µµ ¸¸Å ȸÀüÇϱâ À§Çؼ D3DXToRadian(-15.0f) ¸¸Å ZÃàÀ» ȸÀü ½ÃŲ´Ù. xÃàÀ¸·Î 100¸¸Å yÃàÀ¸·Î 100¸¸Å À̵¿ÇÑ´Ù. ÀÌ ¶§ À̵¿ °ªÀº ½ºÅ©¸° ÁÂÇ¥ÀÌ´Ù. xÃàÀ¸·Î 0.25¹è, yÃàÀ¸·Î 0.25¹è Å©±â¸¦ Ãà¼ÒÇÑ´Ù. Draw( )½Ã ÁÖ´ø À§Ä¡°ªÀº 0, 0À» ³Ö´Â´Ù.
< Texture2D Ŭ·¡½º > :
ÅؽºÃĸ¦ ·ÎµùÇϴ Ŭ·¡½ºÀÌ´Ù.
//Texture2D Ŭ·¡½º ¸Þ¼Òµå
void LoadTexture( IDirect3DDevice9* pDevice, char* szFileName, UINT width = D3DX_DEFAULT_NONPOW2, UINT height = D3DX_DEFAULT_NONPOW2 );
void Release();
UINT GetWidth();
UINT GetHight() ;
IDirect3DTexture9* GetTexture();
const D3DXIMAGE_INFO& GetTextureInfo();
|
D3DXCreateTextureFromFileEx( ) ·Î ÅؽºÃĸ¦ ·Îµù½Ã ¼¼ ¹ø°, ³× ¹ø° ÀÎÀÚ Width, Height ÀÎÀÚ¿¡
DX_DEFAULT_NONPOW2 °ªÀ» ÁÖ¸é ÅؽºÃÄ Å©±â¸¦ NÀÇ 2½Â ¾øÀÌ ¿øº»±×´ë·Î Àд´Ù.
< Sprite Ŭ·¡½º >
ID3DXSprite¸¦ »ç¿ëÇϱâ À§ÇÑ Å¬·¡½º Sprite Ŭ·¡½ºÀÌ´Ù. Texture2D¸¦ ÀÌ¿ëÇÏ´Â ÀÌ¿ëÇØ À̹ÌÁö¸¦ »Ñ¸°´Ù.
//Sprite Ŭ·¡½º ¸Þ¼Òµå
void Begin( DWORD flags );
void End();
void Draw( Texture2D* pTexture, const POINT& pos, D3DCOLOR color );
void Draw( Texture2D* pTexture, const POINT& pos, const RECT& surRect, D3DCOLOR color );
void Draw( Texture2D* pTexture, const POINT& pos, const D3DXMATRIX& transMatrix, const RECT& surRect, D3DCOLOR color );
void Draw( Texture2D* pTexture, const POINT& pos, const POINT& size, const RECT& surRect, D3DCOLOR color );
void Draw( Texture2D* pTexture, const RECT& desRect, const RECT& surRect, D3DCOLOR color );
void Draw( Texture2D* pTexture, const RECT& desRect, D3DCOLOR color );
ID3DXSprite* GetSprite();
|
< Âü°í : ID3DXSprite::Draw ¼³¸í >
HRESULT ID3DXSprite::Draw(
LPDIRECT3DTEXTURE9 pSrcTexture,
CONST RECT *pSrcRect,
CONST D3DXVECTOR2 *pScaling,
CONST D3DXVECTOR2 *pRotationCenter,
FLOAT Rotation,
CONST D3DVECTOR2 *pTranslation,
D3DCOLOR Color
)
|
pSrcTexture [in] ½ºÇÁ¶óÀÌÆ®¿¡ »ç¿ëÇÏ´Â ¼Ò½º À̹ÌÁö¸¦ ³ªÅ¸³»´Â IDirect3DTexture9 ÀÎÅÍÆäÀ̽ºÀÇ Æ÷ÀÎÅÍ.
pSrcRect [in] ¼Ò½º ÅؽºÃ³ÀÇ ¾î´À ºÎºÐÀ» ½ºÇÁ¶óÀÌÆ®¿¡ »ç¿ëÇÏ´ÂÁö¸¦ ³ªÅ¸³»´Â RECT ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. ÀÌ ÆĶó¹ÌÅ͸¦ NULL ·Î ÇÏ¸é ¼Ò½º À̹ÌÁö Àüü°¡ ½ºÇÁ¶óÀÌÆ®¿¡ »ç¿ëµÈ´Ù. ´Ù¸¸, ¼Ò½º À̹ÌÁöÀÇ ºÎºÐÀûÀÎ Á÷»ç°¢ÇüÀ» ÁöÁ¤ÇÒ ¼öµµ ÀÖ´Ù. º¯È¯ÀÇ Àü¿¡, ½ºÇÁ¶óÀÌÆ®ÀÇ »çÀÌÁî°¡ pSrcRect ¿¡ ÀÇÇØ Á»󱸼®À» ½ÃÁ¡ (0,0)À¸·Î¼ Á¤ÀǵȴÙ.
pScaling [in] ½ºÄÉÀϸµ º¤Å͸¦ ÀúÀå ÇÏ´Â D3DXVECTOR2 ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. ÀÌ ÆĶó¹ÌÅÍ°¡ NULL ÀÇ °æ¿ì´Â, °ª (1.0, 1.0)À» »ç¿ëÇÑ´Ù. pScaling ´Â º¤ÅÍÀ̹ǷÎ, ½Â¼ö 1.0 À» »ç¿ëÇÏ¸é ¼Ò½º À̹ÌÁöÀÇ »çÀÌÁî°¡ º¸°ü À¯ÁöµÈ´Ù.
pRotationCenter [in] ȸÀüÀÇ Áß½ÉÀ» ½Äº°ÇÏ´Â ½ºÅ©¸° Çȼ¿³»ÀÇ Æ÷ÀÎÆ®¸¦ ÀúÀå ÇÏ´Â,D3DXVECTOR2 ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. ÀÌ Àμö°¡ NULL ÀÇ °æ¿ì´Â, ÅؽºÃ³ÀÇ Á»󱸼®ÀÇ Æ÷ÀÎÆ® (0,0)°¡ »ç¿ëµÈ´Ù.
Rotation [in] ¹Ý½Ã°èȸÀüÀÇ È¸ÀüÀ» ÁöÁ¤ÇÏ´Â °ª (¶óµð¾È ´ÜÀ§).
pTranslation [in] ½ºÅ©¸° Çȼ¿¿¡¼ÀÇ ÆòÇàÀ̵¿°ªÀ» ÀúÀå ÇÏ´Â D3DXVECTOR2 ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. ÀÌ Àμö°¡ NULL ÀÇ °æ¿ì´Â, Æ÷ÀÎÆ® (0,0)¸¦ »ç¿ëÇÑ´Ù.
Color [in] D3DCOLOR Çü. ÀÌ °ª¿¡ ÀÇÇØ Ä÷¯ ä³Î°ú ¾ËÆÄ Ã¤³ÎÀÌ °ö¼ÀµÈ´Ù. 0xFFFFFFFF ¶ó°í ÇÏ´Â °ªÀ» »ç¿ëÇÏ¸é ¿øÀÇ ¼Ò½º Ä÷¯ ¹× ¾ËÆÄ µ¥ÀÌÅÍ°¡ À¯ÁöµÈ´Ù.
¹Ýȯ°ª ¼º°øÇßÀ» °æ¿ì´Â,D3D_OK ¸¦ µ¹·ÁÁØ´Ù. ½ÇÆÐÇßÀ» °æ¿ì´Â,D3DERR_INVALIDCALL ¸¦ µ¹·ÁÁØ´Ù.
º¯È¯ÀÇ ¼ø¼´Â, ´ÙÀ½°ú °°ÀÌ ÁöÁ¤µÈ´Ù.
(Msc)-1 * (Msr)-1 * Ms * Msr * Msc * (Mrc)-1 * Mr * Mrc * Mt
Msc ´Â Áß½ÉÀÇ ½ºÄÉÀϸµ Çà·ÄÀÌ´Ù. Msr ´Â ½ºÄÉÀϸµ ȸÀü Çà·ÄÀÌ´Ù. Ms ´Â ½ºÄÉÀϸµ Çà·ÄÀÌ´Ù. Mrc ´Â ȸÀü Çà·ÄÀÇ Áß½ÉÀÌ´Ù. Mr ´Â ȸÀü Çà·ÄÀÌ´Ù. Mt ´Â ÆòÇàÀ̵¿ Çà·ÄÀÌ´Ù.
ÇÁ·ÎÁ§Æ®: sprite.zip
|