实验报告范例
源代码 在Main.cpp文件中 //----------------------------------------------------------------------------- // //----------------------------------------------------------------------------- #include "CommonAPI.h" #include<stdio.h> #include<time.h> 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<g_iNumMokeys;i++){ int t = g_iMonkeys[i-1]; g_iMonkeys[i-1] = g_iMonkeys[i]; g_iMonkeys[i] = t; } g_iNumLoseMonkeys++; g_iNumMokeys--; g_iMoveMonkey = g_iNumMokeys - g_iChooseMonkey; g_fDelayTime = 1; } } //========================================================================== // // 引擎捕捉键盘弹起消息后,将调用到本函数 void dOnKeyUp( const int iKey ) { // 可以在此添加游戏需要的响应函数 } //=========================================================================== // // 引擎捕捉到精灵与精灵碰撞之后,调用此函数 void dOnSpriteColSprite( const char *szSrcName, const char *szTarName ) { } //=========================================================================== // // 引擎捕捉到精灵与世界边界碰撞之后,调用此函数. // iColSide : 0 左边,1 右边,2 上边,3 下边 void dOnSpriteColWorldLimit( const char *szName, const int iColSide ) { }
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助