“贪吃蛇”游戏程序代码
“贪吃蛇”游戏程序代码
我个人是比较喜欢玩游戏的,所以学习编程二年多了,很想做个游戏程序,由于能力有限,一直没能做好,后来突然看同学在手机上玩“贪吃蛇”,故想做出 来,其一是因为此游戏界面容易设计,算法也比较简单,今天我就把我程序的代码和算法介绍一下,顺便把程序界面皮肤设计说一下......
程序中一个关于游戏信息的类如下,由于类的说明在程序中写的很清楚了,就不再多解释了:#include ""
//方向定义
const CPoint UP(CPoint(0,-1));
const CPoint DOWN(CPoint(0,1));
const CPoint LEFT(CPoint(-1,0));
const CPoint RIGHT(CPoint(1,0));
//速度快慢定义
const int HIGH = 75;
const int NORMAL = 180;
const int SLOW = 300;
const int MAX = 80; //表示转向数
const int LENGTH = 10;
class GameMsg
{
public:
GameMsg(void)
: m_icon(0)
{
InitGame();
}
void InitGame(int up = VK_UP, int down = VK_DOWN, int left = VK_LEFT, int right = VK_RIGHT)
{
srand((unsigned)time(NULL));
m_gameSpeed = NORMAL;
m_speedNum = 2;
m_snakeNum = 4;
for(int i=0; i<m_snakeNum; ++i)
m_snakePoint[i] = CPoint(5+LENGTH*2*5+LENGTH,LENGTH*2*(i+5));
m_run = true;
m_direction = RIGHT;
turnUP = up;
turnDOWN = down;
turnLEFT = left;
turnRIGHT = right;
}
public:
int m_gameSpeed;//游戏速度
int m_speedNum;//游戏速度数
CPoint m_foodPoint; //食物定义
bool m_run;//游戏状态,运得态还是暂停(结束)态
CPoint m_snakePoint[MAX]; //蛇身定义
afx_msg void OnExit();//退出游戏
CFont m_font;//这就是上图中显示“空心字体”的字体设置void ShowHollowFont(int cx, int cy, CString str);//显示空心字体函数,在(Cx,Cy)处显示字符串str
afx_msg void OnBnClickedExit();//退出游戏
private:
int m_icon1;//表明蛇吃第1种水果的个数
int m_icon2;//表明蛇吃第2种水果的个数
int m_icon3;//表明蛇吃第3种水果的个数
然后给读者写的是我程序运行很重要的一个函数,WM_TIMER显示函数,里面有食物位置随机出现,判断蛇死,蛇移动等:
void CSnakeDlg::OnTimer(UINT_PTR nIDEvent)
{
if([0].x < 0 || [0].y < LENGTH || [0].x > 700 || [0].y > 500)//当蛇跑出边界,游戏结束
{
GameOver();
}
for(int j=-1; j>0; --j)//蛇移动的量的变化,[j] = [
“贪吃蛇”游戏程序代码 来自淘豆网m.daumloan.com转载请标明出处.