![北科大暑期C程序?qū)嵺`計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/19/2789d5fa-cf0b-491c-9cc7-3ee5722b13e2/2789d5fa-cf0b-491c-9cc7-3ee5722b13e21.gif)
![北科大暑期C程序?qū)嵺`計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/19/2789d5fa-cf0b-491c-9cc7-3ee5722b13e2/2789d5fa-cf0b-491c-9cc7-3ee5722b13e22.gif)
![北科大暑期C程序?qū)嵺`計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/19/2789d5fa-cf0b-491c-9cc7-3ee5722b13e2/2789d5fa-cf0b-491c-9cc7-3ee5722b13e23.gif)
![北科大暑期C程序?qū)嵺`計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/19/2789d5fa-cf0b-491c-9cc7-3ee5722b13e2/2789d5fa-cf0b-491c-9cc7-3ee5722b13e24.gif)
![北科大暑期C程序?qū)嵺`計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/19/2789d5fa-cf0b-491c-9cc7-3ee5722b13e2/2789d5fa-cf0b-491c-9cc7-3ee5722b13e25.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、北京科技大學(xué)計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告機(jī)房名稱(chēng) 逸夫樓904 時(shí) 間 2014年6月30日至7月18日 學(xué) 院 機(jī)械工程學(xué)院 專(zhuān)業(yè)班級(jí) 物流1302 姓 名 徐松松 學(xué) 號(hào) 41345053 指導(dǎo)教師 張敏 成 績(jī) 2014年 7月說(shuō) 明一、 計(jì)算機(jī)應(yīng)用實(shí)踐是本科教學(xué)重要的實(shí)踐
2、教學(xué)環(huán)節(jié),是提高學(xué)生應(yīng)用計(jì)算機(jī)能力的重要措施。所有參加計(jì)算機(jī)應(yīng)用實(shí)踐教學(xué)活動(dòng)的學(xué)生都必須撰寫(xiě)實(shí)踐報(bào)告二、 計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告的質(zhì)量反映了計(jì)算機(jī)應(yīng)用實(shí)踐的教學(xué)質(zhì)量,它是評(píng)定計(jì)算機(jī)應(yīng)用實(shí)踐成績(jī)的主要依據(jù)之一。不交實(shí)踐報(bào)告者不得參加實(shí)習(xí)成績(jī)?cè)u(píng)定。三、 指導(dǎo)教師必須對(duì)學(xué)生的實(shí)踐報(bào)告寫(xiě)出評(píng)語(yǔ)并在相應(yīng)位置給出成績(jī)并簽字,否則本實(shí)踐報(bào)告無(wú)效。四、 實(shí)踐報(bào)告要求條理清晰,內(nèi)容詳盡,數(shù)據(jù)準(zhǔn)確,字?jǐn)?shù)不少于5000字。五、 計(jì)算機(jī)應(yīng)用實(shí)踐活動(dòng)結(jié)束后請(qǐng)將本報(bào)告上交學(xué)院存檔保存。計(jì)算機(jī)應(yīng)用實(shí)踐報(bào)告一、 問(wèn)題的提出在選項(xiàng)目的時(shí)候我思考了一番,對(duì)于拼圖,打飛碟,黃金礦工這些游戲比較熟悉,我一看到迷你高爾夫這個(gè)題目的時(shí)候感覺(jué)
3、有點(diǎn)新奇,沒(méi)碰到過(guò),我想嘗試下新的東西于是就選了這個(gè)游戲,希望能在了解基本框架的基礎(chǔ)上添加一些新功能和優(yōu)化一下游戲框架并且美化一下場(chǎng)景。以前小時(shí)候玩過(guò)各種各樣的小游戲,對(duì)小游戲如何制作的過(guò)程十分好奇,我很盼望能夠自己編出一個(gè)游戲來(lái),通過(guò)一段課程的學(xué)習(xí),我了解了游戲的基本制作過(guò)程,我選這個(gè)題目,具有一定的挑戰(zhàn)性,但我相信自己能做好。比如看懂游戲基本代碼,添加一些開(kāi)始,計(jì)時(shí),計(jì)分,游戲成功或者失敗后的相應(yīng),以及游戲的優(yōu)化和場(chǎng)景變換以及游戲的趣味性與逼真性等等都是我在制作游戲的過(guò)程中需要考慮的部分。由于我是個(gè)人制作,所以這個(gè)項(xiàng)目顯得有點(diǎn)艱巨,但我會(huì)安排好時(shí)間,考慮到方方面面,把握好細(xì)節(jié)方面的處理,從
4、而使迷你高爾夫從原先簡(jiǎn)單單調(diào)的小游戲變?yōu)橐豢罟δ芡晟?,豐富多彩的小游戲。二、 游戲的整體設(shè)計(jì)及框架結(jié)構(gòu)1. 游戲功能描述“迷你高爾夫”游戲是通過(guò)鍵盤(pán)控制球的運(yùn)動(dòng),最終走出出口,考驗(yàn)了反應(yīng)能力和思維能力。該游戲功能包括游戲的開(kāi)始設(shè)置,游戲說(shuō)明,游戲的計(jì)時(shí)和游戲的分?jǐn)?shù)計(jì)算,以及包括背景的音樂(lè)播放,場(chǎng)景的變換和精靈的變化,一些特效的加入還有對(duì)游戲結(jié)束時(shí)的不同反應(yīng),這是一款相對(duì)完善的游戲。2. 游戲流程圖“迷你高爾夫”游戲一局結(jié)束后的界面游戲中的功能初始界面及功能停止游戲時(shí)間,返回第一關(guān)游戲結(jié)束對(duì)成功與失敗分別顯示不同的語(yǔ)句顯示本次游戲所得的分?jǐn)?shù)每過(guò)一關(guān)變換場(chǎng)景和障礙物精靈不至于顯得單調(diào),每一關(guān)的場(chǎng)景
5、都顯得和諧漂亮按空格鍵開(kāi)始游戲,游戲開(kāi)始則響起背景音樂(lè),同時(shí)開(kāi)始倒計(jì)時(shí)單擊GameDescription顯示游戲說(shuō)明單擊說(shuō)明消失則游戲說(shuō)明消失三、 詳細(xì)設(shè)計(jì)1.主函數(shù)模塊main()函數(shù)模塊 主要功能為完成游戲的計(jì)時(shí),并在游戲進(jìn)程中實(shí)時(shí)顯示剩余時(shí)間并計(jì)算分?jǐn)?shù);調(diào)用其他函數(shù)來(lái)完成點(diǎn)擊鼠標(biāo)、按下鼠標(biāo)、精靈與世界邊界碰撞時(shí)的效果;實(shí)現(xiàn)說(shuō)明文字的顯示和影藏。步驟詳細(xì)介紹: 第一步,進(jìn)入游戲界面,顯示文字說(shuō)明; 第二步,根據(jù)需要查看游戲說(shuō)明 第三步,空格進(jìn)入游戲,設(shè)定初始時(shí)間為60秒,開(kāi)始創(chuàng)造精靈,利用dSetSpriteVisble()隱藏?zé)o關(guān)文字。第四步,控制球的運(yùn)動(dòng),計(jì)分計(jì)時(shí)。第五步,游戲結(jié)束;顯
6、示通關(guān)是否成功,成功的話(huà)顯示本次所得的分?jǐn)?shù),失敗則顯示“游戲失敗”文字。2.游戲的初始化操作功能:每局開(kāi)始前進(jìn)行初始化,清空上一局相關(guān)數(shù)據(jù)相關(guān)函數(shù):void CGameMain:GameInit() m_iMoveState=0; ClearAllSprite(); InitLevel(); CreateAllSprite();3.游戲運(yùn)行過(guò)程功能:1. 顯示游戲剩余時(shí)間2. 計(jì)算游戲的分?jǐn)?shù)3. 控制文字與圖片的顯示4. 控制球的運(yùn)動(dòng)狀態(tài)和判斷位置,控制關(guān)卡的轉(zhuǎn)換相應(yīng)函數(shù):void CGameMain:GameRun( float fDeltaTime )m_iGameScore -= 2*f
7、DeltaTime;m_fGameTime -= fDeltaTime;if(m_fGameTime > 0)m_pTime->SetTextValue(int)m_fGameTime); /顯示剩余時(shí)間m_pscore->SetTextValue(int)m_iGameScore); /顯示剩余分?jǐn)?shù)elsem_iCurLevel=1;InitLevel();m_iGameState = 0;CSystem:ShowCursor(true);m_pKaishi->SetSpriteVisible(true);m_jieshu->SetSpriteVisible(
8、true );m_shuoming->SetSpriteVisible(true);if( 0 != m_iMoveState )floatfPosX=m_pControlBall->GetSpritePositionX();floatfPosY=m_pControlBall->GetSpritePositionY();intiIndexX=SpritePosXToIndexX( fPosX );intiIndexY=SpritePosYToIndexY( fPosY );/ 控制球已經(jīng)出了邊界,所以不需要再判斷if( iIndexX < 0 | iIndexX >
9、;= GRID_COUNT | iIndexY < 0 | iIndexY >= GRID_COUNT )return;floatfNextPosX=fPosX;floatfNextPosY=fPosY;/if( 1 = m_iMoveState )fNextPosY -= m_fGridSize * 0.5f;else if( 2 = m_iMoveState )fNextPosY += m_fGridSize * 0.5f;else if( 3 = m_iMoveState )fNextPosX-= m_fGridSize * 0.5f;else if( 4 = m_iMove
10、State )fNextPosX+= m_fGridSize * 0.5f;intiNextIndexX=SpritePosXToIndexX( fNextPosX );int iNextIndexY=SpritePosYToIndexY( fNextPosY );/ 該邊緣已經(jīng)出了邊界,不需要往下判斷if( iNextIndexX < 0 | iNextIndexX >= GRID_COUNT | iNextIndexY < 0 | iNextIndexY >= GRID_COUNT )return;/1)是方塊:if( RIGID_BLOCK = m_iGridDa
11、taiNextIndexYiNextIndexX |RIGID_BLOCK1 = m_iGridDataiNextIndexYiNextIndexX|RIGID_BLOCK2 = m_iGridDataiNextIndexYiNextIndexX|RIGID_BLOCK3 = m_iGridDataiNextIndexYiNextIndexX|RIGID_BLOCK4 = m_iGridDataiNextIndexYiNextIndexX)/ 清零移動(dòng)狀態(tài)m_iMoveState = 0;/ 速度清零,顯示指示箭頭m_pControlBall->SetSpriteLinearVeloci
12、ty(0.f, 0.f);m_pGolfArrow->SetSpriteVisible(1);/ 把球和指示箭頭設(shè)置在本方塊的中心MoveSpriteToBlock( m_pControlBall, iIndexX, iIndexY );MoveSpriteToBlock( m_pGolfArrow, iIndexX, iIndexY );/2)是黑洞:else if( BLACK_HOLE = m_iGridDataiNextIndexYiNextIndexX )/ 將游戲狀態(tài)設(shè)置為1,重新開(kāi)始關(guān)卡m_iGameState=1;/3)是出口:else if( GOLF_EXIT = m
13、_iGridDataiNextIndexYiNextIndexX )/ 將游戲狀態(tài)設(shè)置為1,開(kāi)始新關(guān)卡m_iGameState=1;/ 往下一關(guān)卡,如果已經(jīng)是最大值,則返回第一關(guān)m_iCurLevel+;if( m_iCurLevel > MAX_LEVEL )m_chenggong->SetSpriteVisible( true );m_fGameTime=0;m_iCurLevel = 1;InitLevel();m_iGameState = 0;CSystem:ShowCursor(true);m_pKaishi->SetSpriteVisible(true);m_ch
14、enggong->SetSpriteVisible( true );m_scoretext->SetSpriteVisible(true);m_pscore->SetSpriteVisible(true);m_shuoming->SetSpriteVisible(true);5. 鼠標(biāo)單擊事件功能:控制游戲說(shuō)明的顯示與消失控制游戲的暫停和繼續(xù)函數(shù)代碼:void CGameMain:OnMouseClick( const int iMouseType, const float fMouseX, const float fMouseY )if(iMouseType=0&am
15、p;&(fMouseX>=-12&&fMouseX<=12)&&(fMouseY>=18&&fMouseY<=22)m_description->SetSpriteVisible( true );m_xiaoshi->SetSpriteVisible( true );if(iMouseType=0&&(fMouseX>=-18&&fMouseX<=4)&&(fMouseY>=-27&&fMouseY<=-21)m_d
16、escription->SetSpriteVisible( false );m_xiaoshi->SetSpriteVisible( false );if(iMouseType=0&&(fMouseX>=22&&fMouseX<=46)&&(fMouseY>=-38&&fMouseY<=-30)m_tupian->SetSpriteVisible( true );m_iGameState = 4;if(iMouseType=0&&(fMouseX>=-17&&
17、amp;fMouseX<=17)&&(fMouseY>=24&&fMouseY<=32)m_tupian->SetSpriteVisible( false );m_iGameState = 2;6. 鍵盤(pán)控制事件功能:1.按下空格游戲開(kāi)始,按下時(shí)同時(shí)進(jìn)行一些初始化操作2.通過(guò)上下左右按鍵來(lái)控制球的運(yùn)動(dòng)方向函數(shù)代碼:void CGameMain:OnKeyDown( const int iKey, const bool bAltPress, const bool bShiftPress, const bool bCtrlPress )/ 游
18、戲還未開(kāi)始,按下空格鍵,游戲開(kāi)始。if( KEY_SPACE = iKey && 0 = m_iGameState )PlaySound("d:Sound.wav", NULL, SND_FILENAME | SND_ASYNC);m_chenggong->SetSpriteVisible( false );m_jieshu->SetSpriteVisible( false );m_scoretext->SetSpriteVisible(false);m_pscore->SetSpriteVisible(false);m_shuomi
19、ng->SetSpriteVisible(false);m_description->SetSpriteVisible( false );m_xiaoshi->SetSpriteVisible( false );m_iGameState=1; / 游戲開(kāi)始m_iGameScore=0;m_fGameTime=60.f;/游戲剩余時(shí)間m_iGameScore=120.f;/ 每局游戲開(kāi)始,初始得分為0/m_pScore->SetTextValue( m_iGameScore );/ 每局游戲開(kāi)始,初始時(shí)間為60m_pTime->SetTextValue(int)m_
20、fGameTime);/ 隱藏 "空格開(kāi)始" 提示圖片m_pKaishi->SetSpriteVisible( false );/ 隱藏鼠標(biāo)CSystem:ShowCursor( false );if( 2 != m_iGameState | 0 != m_iMoveState )return;floatfPosX=m_pControlBall->GetSpritePositionX(); floatfPosY=m_pControlBall->GetSpritePositionY(); intiIndexX=SpritePosXToIndexX( fPos
21、X );intiIndexY=SpritePosYToIndexY( fPosY );if( iIndexX < 0 | iIndexX >= GRID_COUNT | iIndexY < 0 | iIndexY >= GRID_COUNT )return;/1)如果是按下向上方向鍵:if( KEY_UP = iKey )if( iIndexY > 0 && RIGID_BLOCK = m_iGridDataiIndexY - 1iIndexX )return;/ 給予控制球一個(gè)方向速度,并設(shè)置移動(dòng)狀態(tài)、隱藏指示箭頭m_iMoveState=1;m
22、_pControlBall->SetSpriteLinearVelocityY(-60.f);m_pGolfArrow->SetSpriteVisible(0);/如果是按下向下方向鍵:else if( KEY_DOWN = iKey )if( iIndexY < GRID_COUNT - 1 && RIGID_BLOCK = m_iGridDataiIndexY + 1iIndexX )return;/ 給予控制球一個(gè)方向速度,并設(shè)置移動(dòng)狀態(tài)、隱藏指示箭頭m_iMoveState=2;m_pControlBall->SetSpriteLinearVel
23、ocityY(60.f);m_pGolfArrow->SetSpriteVisible(0);/3)如果是按下向左方向鍵:else if( KEY_LEFT = iKey )if( iIndexX > 0 && RIGID_BLOCK = m_iGridDataiIndexYiIndexX - 1 )return;/ 給予控制球一個(gè)方向速度,并設(shè)置移動(dòng)狀態(tài)、隱藏指示箭頭m_iMoveState=3;m_pControlBall->SetSpriteLinearVelocityX(-60.f);m_pGolfArrow->SetSpriteVisible(
24、0);/4)如果是按下向右方向鍵:else if( KEY_RIGHT = iKey )if( iIndexX < GRID_COUNT - 1 && RIGID_BLOCK = m_iGridDataiIndexYiIndexX + 1 )return;/ 給予控制球一個(gè)方向速度,并設(shè)置移動(dòng)狀態(tài)、隱藏指示箭頭m_iMoveState=4;m_pControlBall->SetSpriteLinearVelocityX(60.f);m_pGolfArrow->SetSpriteVisible(0);7. 世界邊界控制事件功能:1 如果球運(yùn)動(dòng)出世界邊界,則重新這
25、個(gè)關(guān)卡2 控制魚(yú)的運(yùn)動(dòng)邊界函數(shù)代碼:void CGameMain:OnSpriteColWorldLimit( const char *szName, const int iColSide )/if(strcmp(szName, "fish0")=0)m_pFish->SetSpriteLinearVelocity(0,0);/dSetSpriteFlipX("fish0", true);/*if(strcmp(szName, "fish0")=0)m_pFish->SetSpriteLinearVelocity(0, 0
26、);/dSetSpriteFlipX("fish0", true);*/boolbFlip;floatfSpeedX;CSprite *tmp;if(strcmp(szName, "fish0")=0)if(iColSide = 1) / 右邊bFlip = true;fSpeedX = -CSystem:RandomRange(10, 20);else if(iColSide = 0) / 左邊bFlip = false;fSpeedX = CSystem:RandomRange(10, 20);m_pFish->SetSpriteFlipX(b
27、Flip);m_pFish->SetSpriteLinearVelocity(fSpeedX,0);else if(tmp = FindSpriteByName(szName)!=NULL)/如果找到同szName同名的精靈if(iColSide = 1)tmp->SetSpriteLinearVelocityX(-15.f);tmp->SetSpriteFlipX(true);else if(iColSide = 0)tmp->SetSpriteLinearVelocityX(15.f);tmp->SetSpriteFlipX(false);float fSpe
28、edY;if(iColSide = 2)/上面tmp->SetSpriteLinearVelocityY(15.f);else if(iColSide = 3)/下面tmp->SetSpriteLinearVelocityY(-15.f);/*mySprite->SetSpriteLinearVelocityX(fSpeedX);float fPosY;CSprite* tmpSprite=FindSpriteByName(szName);tmpSprite->SetSpriteFlipX(bFlip);tmpSprite->SetSpriteLinearVelo
29、city(fSpeedX, 0);fPosY=CSystem:RandomRange(m_fScreenTop+10.f, m_fScreenBottom-10.f);/因?yàn)橛胁煌聂~(yú),因此隨機(jī)生成Y方向的速度后需要分配給不同的/魚(yú),這樣多條魚(yú)就不會(huì)重復(fù)了/tmpSprite->SetSpritePositionY(fPosY); */ 只處理控制的球if( strcmp( szName, m_pControlBall->GetName() != 0 )return;/ 將游戲狀態(tài)設(shè)置為1,重新開(kāi)始關(guān)卡m_iGameState=1;8. 清除精靈模板功能:每換一個(gè)關(guān)卡清除上一個(gè)關(guān)卡
30、的精靈函數(shù)代碼:void CGameMain: ClearAllSprite()intiLoop= 0;for( iLoop = 0; iLoop < m_vRigidBlock.size(); iLoop+ )m_vRigidBlockiLoop->DeleteSprite();for( iLoop = 0; iLoop < m_vBlackHole.size(); iLoop+ )m_vBlackHoleiLoop->DeleteSprite();for( iLoop = 0; iLoop < m_vGolfExit.size(); iLoop+ )m_vGo
31、lfExitiLoop->DeleteSprite();for( iLoop = 0; iLoop < m_vFish.size(); iLoop+ )m_vFishiLoop->DeleteSprite();9. 每個(gè)關(guān)卡的初始化設(shè)置功能:復(fù)制當(dāng)前關(guān)卡的地圖,并交換場(chǎng)景函數(shù)代碼:void CGameMain: InitLevel()/ 總數(shù)置0,重新創(chuàng)建m_iRigidBlockCount=0;m_iBlackHoleCount=0;m_iGolfExitCount=0;/ 根據(jù)當(dāng)前關(guān)卡,選擇關(guān)卡數(shù)據(jù)switch( m_iCurLevel )case 2:m_changji
32、ng1->SetSpriteVisible( false );m_iControlStartX=5;m_iControlStartY=9;memcpy( m_iGridData, m_iLevelData2, sizeof(int) * GRID_COUNT * GRID_COUNT );break;case 3:m_changjing2->SetSpriteVisible( false );m_iControlStartX=3;m_iControlStartY=6;memcpy( m_iGridData, m_iLevelData3, sizeof(int) * GRID_COU
33、NT * GRID_COUNT );break;case 4:m_changjing3->SetSpriteVisible( false );m_iControlStartX=3;m_iControlStartY=5;memcpy( m_iGridData, m_iLevelData4, sizeof(int) * GRID_COUNT * GRID_COUNT );break;case 5:m_changjing4->SetSpriteVisible( false );m_changjing5->SetSpriteVisible( false );m_iControlSta
34、rtX=5;m_iControlStartY=5;memcpy( m_iGridData, m_iLevelData5, sizeof(int) * GRID_COUNT * GRID_COUNT );break;/ Level1 或者g_iCurLevel錯(cuò)誤case 1:default:m_changjing1->SetSpriteVisible( true );m_changjing2->SetSpriteVisible( true );m_changjing3->SetSpriteVisible( true );m_changjing4->SetSpriteVi
35、sible( true );m_changjing5->SetSpriteVisible( true );m_iControlStartX=5;m_iControlStartY=6;memcpy( m_iGridData, m_iLevelData1, sizeof(int) * GRID_COUNT * GRID_COUNT );break;10. 每個(gè)關(guān)卡的精靈創(chuàng)建功能:創(chuàng)建當(dāng)前關(guān)卡的障礙物,黑洞和出口精靈,并添加一些特效函數(shù)代碼:void CGameMain: CreateAllSprite()intiLoopX = 0, iLoopY = 0;CSprite* tmpSprite
36、;char*szName = NULL;for( iLoopY = 0; iLoopY < GRID_COUNT; iLoopY+ )for( int iLoopX = 0; iLoopX < GRID_COUNT; iLoopX+ )/如果是0,則不創(chuàng)建精靈,continue表示跳出本次循環(huán),繼續(xù)下一個(gè)循環(huán)。if( 0 = m_iGridDataiLoopYiLoopX )continue;/如果是方塊,則創(chuàng)建方塊精靈:if( RIGID_BLOCK = m_iGridDataiLoopYiLoopX )szName=CSystem:MakeSpriteName("Ri
37、gidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("RigidBlockTemplate");MoveSpriteToBlock( tmpSprite, iLoopX, iLoopY );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;/如果是土豆,則創(chuàng)建土豆精靈:if( RIGID_BLOCK1 = m_iGridDataiLoopYiLoopX )szName=CSystem:
38、MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("RigidBlock1Template");MoveSpriteToBlock( tmpSprite, iLoopX, iLoopY );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;/如果是金塊,則創(chuàng)建金塊:if( RIGID_BLOCK2 = m_iGridDataiLoopYi
39、LoopX )szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("RigidBlock2Template");MoveSpriteToBlock( tmpSprite, iLoopX, iLoopY );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;/如果是魚(yú),則創(chuàng)建魚(yú):if( RIGID_BLOCK3
40、= m_iGridDataiLoopYiLoopX )szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("RigidBlock3Template");MoveSpriteToBlock( tmpSprite, iLoopX, iLoopY );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;if(m_iRi
41、gidBlockCount=1)/ 獲取屏幕的邊界值m_fScreenLeft = CSystem:GetScreenLeft();m_fScreenRight = CSystem:GetScreenRight();m_fScreenTop = CSystem:GetScreenTop();m_fScreenBottom = CSystem:GetScreenBottom();/ 設(shè)置精靈世界邊界m_pFish->SetSpriteWorldLimit(WORLD_LIMIT_NULL, m_fScreenLeft, m_fScreenTop, m_fScreenRight, m_fSc
42、reenBottom);m_pFish->SetSpriteLinearVelocity( 15, 0);/ 生成多條魚(yú)精靈for(int i=1; i<5; i+)char szName128;float fPosX, fPosY;float fSpeedX;float fSpeedY;/將szName的值賦為"fish"加上i,即循環(huán)因子sprintf(szName, "fish%d", i); CSprite* tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("f
43、ish_muban");/創(chuàng)建魚(yú)精靈fPosX = CSystem:RandomRange(m_fScreenLeft+10.f, m_fScreenRight-10.f);fPosY = CSystem:RandomRange(m_fScreenTop+10.f,m_fScreenBottom-10.f);tmpSprite->SetSpritePosition(fPosX, fPosY);tmpSprite->SetSpriteWorldLimit(WORLD_LIMIT_NULL, m_fScreenLeft-10.f, m_fScreenTop, m_fScree
44、nRight+10.f, m_fScreenBottom);fSpeedX = CSystem:RandomRange(10, 20);fSpeedY = CSystem:RandomRange(10, 20);tmpSprite->SetSpriteLinearVelocity(fSpeedX, fSpeedY);m_vFish.push_back(tmpSprite);for(int j=5; j<10; j+)char szName128;float fPosX, fPosY;float fSpeedX;float fSpeedY;/將szName的值賦為"fish
45、"加上i,即循環(huán)因子sprintf(szName, "fish%d", j); CSprite* tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("fish_muban2");/創(chuàng)建魚(yú)精靈fPosX = CSystem:RandomRange(m_fScreenLeft+10.f, m_fScreenRight-10.f);fPosY = CSystem:RandomRange(m_fScreenTop+10.f,m_fScreenBottom-10.f);tmpSprite-&g
46、t;SetSpritePosition(fPosX, fPosY);tmpSprite->SetSpriteWorldLimit(WORLD_LIMIT_NULL, m_fScreenLeft-10.f, m_fScreenTop, m_fScreenRight+10.f, m_fScreenBottom);fSpeedX = CSystem:RandomRange(10, 20);fSpeedY = CSystem:RandomRange(10, 20);tmpSprite->SetSpriteLinearVelocity(fSpeedX, fSpeedY);m_vFish.pu
47、sh_back(tmpSprite);if(m_iRigidBlockCount=1)szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("texiao");MoveSpriteToBlock( tmpSprite, 5, 5 );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;if(m_iRigidBloc
48、kCount=2)szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("texiao");MoveSpriteToBlock( tmpSprite,5, 10 );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;/如果是飛碟,則創(chuàng)建飛碟:if( RIGID_BLOCK4 = m_iGridDataiLoopY
49、iLoopX )szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("RigidBlock4Template");MoveSpriteToBlock( tmpSprite, iLoopX, iLoopY );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;if(m_iRigidBlockCount=1)szN
50、ame=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("baopo");MoveSpriteToBlock( tmpSprite, 3, 3 );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;if(m_iRigidBlockCount=2)szName=CSystem:MakeSpriteName("Ri
51、gidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("baopo");MoveSpriteToBlock( tmpSprite,3, 8 );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;if(m_iRigidBlockCount=4)szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );
52、tmpSprite=new CSprite(szName);tmpSprite->CloneSprite("baopo");MoveSpriteToBlock( tmpSprite,8, 3 );m_vRigidBlock.push_back(tmpSprite);m_iRigidBlockCount+;if(m_iRigidBlockCount=5)szName=CSystem:MakeSpriteName("RigidBlock",m_iRigidBlockCount );tmpSprite=new CSprite(szName);tmpSprite-
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年5G網(wǎng)絡(luò)通信設(shè)備采購(gòu)合同標(biāo)準(zhǔn)
- 2025年醋酸乙烯酯項(xiàng)目建議書(shū)
- 2025年摻混肥項(xiàng)目合作計(jì)劃書(shū)
- 2025年本地網(wǎng)傳輸系統(tǒng)項(xiàng)目合作計(jì)劃書(shū)
- 強(qiáng)化法治教育促進(jìn)遵紀(jì)守法計(jì)劃
- 學(xué)習(xí)困難學(xué)生支持方案計(jì)劃
- 水庫(kù)管理與調(diào)度方案計(jì)劃
- 選擇合適的理財(cái)工具計(jì)劃
- 2025年金屬門(mén)窗及類(lèi)似制品項(xiàng)目發(fā)展計(jì)劃
- 2025年中國(guó)顯控系統(tǒng)行業(yè)供需態(tài)勢(shì)、競(jìng)爭(zhēng)格局及投資前景分析報(bào)告(智研咨詢(xún))
- DL∕T 5810-2020 電化學(xué)儲(chǔ)能電站接入電網(wǎng)設(shè)計(jì)規(guī)范
- ISO9001、ISO14001和ISO45001質(zhì)量環(huán)境及職業(yè)健康安全三個(gè)體系的對(duì)比
- 大學(xué)生創(chuàng)新創(chuàng)業(yè)基礎(chǔ)教程(高校創(chuàng)新創(chuàng)業(yè)教育課程)全套教學(xué)課件
- 2024年內(nèi)蒙古交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)完整
- 天津和平區(qū)2024屆高三一模數(shù)學(xué)試題(解析版)
- 人教版高中物理必修二同步練習(xí)及答案
- 《行政倫理學(xué)教程(第四版)》課件 第7、8章?行政人格、行政組織倫理
- 2024年江蘇蘇??毓杉瘓F(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 工商聯(lián)業(yè)務(wù)工作培訓(xùn)
- 商業(yè)街消防安全培訓(xùn)
- 湖北省曾都區(qū)烏鴉山礦區(qū)建筑用輝綠巖礦礦產(chǎn)資源開(kāi)發(fā)利用與生態(tài)復(fù)綠方案
評(píng)論
0/150
提交評(píng)論