




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、word實(shí)驗(yàn):黃金礦工完本錢實(shí)驗(yàn)后,可以實(shí)現(xiàn)礦工抓金子并計(jì)分的效果,如下所示:復(fù)制金塊學(xué)習(xí)目標(biāo)學(xué)習(xí)應(yīng)用dGetScreenLeft,dGetScreenRight,dGetScreenTop,dGetScreenBottom學(xué)習(xí)應(yīng)用srand函數(shù)。這節(jié)我們實(shí)現(xiàn)黃金礦工的金塊隨機(jī)分布,并設(shè)置不同金塊的大小,為后續(xù)的抓取金塊做好準(zhǔn)備。Stepl:圖片資源導(dǎo)入新建一個(gè)新的項(xiàng)目,取名為GoldenManDemo。添加如下列圖資源到環(huán)境中:口美的窗口時(shí)稈放國片費(fèi)函玷用低配置嘰GunRcotlniageMapBeginfriiageMspminiufoal(liiiagel>lap1miniufoa
2、ltlinagEhyiap?GunFcot2lrnageMapGunSody2lmageMapGolderB時(shí)郵mag郵葉GokleiManlmagef.lapGakJerTocIlmsgeMapPictureDlYl£airiplelmageMa|>PicrureDIYIImageMapPicrureDIYSImageMap口iciuieDtY31m3geMapPicturftDl<4lmageMepPiclureDiP5tmagel.'lapPidureDlVfilniageldapPicrureDiY7lmageMapPicrureDIYSInisg期叩Pi
3、ctureDiYSimageWBpPiclureDIY1OlmageMaD并按如下所示布置圖片位置:并為金子取名為goldTemplateStep2:本實(shí)驗(yàn)用到的API/*dGetScreenLeft:獲取世界邊界之左邊X坐標(biāo)* 返回值:左邊界X坐標(biāo)* /externfloatdGetScreenLeft();/*dGetScreenTop:獲取世界邊界之上邊Y坐標(biāo)* 返回值:上邊界Y坐標(biāo)* /externfloatdGetScreenTop();/*dGetScreenRight:獲取世界邊界之右邊X坐標(biāo)* 返回值:右邊界X坐標(biāo)* /externfloatdGetScreenRight();
4、/*dGetScreenBottom:獲取世界邊界之下邊Y坐標(biāo)* 返回值:下邊界Y坐標(biāo)* /externfloatdGetScreenBottom();/*dSetSpriteWidth:設(shè)置精靈外形寬度* 參數(shù)szName:精靈名字* 參數(shù)fWidth:寬度值,大于0* /externvoiddSetSpriteWidth(constchar*szName,constfloatfWidth);/*dGetSpriteWidth:獲取精靈外形寬度* 參數(shù)szName:精靈名字* 返回值:精靈寬度值* /externfloatdGetSpriteWidth(constchar*szName);*
5、 *dRandomRange:獲取一個(gè)位于參數(shù)1到參數(shù)2之間的隨機(jī)數(shù)* 返回值:int,X圍iMin-iMax* 參數(shù)iMin:小于iMax的整數(shù)* 參數(shù)iMax:大于iMin的整數(shù)* /externintdRandomRange(constintiMin,constintiMax);Step3:思路闡述要實(shí)現(xiàn)金塊的隨機(jī)分布,首先需要利用模板復(fù)制一定數(shù)量的金塊,然后將他們隨機(jī)布置在窗口中,可以通過dSetSpritePosition來設(shè)置金塊的橫縱坐標(biāo)。接下來要面臨的問題就是,如何獲取窗口中不同位置的坐標(biāo)。禾1J用dGetScreenLeft,dGetScreenRight,dGetScree
6、nBottom,dGetScreenTop來獲取窗口的X圍,然后使用dRandomRange在tX圍中隨機(jī)一個(gè)新的坐標(biāo)。對(duì)于金塊的大小設(shè)置,可以利用dSetSpriteHeight和dSetSpriteWidth來實(shí)現(xiàn)。Step4:代碼詳解首先定義全局變量,定義如下全局變量:intgfGoldBornMinX=0;intgfGoldBornMaxX=0;intgfGoldBornMinY=0;intgfGoldBornMaxY=0;intgiGoldCount=0;金塊布置屬于初始化工作,在WinMain的初始化局部添加如下代碼:dSetWindowTitle("黃金礦工"
7、);giGoldCount=20;/金子數(shù)量gfGoldBornMinX=dGetScreenLeft()+5;/金子左邊界gfGoldBornMaxX=dGetScreenRight()-5;/金子右邊界gfGoldBornMinY=dGetScreenTop()+20;/金子上邊界gfGoldBornMaxY=dGetScreenBottom()5;/金子下邊界利用循環(huán)生成20個(gè)金子,以goldTemplate為模板intiLoop=0;/循環(huán)變量控制intiSize=4,iPosX=0,iPosY=0;/iSize表示金塊大小的變量for(iLoop=0;iLoop<g_iGold
8、Count;iLoop+)if(iLoop<10)生成10個(gè)小金塊,大小為4iSize=4;elseif(iLoop>=10&&iLoop<16)/生成6個(gè)中金塊,大小為6iSize=6;else/生成4個(gè)大金塊,大小為8iSize=8;/初始化金子精靈實(shí)例char*tmpName;tmpName=dMakeSpriteName("GoldBlock",iLoop);/生成金塊名字dCloneSprite("goldTemplate",tmpName);dSetSpriteWidth(tmpName,(float)iSi
9、ze);/設(shè)置金塊的寬度dSetSpriteHeight(tmpName,(float)iSize);/設(shè)置金塊的高度/設(shè)置金子精靈位置iPosX=dRandomRange(gfGoldBornMinX,gfGoldBornMaxX);iPosY=dRandomRange(gfGoldBornMinY,gfGoldBornMaxY);dSetSpritePosition(tmpName,(float)iPosX,(float)iPosY);編譯運(yùn)行,可得到如下所示的效果:練習(xí):1.自定義金子的大小和數(shù)量;旋轉(zhuǎn)鉤子學(xué)習(xí)目標(biāo)學(xué)習(xí)應(yīng)用dSetSpriteRotation函數(shù)學(xué)會(huì)利用屏幕刷新時(shí)間fTi
10、meDelta來實(shí)現(xiàn)一些復(fù)雜的操作。這節(jié)我們實(shí)現(xiàn)黃金礦工的鉤子180度來回轉(zhuǎn)動(dòng),這樣礦工就可以控制抓取X圍了,也為后面的抓取金子做好準(zhǔn)備。Stepl:圖片資源導(dǎo)入點(diǎn)擊添加一個(gè)新的動(dòng)畫亙Q畫畫回國畫22 / 21添力口GolderManAnimationl,GolderManAnimation2,GolderManAnimation3到環(huán)境中,添加完后效果如圖:將GolderManAnimation2拖進(jìn)屏幕,并取名為GoldMan,如如下圖所示:同理,將靜態(tài)精靈中的鉤子,拖進(jìn)屏幕,按初始界面排放。并在右側(cè)的“編輯中設(shè)置名稱如下:布置好后的效果如下:Step2:本實(shí)驗(yàn)用到的API/*dSetSp
11、riteRotation:設(shè)置精靈的旋轉(zhuǎn)角度參數(shù)szName:精靈名字參數(shù)fRot:旋轉(zhuǎn)角度,X圍0-360*/externvoiddSetSpriteRotation(constchar*szName,constfloatfRot);0180度不斷Step3:思路闡述實(shí)現(xiàn)鉤子的180度來回?cái)[動(dòng),其實(shí)就是不斷地設(shè)置鉤子與地面的夾角從地變化,可以利用dSetSpriteRotation來進(jìn)展設(shè)置。為了使鉤子以恒定的速度來回?cái)[動(dòng),我們可以自定義一個(gè)初始化速度speed,然后利用游戲屏幕刷新的時(shí)間fTimeDelta來實(shí)現(xiàn),即speed*fTimeDelta即為當(dāng)前鉤子所在的角度位置。Step4:代
12、碼與注釋首先定義全局變量,定義如下全局變量:/鉤子與地面的夾角在WinMain的初始化局部,即金塊分布的for循環(huán)下方添加:const floatfRotateSpeed = 45.f;/ 搖擺速度,單位 度/秒intiHookRotToLeft=1;鉤子擺動(dòng)白方向:1一;0一由于鉤子擺動(dòng)在游戲過程中一直進(jìn)展,所以應(yīng)該將擺動(dòng)的代碼置于while循環(huán)中,在floatfTimeDelta=dGetTimeDelta();下方添加如下代碼:floatfThisRotate=fRotateSpeed*fTimeDelta;/本次旋轉(zhuǎn)的角度if(iHookRotToLeft)/向左轉(zhuǎn),度數(shù)不斷變大gfH
13、ookRotation+=fThisRotate;if(g_fHookRotation>=180.f)/大于180,置為向右轉(zhuǎn),即0gfHookRotation=180.f;iHookRotToLeft=0;Else/向右轉(zhuǎn),度數(shù)不斷變小gfHookRotation-=fThisRotate;/小于0,置為向左轉(zhuǎn),即1if(gfHookRotation<=0.f)gfHookRotation=0.f;iHookRotToLeft=1;dSetSpriteRotation("GoldHook",gfHookRotation);/設(shè)置鉤子的當(dāng)前角度編譯運(yùn)行,可得到如
14、下所示的效果:練習(xí):1.使鉤子從左往右進(jìn)展旋轉(zhuǎn)釋放繩索學(xué)習(xí)目標(biāo)學(xué)習(xí)應(yīng)用dSetSpriteLinearVelocityPolar,dAnimateSpritePlayAnimation函數(shù)學(xué)會(huì)利用全局變量來控制游戲的運(yùn)行狀態(tài)。這節(jié)我們實(shí)現(xiàn)黃金礦工在某一角度放下繩索的操作,為之后的真正抓取金子做好準(zhǔn)備Stepl:圖片資源編輯打開funcode,單擊地圖上的礦工精靈圖像,在顯示框的上面五個(gè)選擇左數(shù)第二個(gè)"編輯此精靈的點(diǎn)",如下列圖按如下列圖依次單擊這位置顯示0,保存即可。同上,點(diǎn)擊地圖上的鉤子精靈,選擇“編輯此精靈的點(diǎn),依次單擊這個(gè)位置顯示0,最后保存即可。Step2:本實(shí)驗(yàn)用
15、到的API/*dSetSpriteLinearVelocityPolar:按角度朝向設(shè)置精靈移動(dòng)速度* 參數(shù)szName:精靈名字* 參數(shù)fSpeed:移動(dòng)速度* 參數(shù)fPolar:角度朝向* /externvoiddSetSpriteLinearVelocityPolar(constchar*szName,constfloatfSpeed,constfloatfPolar);/*dAnimateSpritePlayAnimation:動(dòng)畫精靈播放動(dòng)畫* 參數(shù)szName:精靈名字* 參數(shù)szAnim:動(dòng)畫名字* 參數(shù)iRestore:播放完畢后是否恢復(fù)當(dāng)前動(dòng)畫.1恢復(fù)0不恢復(fù)* 返回值:是否
16、播放成功,1:成功0:不成功* /externintdAnimateSpritePlayAnimation(constchar*szName,constchar*szAnim,constintiRestore);/*dGetSpriteLinkPointPosX:獲取精靈點(diǎn)X坐標(biāo)。點(diǎn)是依附于精靈的一個(gè)坐標(biāo)點(diǎn),*可以在編輯器里增加或者刪除*參數(shù)szName:精靈名字*參數(shù)iId:點(diǎn)序號(hào),第一個(gè)為1,后面依次遞加*/externfloatdGetSpriteLinkPointPosX(constchar*szName,constintild);/*dGetSpriteLinkPointPosY:獲
17、取精靈點(diǎn)Y坐標(biāo)。點(diǎn)是依附于精靈的一個(gè)坐標(biāo)點(diǎn),*可以在編輯器里增加或者刪除* 參數(shù)szName:精靈名字* 參數(shù)ild:點(diǎn)序號(hào),第一個(gè)為1,后面依次遞加* /externfloatdGetSpriteLinkPointPosY(constchar*szName,constintiId);/*dDrawLine:在兩點(diǎn)之間畫一條線* 參數(shù)fStartX:起始坐標(biāo)X* 參數(shù)fStartY:起始坐標(biāo)Y* 參數(shù)fEndX:終點(diǎn)坐標(biāo)X* 參數(shù)fEndY:終點(diǎn)坐標(biāo)Y* 參數(shù)fLineWidth:線的粗細(xì),大于等于1* 參數(shù)iLayer:該線所在的層,與編輯器里設(shè)置的精靈的層級(jí)是同一個(gè)概念。X圍0-31。*
18、參數(shù)iRed,iGreen,iBlue:紅綠藍(lán)三原色的顏色值,X圍0-255* 參數(shù)iAlpha:線的透明度,X圍0-255.0為全透明,255為不透明* /externvoiddDrawLine(constfloatfStartX,constfloatfStartY,constfloatfEndX,constfloatfEndY,constfloatfLineWidth,constintiLayer,constintiRed,constintiGreen,constintiBlue,constintiAlpha);Step3:思路闡述利用dSetSpriteLinearVelocityPol
19、ar即可實(shí)現(xiàn)鉤子在某一角度放線,另外可以通過dAnimateSpritePlayAnimation來播放放線時(shí)礦工的動(dòng)作,所以放線問題不大。但要注意三個(gè)問題:何時(shí)放線,放線的時(shí)候鉤子停止旋轉(zhuǎn),在鉤子和礦工之間畫一條線表示繩索。下面來解決這三個(gè)問題:何時(shí)放線:我們不妨利用鍵盤上的方向鍵中的J來控制放線,在dOnKeyDown添加響應(yīng)釋放繩索的操作,這和海底世界中的WSAD控制魚的方向原理類似;放線的時(shí)候鉤子停止旋轉(zhuǎn):與海底世界中鼠標(biāo)控制魚游動(dòng)一樣,可以添加一個(gè)全局變量,當(dāng)該變量為0時(shí),鉤子旋轉(zhuǎn)當(dāng)釋放繩索時(shí),置其為1,這樣鉤子就不會(huì)旋轉(zhuǎn)了。繩索的展現(xiàn):在step1中已經(jīng)設(shè)置了點(diǎn),其中礦工的0和鉤子
20、的0已經(jīng)設(shè)置好,通過dGetSpriteLinkPointPosX和dGetSpriteLinkPointPosY獲取這兩個(gè)的位置,然后利用dDrawLine函數(shù)在兩點(diǎn)之間畫線即可。Step4:代碼與注釋首先定義鉤子旋轉(zhuǎn)的全局變量:intgiGameState=0;游戲狀態(tài),0表示鉤子旋轉(zhuǎn),1表示釋放繩索,后面還會(huì)定義其他狀態(tài)在定義一個(gè)釋放繩索速度的全局變量floatgfEmptyHookSpeed=15.f;在dOnKeyDown添力口響應(yīng)J按鍵的代碼:if(KEYDOWN=iKey&&giGameState=0)/按下J并且游戲狀態(tài)為"1”giGameState=
21、1;/置游戲狀態(tài)為1,可用于控制鉤子是否擺動(dòng)/以當(dāng)前朝向給鉤子一個(gè)向前的速度dSetSpriteLinearVelocityPolar("GoldHook",g_fEmptyHookSpeed,g_fHookRotation);/播放挖金者的動(dòng)作(一個(gè)胳膊往下壓的動(dòng)作)dAnimateSpritePlayAnimation("GoldMan","GolderManAnimation1",0);/0表示播放一次,這里胳膊往下壓就是一次在WinMain中,修改鉤子擺動(dòng)的代碼,以控制擺動(dòng)狀態(tài),即參加了if判斷。if(giGameState=
22、0)floatfThisRotate=fRotateSpeed*fTimeDelta;if(iHookRotToLeft)gfHookRotation+=fThisRotate;if(gfHookRotation>=180.f)gfHookRotation=180.f;iHookRotToLeft=0;elsegfHookRotation-=fThisRotate;if(gfHookRotation<=0.f)gfHookRotation=0.f;iHookRotToLeft=1;dSetSpriteRotation("GoldHook",gfHookRotat
23、ion);最后,還是在while循環(huán)中,添加畫線連接的操作:/首先,從礦工精靈上獲取一個(gè)纜繩點(diǎn)作為繩子的起始點(diǎn)(該點(diǎn)在編輯器里編輯好)floatfStartX=dGetSpriteLinkPointPosX("GoldMan",1);floatfStartY=dGetSpriteLinkPointPosY("GoldMan",1);/繩子終點(diǎn)在鉤子精靈上獲取(該點(diǎn)在編輯器里編輯好)floatfEndX=dGetSpriteLinkPointPosX("GoldHook",1);floatfEndY=dGetSpriteLinkPoin
24、tPosY("GoldHook",1);/在這兩點(diǎn)之間劃線.線的顏色紅名表藍(lán)值都為50,即灰色;255表示不透明,2.0f表示線的粗細(xì),0表示所在的層dDrawLine(fStartX,fStartY,fEndX,fEndY,2.f,0,50,50,50,255);編譯運(yùn)行,在適當(dāng)?shù)奈恢冒碕,可以發(fā)現(xiàn)鉤子跟著繩索一起釋放,如圖:練習(xí):1.使鉤子在抓到金塊時(shí)以初始速度0.8倍的速度返回,碰到邊界時(shí)如此以兩倍的速度返回。抓取金子學(xué)習(xí)目標(biāo)學(xué)習(xí)應(yīng)用dSetSpriteLinearVelocityPolar,dAnimateSpritePlayAnimationdGetSpriteP
25、ositionXdGetSpAtePositionY函數(shù)學(xué)習(xí)strcpy函數(shù)有了前面的根底,我們可以順利的釋放繩索了,然而當(dāng)鉤子在碰到金塊時(shí)會(huì)穿過去而不會(huì)將其抓住并拉回來。這節(jié)我們就來實(shí)現(xiàn)黃金礦工抓取金塊并拖回的操作。Step1:圖片資源編輯點(diǎn)擊地圖上的鉤子精靈,選擇“編輯此精靈的點(diǎn),如下列圖添加1點(diǎn),保存即可。在WinMain的復(fù)制金子前給鉤子加上發(fā)送碰撞屬性:dSetSpriteCollisionSend("goldHook",1);在WinMain的復(fù)制金子前給金塊加上承受碰撞屬性:funcode會(huì)自己處理碰撞dSetSpriteCollisionReceive(&q
26、uot;goldTemplate",1);注意:不要勾上承受物理碰撞與發(fā)送物理碰撞,否如此Step2:Funcode接口介紹/*dOnSpriteColSprite:精靈與精靈碰撞后將被調(diào)用的函數(shù),可在此函數(shù)體里(Main.cpp)* 增加自己的響應(yīng)代碼* 精靈之間要產(chǎn)生碰撞,必須在編輯器或者代碼里設(shè)置精靈發(fā)送與承受碰撞* 參數(shù)szSrame:發(fā)起碰撞的精靈名字* 參數(shù)szTarName:被碰撞的精靈名字* /externvoiddOnSpriteColSprite(constchar*szSrame,constchar*szTarName);/*dSpriteMountToSpri
27、teLinkPoint:將一個(gè)精靈綁定到另一個(gè)精靈上,綁定位置為指定*的點(diǎn),暫時(shí)的成為另一個(gè)精靈的一局部,跟隨其運(yùn)動(dòng)等* 參數(shù)szSramec要綁定的精靈名字* 參數(shù)szDstName:承載綁定的母體精靈名字* 參數(shù)iPointId:點(diǎn)序號(hào)* 返回值:返回一個(gè)綁定ID* /externintdSpriteMountToSpriteLinkPoint(constchar*szSrame,constchar*szDstName,constintiPointId);/*dGetSpritePositionX:獲取精靈X坐標(biāo)* 參數(shù)szName:精靈名字* 返回值:精靈的X坐標(biāo)* /externflo
28、atdGetSpritePositionX(constchar*szName);/*dGetSpritePositionY:獲取精靈Y坐標(biāo)* 參數(shù)szName:精靈名字* 返回值:精靈的Y坐標(biāo)* /externfloatdGetSpritePositionY(constchar*szName);Step3:思路闡述鉤子抓取金塊實(shí)際上就是精靈與精靈碰撞的過程,所以應(yīng)該在dOnSpriteColSprite中做文章。dOnSpriteColSprite中的szSrame,szTarName可以判定碰撞的對(duì)象是否是金塊和鉤子。假如是,如此將金塊綁定在鉤子精靈上,利用dSpriteMountToSpr
29、iteLinkPoint函數(shù),將金塊錨定在前面設(shè)定的鉤子精靈點(diǎn)“1。繼而就是把金塊往回拉的過程,事先利用之后利dGetSpritePositionX,dGetSpritePositionY獲取鉤子的起始位置并保存在全局變量中,用dSpriteMoveTo移回初始位置。Step4:代碼詳解定義全局變量來存放鉤子的初始位置floatgfHookStartPosX;/存儲(chǔ)鉤子的初始XB置floatgfHookStartPosY;/存儲(chǔ)鉤子的初始YB置charszGotGoldName20;/當(dāng)前抓到金子的名稱在WinMain的初始化中,添加:gfHookStartPosX=dGetSpritePos
30、itionX("GoldHook");/獲取鉤子的初始/標(biāo)fHookStartPosY=dGetSpritePositionY("GoldHook");/獲取鉤子的初始丫坐標(biāo)在dOnSpriteColSprite中添加處理金塊與鉤子碰撞的代碼:/發(fā)起者為GoldHook,承受者含有GoldBlock字段if(strcmp(szSrame,"GoldHook")=0&&strstr(szTarName,"GoldBlock")!=NULL)dSpriteMountToSpriteLinkPoint(s
31、zTarName,"GoldHook",2);/將金塊錨定在鉤子上dSpriteMoveTo("GoldHook",gfHookStartPosX,gfHookStartPosY,gfEmptyHookSpeed,1);/使鉤子向初始位置移動(dòng),即會(huì)拉dAnimateSpritePlayAnimation("GoldMan","GolderManAnimation3",1);/播放拉金塊的動(dòng)作strcpy(szGotGoldName,szTarName);/復(fù)制并保存當(dāng)前抓取到金塊的名稱編譯運(yùn)行,在適當(dāng)?shù)奈恢冒纯梢园l(fā)
32、現(xiàn)當(dāng)鉤子碰到金子后,可以拖著金子一起回拉,如圖:刪除金子與邊界處理學(xué)習(xí)目標(biāo)學(xué)習(xí)應(yīng)用dDeleteSprite,dSpriteDismount,dGetSpriteLinearVelocityX,dGetSpriteLinearVelocityY函數(shù)學(xué)會(huì)利用全局變量來分類控制游戲的運(yùn)行狀態(tài)學(xué)會(huì)判斷精靈是否靜止不動(dòng)有了前面的根底,我們可以抓取金子并回拉到初始位置。然而當(dāng)拉到初始處后金子依舊存在而且不能在繼續(xù)抓取了,另外如果鉤子沒有碰到金塊,那么鉤子會(huì)不斷往邊界外面移動(dòng)。這節(jié)我們就來實(shí)現(xiàn)抓取金子后刪除,以與添加鉤子的邊界處理,來完成黃金礦工的最后一步。Stepl:設(shè)置鉤子與世界邊界碰撞的模式為NUL
33、L在WinMain的初始化中初始化鉤子與世界邊界碰撞的模式為NULL,代碼如下:/*dSpriteDismount:將已經(jīng)綁定的精靈進(jìn)展解綁* 參數(shù)szName:精靈名字* /externvoiddSpriteDismount(constchar*szName);/*dGetSpriteLinearVelocityX:獲取精靈X方向速度* 參數(shù)szName:精靈名字* 返回值:X方向速度* /externfloatdGetSpriteLinearVelocityX(constchar*szName);/*dGetSpriteLinearVelocityY:獲取精靈Y方向速度* 參數(shù)szName
34、:精靈名字* 返回值:Y方向速度* /externfloatdGetSpriteLinearVelocityY(constchar*szName);Step3:思路闡述同海底世界一樣,我們?cè)趃_iGameState中添加狀態(tài)2,用于表示鉤子的回拉狀態(tài)。在回拉狀態(tài)下,我們才會(huì)有刪除金塊的可能性。當(dāng)金塊拉回到初始位置時(shí),我們刪除金塊,那么我們?nèi)绾闻袛嘟饓K在初始位置呢?可以通過鉤子的速度來實(shí)現(xiàn)。如果鉤子的速度為0,說明鉤子不再移動(dòng),即已經(jīng)拉回到了初始位置,利用dGetSpriteLinearVelocityX,dGetSpriteLinearVelocityY來獲取鉤子速度進(jìn)而進(jìn)展判定。鉤子的邊界處
35、理,我們讓鉤子在碰到世界邊界時(shí),向初始位置X圍即可,只要在dOnSpriteColWorldLimit中利用dSpriteMoveTo即可。Step4:代碼詳解在dOnSpriteColSprite中處理金塊與鉤子碰撞的代碼中添加:giGameState=2;表示繩索回拉即:/發(fā)起者為GoldHook,承受者含有GoldBlock字段if(strcmp(szSrame,"GoldHook")=0&&strstr(szTarName,"GoldBlock")!=NULL)/將金塊錨定在鉤子上dSpriteMountToSpriteLinkP
36、oint(szTarName,"GoldHook",2);/使鉤子向初始位置移動(dòng),即回拉dSpriteMoveTo("GoldHook",g_fHookStartPosX,g_fHookStartPosY,g_fEmptyHookSpeed,1);/播放拉金塊的動(dòng)作dAnimateSpritePlayAnimation("GoldMan","GolderManAnimation3",1);/復(fù)制并保存當(dāng)前抓取到金塊的名稱strcpy(szGotGoldName,szTarName);在WinMain中添加的if(g_iGameState=0)floatfThisRotate=fRotateSpeed*fTimeDelta;if(iHookRotToLeft)g_fHookRotation+=fThisRotate;if(g_fHookRotation>=180.f)g_fHookRotation=180.f;iHookRotToLeft=0;elseg_fHookRotation-=fThisRotate;if(g_fHookR
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全護(hù)理試題及答案
- 地?zé)崮芄┡诒狈睫r(nóng)村地區(qū)的應(yīng)用現(xiàn)狀與2025年發(fā)展前景報(bào)告001
- 民間艾灸達(dá)人培訓(xùn)課件
- 乙型腦炎的培訓(xùn)課件
- 員工職業(yè)道德提升課件
- 中國利率市場化課件
- 制取氧氣說課課件
- 江蘇省蘇州市吳中學(xué)、吳江、相城區(qū)2025屆英語七年級(jí)第二學(xué)期期末檢測試題含答案
- 年度員工活動(dòng)計(jì)劃方案
- 山東省德州市德城區(qū)2025年八下英語期末經(jīng)典試題含答案
- 精神科火災(zāi)演練腳本
- 汽輪發(fā)電機(jī)組設(shè)備運(yùn)行記錄日?qǐng)?bào)表(正面) A2
- 15J403-1-樓梯欄桿欄板(一)
- 2024年婦幼健康“三基”培訓(xùn)考試復(fù)習(xí)題庫-下(多選、判斷題)
- 子癇的搶救和護(hù)理
- 2025年高考政治一輪復(fù)習(xí):統(tǒng)編版必修3《政治與法治》必背考點(diǎn)知識(shí)講義
- 民政統(tǒng)計(jì)信息管理系統(tǒng)培訓(xùn)手冊(cè)街鄉(xiāng)鎮(zhèn)
- 中職英語新課標(biāo)詞匯表
- 2024秋期國家開放大學(xué)《國際法》一平臺(tái)在線形考(形考任務(wù)1至5)試題及答案
- 天翼云從業(yè)者認(rèn)證考試題庫及答案
- T-CEC 153-2018并網(wǎng)型微電網(wǎng)的負(fù)荷管理技術(shù)導(dǎo)則
評(píng)論
0/150
提交評(píng)論