本文主要是介绍MFC对话框贪吃蛇小游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
花了近一个月的时间,学习了一下VC++深入详解,做了个贪吃蛇小游戏,虽然有很多的瑕疵,但还是想分享一下战果。
说一下思路:
①我们要绘制图形,我们可以用CClientDC(客户区设备上下文,与特定的窗口关联)声明一个dc对象作图。
当然这里我们要画蛇的身体和食物,设置一个食物类和蛇身体结构体
②我们如何让图形动起来?SetTimer创建一个计时器,KillTimer()用来销毁计时器。
③向哪个方向移动? 蛇头的方向
④食物产生在何处?什么时间产生?
产生在客户区,当一个食物被吃掉以后,产生下一个食物
食物产生在客户区,客户区的大小如何获取?(GetClientRect(&rect)可以获取)
当蛇身可以移动,食物可以产生,吃掉食物,蛇身可以增加,贪吃蛇基本框架就做好了!
实现步骤:
①结构体的创建
struct Food
{int fx;int fy;BOOL IsFood;
};//食物结构体struct Snake
{int sx;int sy;char Direction;int sLength;
};//蛇身结构体struct ClientSize
{int width;int Height;
};// 客户区的大小
还需要声明3个全局结构体变量
ClientSize clientsize;
Food food;
Snake snake[200];
②初始化(描绘蛇的初始长度和位置)
添加成员函数InitSnake();并在OnInitDialog()中调用该函数
BOOL C贪吃蛇Dlg::OnInitDialog()
{ ... ...// TODO: 在此添加额外的初始化代码InitSnake();
}
void C贪吃蛇Dlg::InitSnake() /************************************初始化贪吃蛇****************/
{snake[0].sx = 10;snake[0].sy = 10;snake[1].sx = 9;snake[1].sy = 10;snake[2].sx = 8;snake[2].sy = 10;snake[0].sLength = 3;snake[0].Direction = 'R';//SetTimer(1, 200, NULL);
}
②初始化之后&#
这篇关于MFC对话框贪吃蛇小游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!