俄罗斯方块
第一次单独完成了一个小游戏,虽然是按照老师编的实验指导书上面单人版俄罗斯方块改过来的,但是还是很有成就感的。
砖块实现思路: 给砖块设置一个中心点,然后依次按照中心块的位置设置其他块的坐标,在移动和变换砖块时,只需要变换中心块的位置,然后其他块跟着一起移动。这样做既可以有利于旋转,实现起来也比较简单.
游戏截图:
启动界面
进入游戏界面
类的定义:
首先定义2个基类CBin和CBrick, CBin用来游戏界面的绘制,CBrick是一个抽象类,用来作为各种方块的基类,所以就有了5个派生类CIBrick, CLBrick, CSBrick, COBrick, CTBrick
//CBin类
class CBin {
private:
unsigned char** image;
unsigned int width;
unsigned int height;
public:
CBin(unsigned int w, unsigned int h);
~CBin();
unsigned int getWidth() { return width; };
unsigned int getHeight() { return height; };
void getImage(unsigned char** destImage);
void setImage(unsigned char** srcImage);
unsigned int removeFullLines();
};
//CBrick类
class CBrick {
protected:
unsigned int orientation; //表示砖块的状态
unsigned int posX; //砖