1. 程式人生 > >課程設計小組報告——基於ARM實驗箱的捕魚遊戲的設計與實現

課程設計小組報告——基於ARM實驗箱的捕魚遊戲的設計與實現

訓練 RR article 有一個 fish res 粒子 等級 遊戲流程

課程設計小組報告——基於ARM實驗箱的捕魚遊戲的設計與實現

一、任務簡介

1.1 任務內容

捕魚遊戲這個項目是一個娛樂性的遊戲開發,該遊戲可以給人們帶來娛樂的同時還可以給人感官上的享受,所以很受人們的歡迎。本次遊戲的程序設計包含,java swing組件的合理運用,還有圖像的變動達到一個動態的動畫效果,線程的運用,遊戲的異常處理,等方面的知識。培養學生運用所學知識的基礎理論、基本知識和基本技能,分析解決實際問題能力的一個重要環節。它與課堂教學環節彼此配合,相輔相成,在某種程度上是課堂學習的繼續、深化和檢驗。它的實踐性和綜合性是其它教學環節所不能代替的。課程設計能使學生受到必需的綜合訓練,在不同程度上提高各種能力。
通過課程設計,使學生熟練掌握Java語言課程中所學的理論知識,通過綜合Java語言的基本知識來解決實際問題,加強學生分析和解決問題的能力。

1.2 任務要求

  • 遊戲能夠通過ARM實驗箱實現相應的功能。
  • 具體要求:
    (1) 調整大炮:根據上下按鈕來調整大炮的等級;
    (2) 發射炮彈:點擊屏幕,來發射一枚炮彈,每發射一枚炮彈會扣除和大炮等級相應的金幣數;
    (3) 捕魚:當炮彈打中一條魚的時候張網捕魚;
    (4) 撈金:每當捕捉到一條魚時,可以獲得相應的金幣;
    (5) 金幣補償:當金幣沒有時,每隔3分鐘會補充到100金幣;
    (6) 在線更新:可以在網上更新下載新的內容。

二、系統設計

2.1遊戲設計流程分析

遊戲啟動後,加載遊戲,遊戲界面成功打開後可以點擊鼠標,控制炮臺發射的方向,消耗金幣發射子彈,子彈碰到魚之後會變成漁網,根據代碼中設計的算法通過魚的可擊落概率和子彈的威力判斷魚是否被擊落(當然,這是隨機的),如果沒有擊殺魚,魚繼續遊動,如果擊殺了魚,會觸發被擊落程序,魚會抽到並消失,返回這條魚該回報的金幣。當計時器為0時,如果金幣數小於100了,就會將玩家的金幣數補到100。只要有足夠的金幣可以發射炮彈,玩家可以不停的發射炮彈。遊戲流程如圖:
技術分享圖片

2.2所有功能實現類(接口)的簡介

  • 如下類:
    • main方法在類AwtMainComponet裏面,main方法裏設置了窗口參數和鼠標監聽器。
    • Constant:常量類,裏面有遊戲中運用到的常量。
    • MainSurface:繪制圖層類,圖層的繪制就是在該類中實現的。
    • CannonManager:大炮管理器類,大炮的所有屬性以及該有的方法。
    • CatchFishManager:捕捉管理器類,類中是魚的捕捉方法。
    • FishManager:魚管理器類,類中解析了魚的配置信息,管理著魚的動作等信息。
    • GameInitManager:遊戲初始化管理器類,類中有遊戲的初始化方法。
    • HeadFish:領頭魚類,領頭魚是一種虛擬的魚,其實就是把一群魚模擬成一個對象。
    • ImageConfig:圖片的配置信息類,類中有圖片的細節信息。
    • ImageManager:圖片管理器類,根據解析文件獲取圖片。
    • Bitmap:圖片信息類。
    • LayoutManager:布局管理器,在類中有大炮底座類,提高降低大炮按鈕,計分板計時板的設計。
    • MusicManager:音樂管理器,管理遊戲的背景音樂。
    • ParticleEffectManager:粒子管理器,類中管理遊戲的粒子效果。
    • PathManager:魚路徑管理器,類中管理魚的路徑。
    • ScoreManager:得分管理器,類中管理如何得分。
    • ShoalManager:魚群管理器類,類中管理魚群的方法。
    • SoundManager:音效管理器,類中管理遊戲的音效。
    • Ammo:子彈類,類中管理子彈的屬性。
    • AmmoParticleEffect:子彈粒子效果,類中寫了子彈粒子效果的實現。
    • BackGround:背景類,類中設計了遊戲的背景。
    • FishGold:顯示捕捉到魚後顯示的金幣數量。
    • FishInfo:某一種魚的細節配置信息類。
    • FishingNet:魚網類,類中是漁網的屬性和方法。
    • GamingInfo:遊戲進行中需要共同用到的一些變量。
    • Gold:金幣類,類中是金幣的屬性和方法。
    • GoldParticleEffect:金幣粒子效果,類中是金幣的粒子效果屬性。
    • HighPoint:高分顯示類,當獲取高分時遊戲的顯示。
    • HundredPoint:百分顯示,當獲取百分時遊戲的顯示。
    • LoadProgress:加載進度條,類中設計了加載進度條。
    • NetParticleEffect:漁網粒子效果,類中配置漁網粒子效果。
    • WaterRipple:水波紋類,水波紋的屬性方法。
    • Bottom:大炮底座類,類中設計大炮的底座。
    • BottomGold:金幣顯示組件,顯示金幣。
    • BottomTime:時間顯示組件,顯示時間。
    • ButtonAdapter:按鈕,大炮的按鈕屬性及方法。
    • Cannon:定義所有大炮的模擬類,設計了發射大炮的動作。
    • ChangeCannonEffect:設計了更換大炮時的變換效果。
    • Componet:組件的父類,有設計組件的坐標的方法。
    • DownCannonButtonListener:降低大炮質量的按鈕邏輯。
    • UpCannonButtonListener:提升大炮質量的按鈕邏輯。
    • Fish:魚類,設計魚的所有屬性和方法,如魚的動作和捕捉方法。
    • Button:按鈕的接口,有是否可用和當按鈕被點擊的方法。
    • Drawable:圖片的接口,可獲取圖片的寬高的方法。
    • OnClickListener:單機事件的接口,單機時的方法。
    • FishRunThread:魚遊動進程,設計了魚遊動的方法。
    • PicActThread:控制魚的動作的進程,設計了播放了魚所有動作的方法。
    • ShotThread:射擊進程,設計了發射子彈的方法。
    • CircleRectangleIntersect:圓與矩形碰撞檢測類(魚是矩形,網是圓)。
    • Tool:獲取目標與源之間的角度,判斷擊落與否。
      上述的所有類的共同合作才完成了捕魚達人遊戲的開發。

      2.3 功能模塊

  • 分別有:魚的模塊,漁網的模塊,魚池的模塊,遊戲的模塊,每一個模塊相當於一個類。
    • 魚模塊:主要實現魚圖片的加載,魚遊動效果,魚遊動,還有魚的一些基本屬性,比如魚的坐標,大小,還有血量值。一些基本方法,魚的構造方法。
    • 漁網模塊:主要實現漁網圖片的加載,漁網的屬性有坐標,大小的寬和高,還有漁網的power值,漁網中還有一個改變漁網大小的方法。
    • 魚池模塊:將魚類的對象,網類的對象都在本類中進行調用,並將相應對象的圖片顯示出來,並將遊戲的背景‘畫’出來。
    • 遊戲啟動模塊:將加載遊戲圖片加載進來。

課程設計小組報告——基於ARM實驗箱的捕魚遊戲的設計與實現