版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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;當(dāng)前抓到金子的名稱floatg_fHookRotation=0.f;floatg_fEmptyHook
2、Speed=35.f;floatfTimeDelta;floatg_fHookStartPosX;存儲(chǔ)鉤子的初始X位置floatg_fHookStartPosY;存儲(chǔ)鉤子的初始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坐標(biāo)g_fHookStartPosY=dGetSpritePositionY(GoldHook);獲取鉤子的初始Y坐標(biāo)dSetSpriteCollisionSend(goldHook,1);dSetSpriteCollisio
4、nReceive(goldTemplate,1);constfloatfRotateSpeed=45.f;/搖擺速度,單位度/秒intiHookRotToLeft=1;鉤子擺動(dòng)的方向:1;0floatfTimeDelta=dGetTimeDelta();/引擎主循環(huán),處理屏幕圖像刷新等工作while(dEngineMainLoop()/獲取兩次調(diào)用之間的時(shí)間差,傳遞給游戲邏輯處理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);播放拉金塊的動(dòng)作dAnimateSpritePlayAnimation(goldMan,GolderManAnimation3,1);/獲取鉤子X(jué)方向的速度f(wàn)loatfSpeedX=dGetSpriteLinearVelocityX(GoldHook);獲取鉤子Y方向的速度f(wàn)loatfSpeedY=dGetSpriteLinearVelocityY(GoldHook);當(dāng)速度接近為0時(shí),即可判定其已到達(dá)初始點(diǎn)if(fSpeedX-0.00001f&fSpeedY-0.00001f)解除金塊與鉤子的錨定dSpriteDismount(szGotGoldName);刪除獲取的金塊dDelet
7、eSprite(szGotGoldName);回拉結(jié)束,設(shè)定狀態(tài)為0g_iGameState=0;if(flagnum)g_iGoldCount-;播放挖金者的動(dòng)作(恢復(fù)初始守候動(dòng)作)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;)=/引擎捕捉鼠標(biāo)移動(dòng)消息后,將調(diào)用到本函數(shù)voiddOnMouseMove(constfloatfMouseX,constfloatfMouseY)/可以在此添加游戲需要的響應(yīng)函數(shù))=/引擎捕捉鼠標(biāo)點(diǎn)擊消息后,將調(diào)用到本函數(shù)voiddOnMouseClick(constintiMouseType,constfloatfMouseX,constfloatfMouseY)/可以在此添加游戲需要的響應(yīng)函數(shù))=/引擎捕捉鍵盤按下消息后,將調(diào)用到本函數(shù)/iAltPressiShiftPressiCtrlPress分別為
9、判斷Shift,Alt,Ctrl當(dāng)前是否也處于按下?tīng)顟B(tài)。比如可以判斷Ctrl+E組合鍵voiddOnKeyDown(constintiKey,constintiAltPress,constintiShiftPress,constintiCtrlPress)/可以在此添加游戲需要的響應(yīng)函數(shù)if(iKey=KEY_SPACE)g_iGameState=1;/初始化之后,將游戲狀態(tài)設(shè)置為進(jìn)行中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個(gè)中金塊,大小為6iSize=6;else/生成4個(gè)大金塊,大小為8iSize=8;初始化金子精靈實(shí)例char*tmpName;生成金塊名字tmpName=dMakeSpriteName(GoldBlock,iLoop);dCloneSprite(goldTemplate,tmpName);設(shè)置金塊的寬度dSetSpriteWidth(tmpName,(float)iSize);設(shè)置金塊的高度dSetSpriteHeight(tmpName,(float)iSize);設(shè)置金子精
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òng)/以當(dāng)前朝向給鉤子一個(gè)向前的速度d
12、SetSpriteLinearVelocityPolar(GoldHook,g_fEmptyHookSpeed,g_fHookRotation);/播放挖金者的動(dòng)作(一個(gè)胳膊往下壓的動(dòng)作)dAnimateSpritePlayAnimation(goldMan,GolderManAnimation1,0);/0表示播放一次,這里胳膊往下壓就是一次/=/引擎捕捉鍵盤彈起消息后,將調(diào)用到本函數(shù)voiddOnKeyUp(constintiKey)/可以在此添加游戲需要的響應(yīng)函數(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);使鉤子向初始位置移動(dòng),即會(huì)拉dSpriteMoveTo(GoldHook,g_fHookStartPosX,g_fHookStartPosY,g_fEmptyHookSpeed,1);復(fù)制并保存當(dāng)前抓取到金塊的名稱strcpy(szGotG
14、oldName,szTarName);/發(fā)起者為GoldHook,接受者含有GoldBlock字段/根據(jù)金子大小,計(jì)算鉤子的往回收的速度,越大的越慢。算法:之前設(shè)置的金子大小為4,6,8,用10減去該大小再除以10,得到3個(gè)小數(shù):0.6,0.4,0.2.該小數(shù)乘以空鉤子的速度即得到掛接不同金子后的實(shí)際速度f(wàn)loatfWidth=dGetSpriteWidth(szTarName);floatfSpeed=(10.f-fWidth)/10.f)*g_fEmptyHookSpeed;Score+=fWidth;/鉤子往初始位置移動(dòng)dSpriteMoveTo(goldhook,g_fHookStar
15、tPosX,g_fHookStartPosY,fSpeed,1);播放拉金塊的動(dòng)作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)碰到邊界的為鉤子時(shí)同樣設(shè)置為回拉,只是沒(méi)有碰到金子dSpriteMoveTo(szName,g_fHookStartPosX,g_fHookStartPosY,g_fEmptyHookSpeed,1);播放拉金塊的動(dòng)作dAnimateSpritePlayAnimation(goldMan,GolderManAnimation3,0);g_iGameState=1;flagnum=0;voidDrawHookLine()/首先,從礦工精靈上獲取一個(gè)纜繩鏈接點(diǎn)作為繩子的起始點(diǎn)floatfStartX=dGetSpriteLinkPointPosX(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度飛機(jī)租賃與飛行員培訓(xùn)服務(wù)合同3篇
- 2025屆江蘇蘇州市四校高三12月聯(lián)考語(yǔ)文試題(學(xué)生版)
- 兒童身體協(xié)調(diào)性訓(xùn)練考核試卷
- 公路客運(yùn)服務(wù)投訴處理與改進(jìn)考核試卷
- 2025版木屋建筑工程質(zhì)量保修合同示范文本4篇
- 2025版學(xué)校小賣部環(huán)保購(gòu)物袋定制與銷售合同2篇
- 2025年分期美食體驗(yàn)券購(gòu)買合同
- 2025年養(yǎng)老保險(xiǎn)擔(dān)保合同
- 2025年嬰童用品贈(zèng)與合同
- 2025年倉(cāng)庫(kù)貨物清點(diǎn)協(xié)議
- 中央2025年國(guó)務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫(kù)附帶答案詳解
- 2024年09月北京中信銀行北京分行社會(huì)招考(917)筆試歷年參考題庫(kù)附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級(jí)100以內(nèi)進(jìn)退位加減法800道題
- 保險(xiǎn)公司2025年工作總結(jié)與2025年工作計(jì)劃
- 2024年公司領(lǐng)導(dǎo)在新年動(dòng)員會(huì)上的講話樣本(3篇)
- 眼科護(hù)理進(jìn)修專題匯報(bào)
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
- 深靜脈血栓(DVT)課件
- 2023年四川省廣元市中考數(shù)學(xué)試卷
- GB/T 19885-2005聲學(xué)隔聲間的隔聲性能測(cè)定實(shí)驗(yàn)室和現(xiàn)場(chǎng)測(cè)量
評(píng)論
0/150
提交評(píng)論