2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  數(shù)</b></p><p><b>  據(jù)</b></p><p><b>  結(jié)</b></p><p><b>  構(gòu)</b></p><p><b>  課</b></p><p

2、><b>  程</b></p><p><b>  設(shè)</b></p><p><b>  計</b></p><p><b>  報</b></p><p><b>  告</b></p><p>&

3、lt;b>  書</b></p><p>  課題名稱: 超級瑪麗小游戲開發(fā) </p><p>  班 級: XXXXXXXX </p><p>  學(xué) 號: XXXXXXXX </p><p>  姓

4、 名: XXXXXXXX </p><p>  指導(dǎo)教師: XXXXXXXX </p><p><b>  課程設(shè)計的目的:</b></p><p>  通過本次課程設(shè)計,加深對數(shù)據(jù)結(jié)構(gòu)這么課程的中基礎(chǔ)理論的理解以及能夠?qū)σ恍┏S脭?shù)據(jù)結(jié)構(gòu)的熟練應(yīng)

5、用,理論與實踐相結(jié)合,達到學(xué)以致用的目的。</p><p>  通過小組形式一起開發(fā),從中培養(yǎng)團結(jié)、合作、溝通、理解的精神。</p><p>  選擇的課題:超級瑪麗小游戲開發(fā)</p><p><b>  小組成員:</b></p><p><b>  應(yīng)用到的知識:</b></p>

6、<p><b>  鏈表的操作、</b></p><p>  win32 sdk基礎(chǔ)、</p><p>  DirectDraw基礎(chǔ)、</p><p><b>  基礎(chǔ)物理力學(xué)、</b></p><p><b>  初等數(shù)學(xué)中的向量學(xué)</b></p>&

7、lt;p><b>  設(shè)計流程圖:</b></p><p><b>  詳細設(shè)計流程:</b></p><p>  定義一些用于判斷游戲各種狀態(tài)、和圖片物品位置索引的枚舉變量和結(jié)構(gòu)體和一些宏常量:</p><p><b>  其中枚舉變量的有:</b></p><p> 

8、 運動方向DIRECTION、</p><p>  動作狀態(tài)ACTION、</p><p><b>  怪的類型、</b></p><p><b>  碰撞類型、</b></p><p><b>  物質(zhì)類型</b></p><p><b> 

9、 結(jié)構(gòu)體的有:</b></p><p>  用于圖片索引定位的結(jié)構(gòu)體SPRITE_BM、</p><p>  各個物塊的邊界信息結(jié)構(gòu)體BOX、</p><p>  用于分析碰撞結(jié)果的結(jié)構(gòu)體COLLISION</p><p><b>  一些宏、常量:</b></p><p>  游戲起

10、始位置:PLAYER_STARTX 、PLAYER_STARTY</p><p>  重力加速度:GRAVITY</p><p>  屏幕長和寬:SCREEN_W 、SCREEN_H</p><p>  瓷磚長和寬:TILE_W、TILE_H</p><p>  2、設(shè)計基類:CSprite</p><p><b

11、>  屬性:</b></p><p><b>  類型m_type、</b></p><p>  是否已死m(xù)_active、</p><p><b>  橫坐標(biāo)m_x、</b></p><p><b>  縱坐標(biāo)m_y、</b></p><

12、p><b>  寬m_width、</b></p><p>  高m_height、</p><p>  是否在地上m_onground、</p><p>  圖片張數(shù)m_nBitmaps、</p><p>  圖片幀計數(shù)m_count、</p><p>  當(dāng)前圖片索引m_curBitma

13、p、</p><p>  圖片索引m_sbm、</p><p><b>  方向m_dir、</b></p><p>  行為m_action(方向和行為用于索引圖片和游戲邏輯判斷)、</p><p><b>  X軸速度m_xv、</b></p><p><b>

14、  Y軸速度m_yv、</b></p><p><b>  X加速度m_xa、</b></p><p><b>  Y加速度m_ya、</b></p><p>  移動路程m_relSwitch</p><p><b>  方法:</b></p>&l

15、t;p>  創(chuàng)建方法Create、</p><p>  貼圖索引BitBlt、</p><p>  換幀方法AdvanceBitmap、</p><p>  是否在地面上的檢測方法CheckBottom、</p><p>  改變方向ChangeDirection、</p><p>  設(shè)置行為動作SetActi

16、on、</p><p>  碰撞方法(通過行進路線采用向量法檢測)Collide</p><p>  虛方法有:獲取邊界信息方法GetBounds、移動方法Move、顯示方法Draw</p><p><b>  設(shè)計派生類:</b></p><p><b>  金幣類CCoin、</b></p

17、><p>  子彈類CBullet、</p><p>  爆炸類CExplode、</p><p>  蘑菇類CMushroom、</p><p>  玩家類CPlayer</p><p>  實現(xiàn)各自相應(yīng)的虛方法、并為玩家類添加以下方法:</p><p><b>  變大GrowUp、&

18、lt;/b></p><p><b>  變小Shrink、</b></p><p><b>  防御Shield、</b></p><p>  撞擊BeenHit、</p><p><b>  發(fā)彈的方法Fire</b></p><p>  設(shè)計

19、鏈表類:CSpriteList</p><p>  存儲節(jié)點類型為基類CSprite、</p><p><b>  方法有:</b></p><p><b>  構(gòu)造方法、</b></p><p><b>  添加方法Add、</b></p><p> 

20、 刪除方法Delete、</p><p>  清空方法Destroy</p><p><b>  定義全局變量:</b></p><p>  CBitmap類型的有:</p><p>  g_bmTile、g_bmPlayer、g_bmGhost、g_bmTurtle、g_bmCoin、g_bmMushroom、g_bm

21、Debris、g_bmBullet、g_bmExplode、g_bmFlower</p><p>  CPlane類型的有:g_plane</p><p>  CPlayer類型的有:g_player</p><p>  CSpriteList類的有:g_sprites</p><p>  輸入信息類:g_input</p>&

22、lt;p>  其它邏輯判斷的全局變量:</p><p>  是否暫停g_bPaused</p><p>  是否顯示狀態(tài)信息g_bShowStats</p><p>  等級g_level、</p><p>  背景是否為黑夜g_darken</p><p><b>  定義全局方法:</b>

23、;</p><p>  添加金幣方法AddCoin</p><p>  添加怪的方法AddGhost</p><p>  添加烏龜?shù)姆椒ˋddTurtle</p><p><b>  技術(shù)要點:</b></p><p><b>  鏈表操作:</b></p>&

24、lt;p><b>  建立(添加):</b></p><p>  頭指針m_head = NULL</p><p><b>  循環(huán)以下步驟:</b></p><p><b>  (1)、新建節(jié)點:</b></p><p>  (2)、添加到鏈表中:</p>

25、<p><b>  刪除:</b></p><p>  雙指針遍歷找到要刪除的節(jié)點</p><p>  前指針pre所指的節(jié)點指針域跨過要刪除的節(jié)點指向下個節(jié)點</p><p>  (若是首元節(jié)點刪除則直接使用頭指針指向下個節(jié)點即可)</p><p><b>  碰撞檢測:</b><

26、;/p><p>  本次采用的碰撞檢測采用行進路線碰撞檢測,通過行進路線來檢測是否發(fā)生碰撞的方法主要用來檢測兩個移動的物體,或者是移動物體與平面是否發(fā)生碰撞,如下圖所示:</p><p>  在上圖中,不論是兩顆球的行進方向,還是平面都加上了一個箭頭,這樣做是將其表示為向量。下面我們通過向量來判斷一個具有速度值的小球是否與斜面(非水平與垂直)會發(fā)生碰撞,我們在這里先假設(shè)小球目前的時刻與下一個時

27、刻的圓心位置分別為p3與p4,斜面的起點與終點為p1與p2,原點為o,若小球與平面發(fā)生碰撞,碰撞點為c,其碰撞圖如下圖所示:</p><p>  由上圖我們可以推導(dǎo)出如下公式:</p><p><b>  =</b></p><p><b>  =</b></p><p><b>  =&

28、lt;/b></p><p>  若交點C在兩向量之中,則在上面的式子中,m與n的值會介于0-1之間,其值代表球與斜面是否發(fā)生碰撞。</p><p>  假設(shè)斜面的起點坐標(biāo)為(a,b),而向量-),小球圓心目前的坐標(biāo)為(c,d),其速度向量),代入上式為:</p><p> ?。╝,b)+m)=(c,d)+)</p><p>  x軸方

29、向的向量:a+m=c+n</p><p>  y軸方向的向量:b+m=c+n</p><p>  m=[(b-d)+]/()</p><p>  n=[(d-b)+]/()</p><p>  我們在導(dǎo)出了m與n的結(jié)果之后,在程序中若要判斷小球與斜面是否發(fā)生碰撞,我們只要將其移動的路徑、斜面的向量和起點坐標(biāo)代入上面的方程式中,然后判斷m與n是

30、否都介于0-1之間,就可得知是否發(fā)生了碰撞。</p><p>  3、物理模型之重力加速度</p><p>  簡單來說,重力加速度就是物體因受到重力的影響而產(chǎn)生的一種向下的加速度,如下圖所示:</p><p>  這種會令物體加速往下掉的加速度是因為重力而產(chǎn)生的,所以在物理上稱這種加速度為“重力加速度”,它是一個常量。</p><p>  

31、如同前面所說的一樣,物體在運動時,我們要為其加上一個重力加速度常量,如下所示:</p><p>  x=x+ =+ y=y+</p><p>  為X方向速度常量,為Y方向速度常量;為的速度常量。</p><p>  這樣我們就能夠更加真實地表現(xiàn)物體由高空中往下掉的視覺效果了。</p><p>  結(jié)束語:通過這次課程設(shè)計,使我充分的了解了數(shù)

32、據(jù)結(jié)構(gòu)的理論與實踐相結(jié)合的重要性,在充分的理論基礎(chǔ)上必須有實際上的應(yīng)用,才能靈活應(yīng)用課堂上所學(xué)的理論知識。我們不僅能夠把以前所學(xué)的知識聯(lián)系起來,并且學(xué)會了一些新的知識。雖然我們小組的分工明確,但是每一個人對設(shè)計的各個階段都相當(dāng)?shù)牧私狻?lt;/p><p>  此次的課程設(shè)計中給我體會最深的是我們的協(xié)作關(guān)系。我們是一個整體,通過互相學(xué)習(xí),互相幫助,翻閱大量資料完成了這次有意義的超級瑪麗游戲設(shè)計。不僅增強了我們彼此之間的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論