如何用mfc编写俄罗斯方块游戏,求详细解决过程!!! 5

 我来答
庄依春
2011-09-08 · TA获得超过182个赞
知道小有建树答主
回答量:469
采纳率:0%
帮助的人:309万
展开全部
控制台只能用字符串来话,要求基础还是蛮高的,
假如要做,首先要确定游戏的架构,有主体 全局 有地图 角色 NPC个个模块都分开,就是面向对象思想,

控制台游戏重点是,要把画的东西都写入缓冲区,然后再画出,否者会闪屏

我写个重要的给你吧

这是写入缓冲数组里面
void DrawBufferString( int iX, int iY, const char* szText, int iFRColor, int iBGColor )
{
if( iX < 0 || iX >= GAME_WIDTH ||
iY < 0 || iY >= GAME_HEIGHT )
{
return;
}

int iLen = strlen( szText );

WORD clr = iFRColor|iBGColor;

int l = ( iX + iLen > GAME_WIDTH )?( GAME_WIDTH - iX ):iLen;

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

for( int i = 0; i < l; i++)
{
g_ColorBuffer[iY][iX+i] = clr;
}
}
这是写出
void DrawBufferToString()
{
HANDLE hConsole = GetStdHandle( STD_OUTPUT_HANDLE );

COORD rd = ;

DWORD wd = 0;

for( int i = 0; i < GAME_HEIGHT; i++)
{
WriteConsoleOutputCharacter( hConsole, g_ScreenBuffer[i], GAME_WIDTH, rd, &wd );

rd.Y++;
}

rd.Y = 0;

for( int i = 0; i < GAME_HEIGHT; i++)
{
WriteConsoleOutputAttribute( hConsole, g_ColorBuffer[i], GAME_WIDTH, rd, &wd );

rd.Y++;
}

DeleteObject( hConsole );
}
xuuukai
2011-09-07 · 超过12用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:43.7万
展开全部
给力,找到答案了也请给我发一份,xuukai@163.com,谢啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式