游戏类初步一..

// CCanvas 的实现桥接, 主要是为了能适应GDI, GAPI两种图像绘制接口.
class CCanvasImpl
{
public:
    virtual void         SetCanvasSize(int cx, int cy) = 0;
    virtual void         BltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY) = 0;
    virtual void         TransBltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY, unsigned int colorKey) = 0;
    virtual void         BitBltOn(CCanvas &canvas) = 0;
    virtual void         SetPixel(int x, int y, unsigned int color) = 0;
    virtual unsigned int     GetPixel(int x, int y) = 0;
    virtual void         Present() = 0;        // 呈现到目标设备屏幕上或窗口HWND上.
};

class CCanvas
{
public:
    CCanvas(CCanvasImpl *pCanvasImpl);
    ~CCanvas();
    void         SetImplment(CCanvasImpl *pCanvasImpl);

    void         SetCanvasSize(int cx, int cy);
    void         BltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY);
    void         TransBltBitmap(int dstX, int dstY, int dstCX, int dstCY, CBitmap *pBitmap, int srcX, int srcY, int srcCX, int srcCY, unsigned int colorKey);
    void         BitBltOn(CCanvas &canvas);
    void         SetPixel(int x, int y, unsigned int color);
    unsigned int     GetPixel(int x, int y);
    void         Present();        // 呈现到目标设备屏幕上或窗口HWND上.

protected:
    CCanvasImpl    *m_pCanvasImpl;
};

class CSprite
{
public:    
    virtual void PrepareFrame();
    virtual void DrawFrame(CSurface *pDstSurface);
    virtual void NextFrame();
};

posted on 2008-06-18 23:24  Jacken  阅读(333)  评论(0)    收藏  举报

导航