【正文】
e P la y e r in c l u d e in c l u d e 設(shè)置方塊顏色設(shè)置背景顏色 in c l u d e in c l u d e in c l u d e in c l u d e in c l u d e 選擇游戲模式控制方塊 in c l u d e in c l u d e in c l u d e in c l u d e p la y e r建立游戲連接游戲控制背景音樂設(shè)置游戲控制游戲D o u b le P l a y e r in c l u d e in c l u d e 設(shè)置操作鍵 in c l u d e 退出游戲 in c l u d e 暫停播放 in c l u d e 繼續(xù)播放 in c l u d e in c l u d e 包括控制背景音樂、建立游戲、連接游戲和 退出游戲四個(gè)用例,控制背景音樂用例又包括暫停播放和繼續(xù)播放兩個(gè)用例;設(shè)置游戲用例包括設(shè)置操作鍵用例。控制游戲狀態(tài)用例包括開始游戲、暫停游戲、繼續(xù)游戲、從新開始、退出等用例,其中從新開始是對開始游戲用例的擴(kuò)展;控制背景音樂包括更換音樂、暫停播放和繼續(xù)播放三個(gè)用例。單機(jī)版玩家和雙人對戰(zhàn)版玩家除了包含這些用 例外,還各自有相應(yīng)的用例。玩家可以選擇游戲模式、控制方塊。 圖 31 計(jì)算機(jī)控 制游戲的用例圖 玩家 (player)。計(jì)算機(jī)可以實(shí)現(xiàn)自動(dòng)播放背景音樂、方塊定時(shí)下移、隨機(jī)產(chǎn)生方塊、自動(dòng)消除滿行、更新分?jǐn)?shù)、報(bào)告游戲結(jié)果等。通過分析確定本系統(tǒng)的抽象參與者有:計(jì)算機(jī)和玩家兩類。用例圖在需求分析階段有很重要的作用,它是作為參與者的外部用戶所能觀察到的系統(tǒng)功能的模型圖,它顯示多個(gè)外部參與者以及他們與系統(tǒng)提供的用例之間的連接 [4]。本游戲共設(shè)置十個(gè)級別,方塊的下落速度隨著級別的升高而加快。 (六)、 顯示需求 當(dāng)方塊填滿一行時(shí)可以消行,剩余方塊向下按照一定的算法向下移動(dòng)并統(tǒng)計(jì)分?jǐn)?shù)。 (五)、 鍵盤處理事件的需求 方塊下落時(shí),可通過鍵盤方向鍵(上、下、左、右、空格鍵)對該方塊進(jìn)行向上 (旋轉(zhuǎn)變形 ),向下移動(dòng)、向左移動(dòng)、向右移動(dòng)和丟下操作。 (四)、 俄羅斯方塊的需求 良好的方塊形狀設(shè)計(jì),繪制七種常見的基本圖形,各個(gè)方塊要能實(shí)現(xiàn)旋轉(zhuǎn)變形、移動(dòng)和顯示。實(shí) 現(xiàn)了網(wǎng)絡(luò)雙人對戰(zhàn),可以用一臺(tái)機(jī)器作為服務(wù)器運(yùn)行,另一臺(tái)機(jī)器作為客戶端運(yùn)行,也可以在同一臺(tái)機(jī)器上運(yùn)行。這樣可以根據(jù)對方的狀態(tài),及時(shí)改變自己的游戲策略。雙人對戰(zhàn)版具有單機(jī)版游戲的基本功能。為了進(jìn)一步方便玩家的實(shí)際操作,還為部分操作添加了快捷鍵的功能,用戶無需點(diǎn)擊按鈕或菜單項(xiàng)即可達(dá)到游戲目的。另外,為了滿足玩家的聽覺需求,還增加了自動(dòng)播放背景音樂的功能 、更換背景音樂的功能、暫停背景音樂的功能以及音效效果??刂泼姘灏A(yù)提示面板,當(dāng)前信息提示面板、游戲控制按鈕面板和背景音樂控制按鈕面板。該界面由 4 個(gè)模塊構(gòu)成,分別是菜單條、菜單項(xiàng)、控制面板和游戲畫布。單機(jī)版游戲的界面采用 JFrame界面來進(jìn)行設(shè)計(jì)。另外,為了能夠?qū)崟r(shí)的顯示游戲的進(jìn)度,還需在主界面下方添加進(jìn)度條,用動(dòng)態(tài)感來吸引玩家。為了使界面簡潔美觀,需要在主界面中 8 添加背景圖片來渲染游戲的氣氛,同時(shí)為了便于玩家的操作,需要設(shè)置四個(gè)按鈕供玩家選擇,分別是“單機(jī)版”、“雙人對戰(zhàn)版”、“幫助”、“退出”。 三 、 系統(tǒng)運(yùn)行環(huán)境 硬件環(huán)境:內(nèi)存: 512M,硬盤: 256M, cpu: 以上 軟件環(huán)境: , 和 MySQL 數(shù)據(jù)庫。 系統(tǒng)默認(rèn)設(shè)置使用右邊的窗口,用光標(biāo)操作:“←”左移一格;“→”右移一格;“↑”變形;“↓”下移一格;“空格”丟下方塊。消去一行后,游戲可給玩家加分,壘在其上的方塊將按照一定的算法 落下來 代替 該 行空間。當(dāng)一個(gè)下 落 方塊到達(dá)游戲區(qū)域底部或者接觸到其他已經(jīng) 壘疊 起的下 落 方塊后,其位置 即 確定下來 , 并占有該空間的位置區(qū)域。本游戲提供了 十 個(gè)游戲級別,用戶可根據(jù)自己的興趣選擇相應(yīng)的級別。同時(shí),在游戲界面的右下方,將顯示玩家所得的分?jǐn)?shù)以及游戲的 難度 級別。因此每種方塊有 4種狀態(tài), 7 種方塊總共有 28種狀態(tài)。、 180176。玩家可用上、下、左、右及空格鍵來控制方塊的旋轉(zhuǎn)和移動(dòng),以便按照玩家所需要的形態(tài)和位置落下,不過前提是方塊移動(dòng)和旋轉(zhuǎn)后的位置必須是空的。力爭使游戲具有可靠性,安全性,完整性,靈 活性,開發(fā)出一款更加適合人們需求的俄羅斯方塊游戲。 第二節(jié) 開發(fā)意圖 竭力為廣大俄羅斯方塊游戲愛好者提供一款趣味性強(qiáng)、容易學(xué)、上手快的益智休閑類游戲,來豐富大家的業(yè)余生活。需求分析的結(jié)果是系統(tǒng)開發(fā)的基礎(chǔ),它的成功與否直接關(guān)系到項(xiàng)目的成敗和軟件的質(zhì)量。即確定系統(tǒng)必須完成哪些工作,也就是對目標(biāo)系統(tǒng)提出完整、準(zhǔn)確、清晰、具體的要求 [3]。 第 三 章 需求分 析 第一節(jié) 引言 需求分析是軟件 定義時(shí)期的最后一個(gè)階段 ,也是關(guān)系到軟件開發(fā)成敗的關(guān)鍵步驟。 第 六 節(jié) 結(jié)論 綜上所述, 本游戲在 技術(shù)方面、經(jīng)濟(jì)方面、操作方面、法律方面 均是 可行 的,由此得出結(jié)論:本 游戲軟件 的技術(shù)成熟、完備 。 該軟件是合法的, 不會(huì)引起任何社會(huì)問題。 第五節(jié) 法律可行性 本游戲的開發(fā)作為畢業(yè)課程設(shè)計(jì)以提高分析和解決實(shí)際問題的能力,以個(gè)人為單位,僅供個(gè)人平常娛樂所用, 所用他人的成果部分都已注明 。 對所有數(shù)據(jù)的輸入進(jìn)行完整性和合法性檢查,盡量減少誤操作。 強(qiáng)調(diào)人 — 機(jī) — 環(huán)境三者作為一個(gè)系統(tǒng)進(jìn)行總體設(shè)計(jì)。 因此,從經(jīng)濟(jì)角 度考慮 本系統(tǒng) 的開發(fā)在經(jīng)濟(jì)上是完全可行的。由于需求分析完整,減少了很多后期維護(hù)的復(fù)雜性。從開發(fā)人力、物力、時(shí)間上考慮,開發(fā)成本少。 同時(shí)還利用 了 MySQL 數(shù)據(jù)庫系統(tǒng)作為其后臺(tái)數(shù)據(jù)庫, 實(shí)現(xiàn)排行榜的存儲(chǔ)和查詢, 確保了該系統(tǒng)中數(shù)據(jù)處理的高效性、快速性和安全性 。其次 ,它最大限度地利用了網(wǎng)絡(luò) , Java 的小應(yīng)用程序可在網(wǎng)絡(luò)上傳輸而不受 CPU 和環(huán)境的限制。 首先 ,作為一種程 序設(shè)計(jì)語言 ,Java 是一種 簡單 的 、 面向?qū)ο蟮?、分布式的、健壯的、安全的、結(jié)構(gòu)中立的、易移植的、多線程的動(dòng)態(tài)語言。游戲者可以通過上下左右鍵及空格鍵來對游戲進(jìn)行操作。本游戲開發(fā)過程遵循軟件工程規(guī)范,采用結(jié)構(gòu)化和面向?qū)ο蠓治鲈O(shè)計(jì)方法。 Java可以支持將對象作為一個(gè)整體通過流進(jìn)行傳輸和存儲(chǔ),但必須將對象序列化后才能保證有效地存儲(chǔ)和讀取對象。如果要將數(shù)據(jù)發(fā)往對方,則要建立數(shù)據(jù)輸出流;如果要讀取數(shù)據(jù)則要建立數(shù)據(jù)輸入流。為了提高俄羅斯方塊游戲數(shù) 據(jù)傳輸?shù)目煽啃?,雙人對戰(zhàn)版游戲的開發(fā)將通過 TCP 通信技術(shù)實(shí)現(xiàn)游戲中的數(shù)據(jù)傳輸。 TCP和 UDP都是傳輸層上的通信協(xié)議,也是一般 TCP/IP網(wǎng)絡(luò)上最常使用的通信協(xié)議,且各有用途。只有通過主機(jī)名或 IP 地址與端口號的組合才能唯一確定網(wǎng)絡(luò)通信中的對象,即進(jìn)程。這是僅通過主機(jī)名或 IP 地址來標(biāo)識這么多進(jìn)程顯然是不夠的。 通常在一臺(tái)主機(jī)上總是有多個(gè)進(jìn)程 需要網(wǎng)絡(luò)資源進(jìn)行網(wǎng)絡(luò)通信。 (一) . 主機(jī)定位 在 TCP/IP協(xié)議中 IP層主要負(fù)責(zé)網(wǎng)絡(luò)主機(jī)的定位、數(shù)據(jù)傳輸?shù)穆酚?,?IP地址可以唯一地確定 Inter 上的一臺(tái)主機(jī)。 這幾個(gè)問題也是實(shí)現(xiàn)俄羅斯方塊雙人對戰(zhàn)版游戲的關(guān)鍵所在。 ● 如何進(jìn)行連接。 三 、 Java 與網(wǎng)絡(luò)通信 網(wǎng)絡(luò)編程的目的就是直接或間接地通過網(wǎng)絡(luò)協(xié)議與其他計(jì)算機(jī)進(jìn)行通信。通過對鍵盤消息的響應(yīng),實(shí)現(xiàn)移動(dòng)、下落、變形等操作。由于游戲中方塊的動(dòng)態(tài)性,每個(gè)方塊都有一定的生命周期,所以選用線程來實(shí)現(xiàn)方塊。 二 、 Java 多線程機(jī)制 俄羅斯方塊的實(shí)現(xiàn)充分利用了 Java的線程功能。在 repaint 中需要調(diào)用update 方法, update 方法在清除屏幕后再調(diào)用 paint 方法。 無論使用 Graphics 還是使用 Canvas 作為圖形對象,都可在需要更新時(shí)自動(dòng)調(diào)用repaint 方法。利用 Canvas 處理繪圖,它的最重要的方法是 paint,該方法可以被覆蓋。 Frame 或 Applet( JFrame 或 JApplet)作為控制者確定所有構(gòu)件的位置、處理用戶的輸入、處理其他對象的交互。 使用 Canvas作為繪圖工具時(shí)首先創(chuàng)建一個(gè)類繼承于 Canvas類并且覆蓋 paint方法,再將這個(gè)類作為一個(gè)成員加入到類似于 Frame 或 Applet( JFrame 或 JApplet)的類中,用某種布局管理器對其進(jìn)行定位。 ② Canvas 類 Canvas 是一個(gè)具有自己坐標(biāo)系統(tǒng)的構(gòu)件,使用布局管理器可以確定它在其他構(gòu)件中的位置。繪圖在一個(gè)二維整數(shù)坐標(biāo)系中進(jìn)行,該坐標(biāo)的原點(diǎn)在構(gòu)件的左上角。 ① Graphics 類 Graphics 類用于在一個(gè)可視構(gòu)件內(nèi)繪圖。還有一種很流行的繪圖方法,即創(chuàng)建一個(gè)單獨(dú)的類,這個(gè)類繼承于 Canvas 類并且覆蓋 paint 方法。 (六) 、 圖形類與圖形的繪制: 使用 Graphics 類提供的繪圖方法“ public void paint(Graphics g)”可以畫出線條、矩形、 圓形等圖形。 一個(gè)布局管理器確定各構(gòu)件在顯示區(qū)域的次序、相對大小和相對位置。 (五) 、 布局管理: Java 語言中,提供了布局管理器這個(gè)工具來管理組件 在容器中的布局 [2]。在 Java 中事件由分層的事件類表示,而接口則描述了對特定事件的響應(yīng)方法。俄羅斯方塊游戲與用戶最重要的交互活動(dòng)時(shí)用戶通過鍵盤來控制游戲、通過按鈕和菜單來設(shè)置游戲。 (三) 、 菜單類: 對一個(gè)大的 GUI 程序而言通常包括各種菜單,俄羅斯方塊游戲中也包含多種菜單,如: JMenu 、 JMenuItem 、 JMenuBar 等, Java 為這些菜單構(gòu)件提供了相應(yīng)的類。在俄羅斯方塊游戲中用到 JFrame 、 JWindow 、 JPanel 和 JDialog 等幾種窗口類。 在本俄羅斯方塊游戲的實(shí)現(xiàn)中,主要采用 Swing 類庫。 Swing:是 Java Foundation Classes( JFC)的一部分,與 ATW 的重量級構(gòu)件不同,Swing 中大部分是輕量級構(gòu)件。主要內(nèi)容如下: 一 、 Java GUI 編程 2 利用 Java 實(shí)現(xiàn)的俄羅斯方塊幾乎能用到 Java GUI 的所有方面,其中包括 Sun 公司為 Java 提供的兩個(gè)圖形界面類庫: AWT:其中提供了建立和設(shè)置 Java 的圖形用戶界面的基本工具。 第三節(jié) 研究內(nèi)容 本游戲包括兩種游戲模式:單機(jī)版和雙人對戰(zhàn)版。 游戲中提供了漂亮 美觀 的 界面 和動(dòng)聽的音樂,使得 游戲的 視覺表現(xiàn) 與 用戶界面 及背景音樂, 融合為有機(jī)的 整體 ,給人們帶來更 為 豐富的娛樂和體驗(yàn) ,同時(shí)也 給 玩家 帶來無限激情。本游戲綜合了單機(jī)版和雙人對戰(zhàn)版兩種模式, 用戶可任選一種進(jìn)行游戲 。 本游戲 根據(jù)軟件工程有關(guān)的規(guī)范,以合理的開發(fā)原則,設(shè)計(jì)出 綜合了 單機(jī) 版和雙人對戰(zhàn)版兩種模式的 俄羅斯方塊游戲,給人們的生活帶來唯美的藝術(shù)享受和健康愉快的補(bǔ)充。當(dāng)前開發(fā)的游戲軟件應(yīng)該做到知識性、娛樂性、趣味性、教育性相統(tǒng)一。因此發(fā)展我國自主的益智休閑的游戲軟件已是當(dāng)務(wù)之急。 Graphical User Interface 目錄 第一章 緒 言 ........................................................................................................................1 第一節(jié) 選題背景及意義 ..................................................................................................1 第二節(jié) 選題目的 .............................................................................................................1 第三節(jié) 研究內(nèi)容 .............................................................................................................1 第二章 可行性研究 ................................................................................................................5 第一節(jié) 引言 ..................................................................................................................5 第二節(jié) 技術(shù)可行性 .........................................................................................................5