![黃金礦工代碼_第1頁](http://file4.renrendoc.com/view/a3808dde84117a3f29af6c1ffe979c7e/a3808dde84117a3f29af6c1ffe979c7e1.gif)
![黃金礦工代碼_第2頁](http://file4.renrendoc.com/view/a3808dde84117a3f29af6c1ffe979c7e/a3808dde84117a3f29af6c1ffe979c7e2.gif)
![黃金礦工代碼_第3頁](http://file4.renrendoc.com/view/a3808dde84117a3f29af6c1ffe979c7e/a3808dde84117a3f29af6c1ffe979c7e3.gif)
![黃金礦工代碼_第4頁](http://file4.renrendoc.com/view/a3808dde84117a3f29af6c1ffe979c7e/a3808dde84117a3f29af6c1ffe979c7e4.gif)
![黃金礦工代碼_第5頁](http://file4.renrendoc.com/view/a3808dde84117a3f29af6c1ffe979c7e/a3808dde84117a3f29af6c1ffe979c7e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、/#includeCommonAPI.h#includestdio.h#includestring.hvoidDrawHookLine();intg_fGoldBornMinX=0;intg_fGoldBornMaxX=0;intg_fGoldBornMinY=0;intg_fGoldBornMaxY=0;intg_iGoldCount=20;intg_iGameState=2;intflag=1;floatScore=0.f;intflagnum=0;charszGotGoldName20;當前抓到金子的名稱floatg_fHookRotation=0.f;floatg_fEmptyHook
2、Speed=35.f;floatfTimeDelta;floatg_fHookStartPosX;存儲鉤子的初始X位置floatg_fHookStartPosY;存儲鉤子的初始Y位置/主函數(shù)入口/intPASCALWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnCmdShow)/初始化游戲引擎if(!dInitGameEngine(hInstance,lpCmdLine)return0;/游戲初始化代碼dSetWindowTitle(黃金礦工)g_fGoldBornMinX=dGetScreenLeft(
3、)+5;金子左邊界g_fGoldBornMaxX=dGetScreenRight()-5;金子右邊界g_fGoldBornMinY=dGetScreenTop()+20;金子上邊界g_fGoldBornMaxY=dGetScreenBottom()-5;金子下邊界g_fHookStartPosX=dGetSpritePositionX(GoldHook);獲取鉤子的初始X坐標g_fHookStartPosY=dGetSpritePositionY(GoldHook);獲取鉤子的初始Y坐標dSetSpriteCollisionSend(goldHook,1);dSetSpriteCollisio
4、nReceive(goldTemplate,1);constfloatfRotateSpeed=45.f;/搖擺速度,單位度/秒intiHookRotToLeft=1;鉤子擺動的方向:1;0floatfTimeDelta=dGetTimeDelta();/引擎主循環(huán),處理屏幕圖像刷新等工作while(dEngineMainLoop()/獲取兩次調(diào)用之間的時間差,傳遞給游戲邏輯處理floatfTimeDelta=dGetTimeDelta();DrawHookLine();/執(zhí)行游戲主循環(huán)if(g_iGameState=0)floatfThisRotate=fRotateSpeed*fTimeD
5、elta;if(iHookRotToLeft)g_fHookRotation+=fThisRotate;if(g_fHookRotation=180.f)g_fHookRotation=180.f;iHookRotToLeft=0;elseg_fHookRotation-=fThisRotate;if(g_fHookRotation=0.f)g_fHookRotation=0.f;iHookRotToLeft=1;dSetSpriteRotation(GoldHook,g_fHookRotation);elseif(g_iGameState=1)dSetTextValue(Score,Scor
6、e);播放拉金塊的動作dAnimateSpritePlayAnimation(goldMan,GolderManAnimation3,1);/獲取鉤子X方向的速度floatfSpeedX=dGetSpriteLinearVelocityX(GoldHook);獲取鉤子Y方向的速度floatfSpeedY=dGetSpriteLinearVelocityY(GoldHook);當速度接近為0時,即可判定其已到達初始點if(fSpeedX-0.00001f&fSpeedY-0.00001f)解除金塊與鉤子的錨定dSpriteDismount(szGotGoldName);刪除獲取的金塊dDelet
7、eSprite(szGotGoldName);回拉結(jié)束,設定狀態(tài)為0g_iGameState=0;if(flagnum)g_iGoldCount-;播放挖金者的動作(恢復初始守候動作)dAnimateSpritePlayAnimation(goldMan,GolderManAnimation2,1);if(g_iGoldCount=0)g_iGameState=0;Score=0;dSetSpriteVisible(GameBegin,1);g_iGoldCount=20;flag=1;dAnimateSpritePlayAnimation(goldMan,GolderManAnimation
8、2,1);/關(guān)閉游戲引擎dShutdownGameEngine();return0;)=/引擎捕捉鼠標移動消息后,將調(diào)用到本函數(shù)voiddOnMouseMove(constfloatfMouseX,constfloatfMouseY)/可以在此添加游戲需要的響應函數(shù))=/引擎捕捉鼠標點擊消息后,將調(diào)用到本函數(shù)voiddOnMouseClick(constintiMouseType,constfloatfMouseX,constfloatfMouseY)/可以在此添加游戲需要的響應函數(shù))=/引擎捕捉鍵盤按下消息后,將調(diào)用到本函數(shù)/iAltPressiShiftPressiCtrlPress分別為
9、判斷Shift,Alt,Ctrl當前是否也處于按下狀態(tài)。比如可以判斷Ctrl+E組合鍵voiddOnKeyDown(constintiKey,constintiAltPress,constintiShiftPress,constintiCtrlPress)/可以在此添加游戲需要的響應函數(shù)if(iKey=KEY_SPACE)g_iGameState=1;/初始化之后,將游戲狀態(tài)設置為進行中dSetSpriteVisible(GameBegin,0);生成金子intiLoop=0;/循環(huán)變量控制intiSize=4,iPosX=0,iPosY=0;/iSize表示金塊大小的變量if(flag)fo
10、r(iLoop=0;iLoopg_iGoldCount;iLoop+)if(iLoop=10&iLoop16)生成6個中金塊,大小為6iSize=6;else/生成4個大金塊,大小為8iSize=8;初始化金子精靈實例char*tmpName;生成金塊名字tmpName=dMakeSpriteName(GoldBlock,iLoop);dCloneSprite(goldTemplate,tmpName);設置金塊的寬度dSetSpriteWidth(tmpName,(float)iSize);設置金塊的高度dSetSpriteHeight(tmpName,(float)iSize);設置金子精
11、靈位置iPosX=dRandomRange(g_fGoldBornMinX,g_fGoldBornMaxX);iPosY=dRandomRange(g_fGoldBornMinY,g_fGoldBornMaxY);dSetSpritePosition(tmpName,(float)iPosX,(float)iPosY);flag=0;if(g_iGoldCount=0)flag=1;g_iGoldCount=20;if(iKey=KEY_S&g_iGameState=0)按下J并且游戲狀態(tài)為0g_iGameState=2;置游戲狀態(tài)為2,可用于控制鉤子是否擺動/以當前朝向給鉤子一個向前的速度d
12、SetSpriteLinearVelocityPolar(GoldHook,g_fEmptyHookSpeed,g_fHookRotation);/播放挖金者的動作(一個胳膊往下壓的動作)dAnimateSpritePlayAnimation(goldMan,GolderManAnimation1,0);/0表示播放一次,這里胳膊往下壓就是一次/=/引擎捕捉鍵盤彈起消息后,將調(diào)用到本函數(shù)voiddOnKeyUp(constintiKey)/可以在此添加游戲需要的響應函數(shù)/=/引擎捕捉到精靈與精靈碰撞之后,調(diào)用此函數(shù)voiddOnSpriteColSprite(constchar*szSrcNa
13、me,constchar*szTarName)/發(fā)起者為GoldHook,接受者含有GoldBlock字段if(strcmp(szSrcName,GoldHook)=1&strstr(szTarName,GoldBlock)!=NULL)將金塊錨定在鉤子上dSpriteMountToSpriteLinkPoint(szTarName,GoldHook,2);使鉤子向初始位置移動,即會拉dSpriteMoveTo(GoldHook,g_fHookStartPosX,g_fHookStartPosY,g_fEmptyHookSpeed,1);復制并保存當前抓取到金塊的名稱strcpy(szGotG
14、oldName,szTarName);/發(fā)起者為GoldHook,接受者含有GoldBlock字段/根據(jù)金子大小,計算鉤子的往回收的速度,越大的越慢。算法:之前設置的金子大小為4,6,8,用10減去該大小再除以10,得到3個小數(shù):0.6,0.4,0.2.該小數(shù)乘以空鉤子的速度即得到掛接不同金子后的實際速度floatfWidth=dGetSpriteWidth(szTarName);floatfSpeed=(10.f-fWidth)/10.f)*g_fEmptyHookSpeed;Score+=fWidth;/鉤子往初始位置移動dSpriteMoveTo(goldhook,g_fHookStar
15、tPosX,g_fHookStartPosY,fSpeed,1);播放拉金塊的動作dAnimateSpritePlayAnimation(goldMan,GolderManAnimation1,0);g_iGameState=1;flagnum=1;=/引擎捕捉到精靈與世界邊界碰撞之后,調(diào)用此函數(shù)./iColSide:0左邊,1右邊,2上邊,3下邊voiddOnSpriteColWorldLimit(constchar*szName,constintiColSide)if(strcmp(szName,GoldHook)!=0)碰到邊界的為鉤子時同樣設置為回拉,只是沒有碰到金子dSpriteMoveTo(szName,g_fHookStartPosX,g_fHookStartPosY,g_fEmptyHookSpeed,1);播放拉金塊的動作dAnimateSpritePlayAnimation(goldMan,GolderManAnimation3,0);g_iGameState=1;flagnum=0;voidDrawHookLine()/首先,從礦工精靈上獲取一個纜繩鏈接點作為繩子的起始點floatfStartX=dGetSpriteLinkPointPosX(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大件打包搬運合同范例
- 課間休息環(huán)境建設路徑:策略與實施措施
- 長沙小區(qū)防滲施工方案
- 上海買房購房合同范例
- 片斷教學八年級下冊數(shù)學材料
- 衢州關(guān)于成立精密軸公司可行性報告
- 中國釉碩磚項目投資可行性研究報告
- 2025年中國民用運輸船行業(yè)發(fā)展監(jiān)測及投資戰(zhàn)略咨詢報告
- 2025黑龍江省建筑安全員《C證》考試題庫及答案
- 四川省眉山市仁壽縣高三上學期12月一診模擬聯(lián)考試題數(shù)學
- 《梅大高速茶陽路段“5·1”塌方災害調(diào)查評估報告》專題警示學習
- 2024年09月北京中信銀行北京分行社會招考(917)筆試歷年參考題庫附帶答案詳解
- 部編新教材人教版七年級上冊歷史重要知識點歸納
- 重點時段及節(jié)假日前安全檢查表
- 建筑樁基技術(shù)規(guī)范2018年
- 道路標線施工技術(shù)規(guī)程(已執(zhí)行)
- 物理調(diào)查問卷
- 給排水管道工程分項、分部、單位工程劃分
- 《傻子上學》臺詞
- 高中英語新課程標準解讀 (課堂PPT)
- 石灰石石膏濕法脫硫化學分析方案
評論
0/150
提交評論