龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC 6.0 面向对象的俄罗斯方块尝试(部分注释)(2)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
protected: //这些都是私有的成员数据,意义可以从名字上看出。 int *m_pData; int m_width; int m_height; protected: //这里都些私有的函数,都是被上面的公共函数所使

protected:
    //这些都是私有的成员数据,意义可以从名字上看出。
    int *m_pData;
    int m_width;
    int m_height;

protected:
    //这里都些私有的函数,都是被上面的公共函数所使用的。

    //释放数据资源。
    void ReleaseData();
    //为数据分配资源。
    void InitData(int width, int height);
    //设置数据内容。
    void SetData(int initValue);
    //内存块拷贝。
    static void MemCopy(int *dest, int *src, int len);

};

  接下来需要把下落的随机形状也封装成一个类,命名为CShape。

class CShape  //该类实际上是把一个CMatrix类的对象封装了起来,并且组织了一些操作。
{
public:
    CShape();
    virtual ~CShape();

    //创建一个随机形状,注意这里随机其实是指在俄罗斯方块中的7种形状中的某一种。参数是该形状的左上角坐标,默认(0,0)。
    void CreateRandomShape(int posX = 0, int posY = 0);
    //设置该形状的左上角坐标。
    void SetPos(int posX, int posY);
    //旋转形状,众所周知,俄罗斯方块游戏中的形状是可以旋转的。默认就是顺时针的旋转。
    void Rotate();
    //取消前次旋转,这个函数有它的用处,代码读下去就会明白的。
    void CancelRotate();
    //使形状向下移动一格。
    void MoveDown();
    //使形状向上移动一格。
    void MoveUp();
    //左一格。
    void MoveLeft();
    //右一格。
    void MoveRight();

    //获取当前形状的类型ID,分别代表7种形状。(0~6)
    int GetShapeType() const;
    //获取当前形状的左上角坐标。
    POINT GetPos() const;
   
    //获取形状占用的宽度。
    int GetWidth() const;
    //..............高度。
    int GetHeight() const;

    //重载[]操作符。
    const int* operator[](int row) const;
    //重载等号,也可以写一个拷贝构造函数。
    CShape& operator=(CShape& srcShape);

精彩图集

赞助商链接