如何用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);
}