用MFC做的简单的俄罗斯方块。功能都已经实现。但是没有考虑算法。希望大家指教。
源代码在线查看: bar.cpp
// Bar.cpp: implementation of the Bar class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "aa.h"
#include "Bar.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
Bar::Bar()
{
member[0].x=3;member[0].y=0; //设置初始图形
member[1].x=4;member[1].y=0;
member[2].x=5;member[2].y=0;
member[3].x=6;member[3].y=0;
}
Bar::~Bar()
{
}
//条形变形竖变横
void Bar::Change()
{
if(member[1].x>0&&member[1].x1)
{
member[0].x=member[1].x-1;member[0].y=member[1].y;
member[1].x=member[1].x;member[1].y=member[1].y;
member[2].x=member[1].x+1;member[2].y=member[1].y;
member[3].x=member[1].x+2;member[3].y=member[1].y;
}
}
//条形变形横变竖
void Bar::Change1()
{
if(member[1].x>0&&member[1].x1)
{
member[0].x=member[1].x;member[0].y=member[1].y+1;
member[1].x=member[1].x;member[1].y=member[1].y;
member[2].x=member[1].x;member[2].y=member[1].y-1;
member[3].x=member[1].x;member[3].y=member[1].y-2;
}
}
//条形变形竖变横
void Bar::Change2()
{
if(member[1].x>0&&member[1].x1)
{
member[0].x=member[1].x-1;member[0].y=member[1].y;
member[1].x=member[1].x;member[1].y=member[1].y;
member[2].x=member[1].x+1;member[2].y=member[1].y;
member[3].x=member[1].x+2;member[3].y=member[1].y;
}
}
//条形变形横变竖
void Bar::Change3()
{
if(member[1].x>0&&member[1].x1)
{
member[0].x=member[1].x;member[0].y=member[1].y+1;
member[1].x=member[1].x;member[1].y=member[1].y;
member[2].x=member[1].x;member[2].y=member[1].y-1;
member[3].x=member[1].x;member[3].y=member[1].y-2;
}
}