如何用mfc写俄罗斯方块游戏,求详细解答!!!

控制台只能用字符串,要求挺高的。

要想做到,首先要确定游戏的结构。有科目,有全局图,所有NPC模块都是分离的,这是面向对象的思维。

主机游戏的重点是把你画的东西都写到缓冲区,然后再画。否则,屏幕会闪烁。

让我给你写一个重要的。

这被写入缓冲区数组。

void DrawBufferString( int iX,int iY,const char* szText,int iFRColor,int iBGColor)

{

if(iX & lt;0 | | iX >;= GAME_WIDTH ||

iY & lt0 | | iY & gt= GAME_HEIGHT)

{

返回;

}

int iLen = strlen(SZ text);

WORD clr = iFRColor | iBGColor

int l =(iX+iLen & gt;GAME_WIDTH)?(GAME _ WIDTH-iX):iLen;

strncpy(& amp;g_ScreenBuffer[iY][iX],szText,l);

for(int I = 0;我& ltl;i++)

{

g _ color buffer[iY][iX+I]= clr;

}

}

这是写作

void DrawBufferToString()

{

HANDLE hConsole = GetStdHandle(STD _ OUTPUT _ HANDLE);

坐标rd =;

DWORD wd = 0;

for(int I = 0;我& lt游戏_身高;i++)

{

WriteConsoleOutputCharacter(h console,g_ScreenBuffer[i],GAME_WIDTH,rd,& ampwd);

研发。y++;

}

研发。y = 0;

for(int I = 0;我& lt游戏_身高;i++)

{

WriteConsoleOutputAttribute(h console,g_ColorBuffer[i],GAME_WIDTH,rd,& ampwd);

研发。y++;

}

delete object(hConsole);

}