【文件属性】:
文件名称:实验报告范例
文件大小:3.22MB
文件格式:DOC
更新时间:2017-09-09 04:07:16
报告
源代码
在Main.cpp文件中
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
#include "CommonAPI.h"
#include
#include
float g_fDelayTime;
int g_iMonkeys[6] = {1,2,3,4,5,6};
int g_iNumMokeys=6;
int g_iNumLoseMonkeys=0;
int g_iMoveMonkey = 0;
int g_iChooseMonkey;
int g_flocation[6];
int g_iGameState=0;
///////////////////////////////////////////////////////////////////////////////////////////
//
// 主函数入口
//
//////////////////////////////////////////////////////////////////////////////////////////
int PASCAL WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// 初始化游戏引擎
if( !dInitGameEngine( hInstance, lpCmdLine ) )
return 0;
// 游戏初始化代码
dSetWindowTitle("猴子选大王");
char* szName;
int i;
float x,y;
for(i=0;i<6;i++)
{
szName = dMakeSpriteName("monkey",g_iMonkeys[i]);
x = -40+i*16;
y = -3;
dSetSpritePosition(szName,x,y);
g_flocation[i] = x;
}
// 引擎主循环,处理屏幕图像刷新等工作
while( dEngineMainLoop() )
{
// 获取两次调用之间的时间差,传递给游戏逻辑处理
float fTimeDelta = dGetTimeDelta();
if(g_iMoveMonkey > 0)
{
g_fDelayTime -= fTimeDelta;
if(g_fDelayTime<0)
{
g_fDelayTime = 1;
char *szName = dMakeSpriteName("monkey",g_iMonkeys[g_iChooseMonkey]);
dSetSpritePosition(szName, g_flocation[g_iChooseMonkey],-3);
g_iChooseMonkey++;
g_iMoveMonkey--;
}
}
else if(g_iNumMokeys > 1 && g_iGameState != 0)
{
g_iGameState = 1;
}
else if(g_iGameState != 0)
{
g_iGameState = 0;
dSetSpriteVisible("start",true);
}
};
// 关闭游戏引擎
dShutdownGameEngine();
return 0;
}
//==========================================================================
//
// 引擎捕捉鼠标移动消息后,将调用到本函数
void dOnMouseMove( const float fMouseX, const float fMouseY )
{
// 可以在此添加游戏需要的响应函数
}
//==========================================================================
//
// 引擎捕捉鼠标点击消息后,将调用到本函数
void dOnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )
{
// 可以在此添加游戏需要的响应函数
}
//==========================================================================
//
// 引擎捕捉键盘按下消息后,将调用到本函数
// iAltPress iShiftPress iCtrlPress 分别为判断Shift,Alt,Ctrl当前是否也处于按下状态。比如可以判断Ctrl+E组合键
void dOnKeyDown( const int iKey, const int iAltPress, const int iShiftPress, const int iCtrlPress )
{
if(iKey == KEY_SPACE && g_iGameState == 0){
//srand ( (unsigned) time (NULL) );
g_iGameState = 1;
for(int i=0;i<6;i++)
{
g_iMonkeys[i] = i+1;
char *szName = dMakeSpriteName("monkey",g_iMonkeys[i]);
dSetSpritePosition(szName,g_flocation[i],-3);
}
g_iNumMokeys=6;
g_iNumLoseMonkeys=0;
dSetSpriteVisible("start",false);
}
else if(g_iNumMokeys>1 && iKey == KEY_SPACE && g_iGameState == 1)
{
g_iGameState = 2;
g_iChooseMonkey = dRandomRange(0,g_iNumMokeys-1);
char *szName = dMakeSpriteName("monkey",g_iMonkeys[g_iChooseMonkey]);
dSetSpritePosition(szName,g_iNumLoseMonkeys*16-40,24);
//将后面的monkey移上来
g_iMonkeys[g_iChooseMonkey] = -1;
for(int i=g_iChooseMonkey+1;i