1. κ°μ ¶
TheWarOfGenesis2Rνμ΄μ§μ κ°μ€μ λ°λΌ μ¬μ©λ²μ λͺ¨μλλ€.
2. DDUtil ¶
DXSDKμμ μ 곡νλ ν¨μ λͺ¨μμ§.(γ
‘.γ
‘a) (Direct Draw μ Wrapping Class κ° λκ² μ§μ.)
μκ°λ³΄λ€ μ΄κΈ°ννκΈ° κΉλ€λ‘μ΄ DXμ μ¬μ©μ κ·Έλλ§ νΈνκ² ν΄μ£Όλ κ²λ€μ΄λ€
DDUtilμμλ λκ°μ ν΄λμ€κ° μλ€
2.1. CDisplay ¶
DirectDrawμ μμ±κ³Ό Surfaceμ μ°κ²°μ λ΄λΉνλ Class
CDisplayμ ν¨μμλ λ€μκ³Ό κ°μ κ²μ΄ μλ€.
CDisplayμ ν¨μμλ λ€μκ³Ό κ°μ κ²μ΄ μλ€.
1. μ΄κΈ°ν
~cpp CreateFullScreenDisplay(HWND hWnd, DWORD dwWidth, DWORD dwHeight, DWORD dwBPP)
DirectDraw μ₯μΉλ₯Ό νμ€ν¬λ¦° λͺ¨λλ‘ μμ±νλ€.
- hWnd : νμ¬ μλμ°μ νΈλ€
- dwWidth : μμ±ν κ°μ²΄μ λμ΄
- dwHeight : μμ±ν κ°μ²΄μ λμ΄
- dwBPP : μμ±ν κ°μ²΄μ μμμ (8, 16, 24, 32..)
~cpp CreateWindowedDisplay HWND hWnd, DWORD dwWidth, DWORD dwHeight)
μμ κ°μ μΌμ νμ§λ§ μ°½λͺ¨λλ‘ μμ±νλ€. μμμκ° μλ κ²μ μλμ° λ°ννλ©΄μ μμ μλ₯Ό λ°λΌκ°κΈ° λλ¬Έμ΄λ€.
2. Surfaceμμ±μνΌμ€λ κ·Έλ¦Όμ λ΄λ κ·Έλ¦μ΄λ€.
~cpp CreateSurface( CSurface **ppSurface, DWORD dwWidth, DWORD dwHeight)
보ν΅μ μνΌμ€λ₯Ό μμ±νλ€.
~cpp CreateSurfaceFromBitmap(CSurface** ppSurface, TCHAR* strBMP, DWORD dwDesiredWidth, DWORD dwDesiredHeight)
λΉνΈλ§΅μΌλ‘λΆν° μνΌμ€λ₯Ό μμ±νλ€.
- strBMP : λΉνΈλ§΅ νμΌμ νμΌλͺ
μ λ£λλ€.
- λμ΄μ λμ΄λ λΉνΈλ§΅μ ν¬κΈ°λ₯Ό λ£μ΄μ£Όλ©΄ λλ€.
~cpp CreateSurfaceFromText( CSurface** ppSurface, HFONT hFont, TCHAR* strText, COLORREF crBackground, COLORREF crForeground)
λ¬Έμμ΄λ‘λΆν° μνΌμ€λ₯Ό μμ±νλ€.
3. νλ νΈμμμκ° μ μ λΉνΈλ§΅μ κ²½μ°μλ νλ νΈλ₯Ό μ§μ ν΄ μ£Όμ΄μΌ νλ€.
~cpp CreatePaletteFromBitmap( LPDIRECTDRAWPALETTE *ppPalette, const TCHAR *strBMP)
νΉμ ν λΉνΈλ§΅ νμΌλ‘λΆν° νλ νΈλ₯Ό μ»μ΄μ¨λ€.
~cpp SetPalette( LPDIRECTDRAWPALETTE pPalette)4. μνΌμ€(κ·Έλ¦Ό)μ μΆλ ₯
μνΌμ€μ κ·Έλ¦Όμ λ°± λ²νΌλ‘ μΆλ ₯νλ€.
~cpp ShowBitmap(HBITMAP hbm, LPDIRECTDRAWPALETTE pPalette)
HBITMAPνμ λΉνΈλ§΅μ νΉμ ν νλ νΈλ₯Ό ν΅ν΄ νλ©΄μ μΆλ ₯νλ€.
λΉμ°ν μ μ μλ κ·Έλ¦Όμ μ§μμ§λ€.
λΉμ°ν μ μ μλ κ·Έλ¦Όμ μ§μμ§λ€.
~cpp ColorKeyBlt(DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds, RECT *prc)
컬λ¬ν€(ν¬λͺ
μ)λ₯Ό κ°μ§ μ± νλ©΄μ μΆλ ₯νλ€. prcλ μ¬μ©νμ§ μλλ€.
~cpp Blt(DWORD x, DWORD y, LPDIRECTDRAWSURFACE7 pdds, RECT *prc, DWORD dwFlags)
컬λ¬ν€λ₯Ό λΊμ± νλ©΄μ μΆλ ₯νλ€. λ§μ½ dwFlagsμ DDBLTFAST_SRCCOLORKEYλ₯Ό λ£μ΄μ€λ€λ©΄ ColorKeyBltμ κ°μ ν¨κ³Όλ₯Ό λΈλ€.
μμ prcλ μ¬μ©νμ§ μλλ€.
μμ prcλ μ¬μ©νμ§ μλλ€.
~cpp Blt(DWORD x, DWORD y, CSurface *pSurface, RECT *prc)
CSurfaceνμ νλ©΄μ μΆλ ₯νλ€. prcλ μ¬μ©νμ§ μλλ€.
5. νλ©΄μ κ°±μ μμ Bltν¨μλ€μ λ°± λ²νΌμ μΆλ ₯νλ ν¨μλ€μ΄λ€. λͺ¨λ λ΄μ©μ λ°± λ²νΌμ μΆλ ₯νμΌλ©΄ λ€μ ν¨μλ€μ μ¬μ©νμ
~cpp Present()
λ°± λ²νΌμ μΆλ ₯λμ΄μλ λ΄μ©μ νμ¬ νλ©΄μΌλ‘ μΆλ ₯νλ€. νλ©΄μ λͺ¨λ μμ±ν νμ μ¬μ©νλ€.
~cpp Clear()
λ°± λ²νΌμ λ΄μ©μ λͺ¨λ μ§μ΄λ€.
~cpp UpdateBounds()
2.2. CSurface ¶
Surfaceμ μμ±κ³Ό κ΄λ¦¬λ₯Ό λ΄λΉνλ Class
1. μ΄κΈ°ν
~cpp CSurface *surface = NULL;2. 컬λ¬ν€ μΈν
~cpp surface->SetColorKey(DWORD dwColorKey);
컬λ¬ν€(ν¬λͺ
μ)μΌλ‘ μ¬μ©ν μμ COLORREF (RGB) νμ λ§μΆμ΄μ μ§μ΄λ£μΌλ©΄ λλ€.
λκ° μ μ°μ΄μ§ μλ μμ μ¬μ©νλ€.
3. λΉνΈλ§΅μΌλ‘ surfaceλ₯Ό λ§λ κ²½μ°κ° μλλΌλ©΄ surfaceμ μ§μ κ·Έλ¦Όμ κ·Έλ € λ£μ΄μ€ μ μλ€.λκ° μ μ°μ΄μ§ μλ μμ μ¬μ©νλ€.
~cpp surface->DrawBitmap(...);