📄 gamemain.cpp
字号:
// GameMain.cpp: implementation of the GameMain class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "GameMain.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
GameMain::GameMain()
{
Start();
m_State = LOGO_DOBJECT;
}
GameMain::~GameMain()
{
}
bool GameMain::UpData()
{
if (m_State != MOVING_DOBJECT)
{
return false;
}
int i;
///////////////////////////////////
//移动
m_Body[0].x+=m_ivx;
m_Body[0].y+=m_ivy;
for (i=m_iBodySize;i>0;--i)
{
m_Body[i]=m_Body[i-1];
}
////////////////////////////////
//判断有没有吃到东西
for (i=0;i<128;++i)
{
if (m_Food[i].x == -1)
{
continue;
}
if (m_Body[0].x+2<= (m_Food[i].x + 14)
&&m_Food[i].x+2 <= (m_Body[0].x + 14)
&&m_Body[0].y+2 <= (m_Food[i].y + 14)
&&m_Food[i].y+2 <= (m_Body[0].y + 14))
{
m_Food[i].x =-1;
m_iBodySize+=16;
}
}
////////////////////////////////
//判断,碰到非食物
for (i=0;i<128;++i)
{
if (m_NoFood[i].x == -1)
{
continue;
}
if (m_Body[0].x+2<= (m_NoFood[i].x + 14)
&&m_NoFood[i].x+2 <= (m_Body[0].x + 14)
&&m_Body[0].y+2 <= (m_NoFood[i].y + 14)
&&m_NoFood[i].y+2 <= (m_Body[0].y + 14))
{
m_State = DEATH_DOBJECT;
PlaySound(MAKEINTRESOURCE(IDR_WAVE_ROLEDEATH),NULL,SND_RESOURCE|SND_ASYNC);
return true;
}
}
/////////////////////////////////
//碰到自己的身体
for (i=18;i<m_iBodySize;++i)
{
if (m_Body[0].x+2<= (m_Body[i].x + 14)
&&m_Body[i].x+2 <= (m_Body[0].x + 14)
&&m_Body[0].y+2 <= (m_Body[i].y + 14)
&&m_Body[i].y+2 <= (m_Body[0].y + 14))
{
m_State = DEATH_DOBJECT;
PlaySound(MAKEINTRESOURCE(IDR_WAVE_ROLEDEATH),NULL,SND_RESOURCE|SND_ASYNC);
return true;
}
}
////////////////////////////////////
//碰到墙壁
if (m_Body[0].x>400-16)m_Body[0].x=0;
if (m_Body[0].x<0)m_Body[0].x=400-16;
//--------------------------------------------
if (m_Body[0].y>(400-32-16))
{
m_Body[0].y=0;
}
if (m_Body[0].y<0)
{
m_Body[0].y=(400-32-16);
}
////////////////////////////////////////////
//食物刷新
srand(GetTickCount());
for (i=0;i<10;++i)
{
if (0 == rand()%500)
{
m_Food[i].x =rand()%400;
m_Food[i].y =rand()%400;
}
}
//--------------------------------------
srand(GetTickCount()+30);
for (i=0;i<10;++i)
{
if (0 == rand()%500)
{
m_NoFood[i].x =rand()%400;
m_NoFood[i].y =rand()%400;
}
}
return true;
}
bool GameMain::Start()
{
m_State =MOVING_DOBJECT;
memset(m_Body,-1,sizeof(m_Body));
m_iBodySize = 64;//默认长度
int i;
////////////////////////////
//初始化身体
for (i=0;i<m_iBodySize;++i)
{
m_Body[i].y = 64;
m_Body[i].x = 64+i*2;
}
////////////////////////////
//默认速度
m_ivx =0;
m_ivy =2;
///////////////////////////////////////
//初始化食物
for (i=0;i<128;++i)
{
m_Food[i].x = -1;
m_Food[i].y = -1;
}
srand(GetTickCount());
for (i=0;i<10;++i)
{
m_Food[i].x =rand()%400;
m_Food[i].y =rand()%400;
}
/////////////////////////////////////////
//初始化非食物
for (i=0;i<128;++i)
{
m_NoFood[i].x = -1;
m_NoFood[i].y = -1;
}
srand(GetTickCount()+30);
for (i=0;i<10;++i)
{
m_NoFood[i].x =rand()%400;
m_NoFood[i].y =rand()%400;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -