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>  橫坐標m_x、</b></p><p><b>  縱坐標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>  當前圖片索引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è)斜面的起點坐標為(a,b),而向量-),小球圓心目前的坐標為(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ā)生碰撞,我們只要將其移動的路徑、斜面的向量和起點坐標代入上面的方程式中,然后判斷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è)計的各個階段都相當?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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論