freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

java俄羅斯方塊游戲設計與實現-論文(編輯修改稿)

2024-12-12 08:37 本頁面
 

【文章內容簡介】 ++和 Java在面向對象這方面比 VB要強,所以我排除了用 VB做的可能性。但是 C++為了與 C語言兼容,其是包含了些面向過程的成分; Java除了 C++中非面向過程的部分,其程序編寫過程就是設計、實現類, 定義其屬性、行為的過程。還有 Java特有的“沙箱”機制是其安全性的保障,同時它去除了 C++中易造成的錯誤指針,增加了自動內存管理等措施,保證了 Java程序運行的可靠性。 所以經過再三比較了三種語言后,決定采用 Java語言編寫俄羅斯方塊。 第四章 概要設計 游戲設計分析 Java 為純面向對象( ObjectOriented, OO)的程序語言,它的諸多優(yōu)點在此就不作論述了。從面向對象的觀念出發(fā),本程序可分為以下幾個對象: ? 方塊類型數據 ? 程序運算邏輯 ? 繪圖 ? 顯示平臺 分析對象的技巧在于它的重復 利用及維護效率。試想,若要把設計出來的程序在不同的顯示平臺上執(zhí)行,就要作大幅度的更動甚至重寫,這樣就失去了面向對象屬性,所以在本程序分析時將不變與易變的因素分別做成對象,如方塊類型數據及程序運算邏輯就是不變的項目,而繪圖及顯示平臺會因為環(huán)境而有所不同屬于易變的項目。 方塊類型雖然運送不同,但狀態(tài)與行為都是相同的,如下表所示。 方塊的狀態(tài)與行為 對 象 要 素 說 明 狀態(tài) 記錄方塊形狀的變量 行為 方塊根據 x=y。y=2x進行 旋轉 程序中邏輯運算通常只作數值的運算及分析,如方塊移動時阻礙判斷、方塊滿行判斷、刪除滿行、方塊移動、定時器、事件響應等。 繪圖會因為顯示平的不同而有所不同,例如在單機與手機上的顯示環(huán)境就不相同,或顯示效果會有所不同,例如方塊的樣式作修正時,即可以產生出不同的顯示效果。 “可移植性高”是 Java 的屬性之一, Java 的應用涉及許多領域,如手機、單機程序及瀏覽器等,不同的平臺對于它的設定不盡相同,若將顯示平臺獨立為一個類,將有助于主程序的完整性及移植程序的快速性。 注意事項 游戲在設計時除了將程序切割成多個對象外,在游戲的邏輯運算上應盡可能做到彈性化。所謂彈性就是方塊地圖的長與寬應該可以用參數來改變。 游戲流程圖 頂層圖 圖 1 按 S 鍵 關 開 1. 游戲開始 控制游戲開關 2. 鍵盤控制臺 循環(huán)運行 程 序 運 行 否 是 否 是 否 是 游戲開始 接受按鈕的控制信息 1. 檢查滿行 2. 刪除滿行 3. 重新裝載方塊 產生控制方塊下降的執(zhí)行信息 移動方塊 顯示方塊于屏幕中 ,檢查方塊在屏幕上是否有阻礙發(fā)生 方塊移動時是否有阻礙 方塊是否無法下移 游戲結束 圖 2 無效 有效 按鍵 保持不動 可動 檢查按鍵 檢查可移動性 第五章 詳細設計 總體設計 程序流程圖 序號 方法名 作用 1 Main() 定義窗口 2 Init() 創(chuàng)建變量 3 start() 打開線程 4 paint() 游戲界面初始化和游戲開始開關 5 run() 控制游戲速度 6 gameinit() 游戲變量初始化 7 begin() 裝載圖形 過關 游戲結束 重新游戲 下一個圖行 達到提定位置 達到提定位置 顯示屏幕信息 按向上鍵 游戲開始 否 按 s 鍵游戲開始 按鍵 () () () () () () () () () () () () Main() () 8 save() 保存上一個圖形的坐標 9 xian() 屏幕顯示 10 reach() 處理到達后的圖形,進行加分, 滿行判斷及消行處理等 11 keyDown() 控制按鍵信息 12 change() 控制圖形變化 13 destroy() 游戲結束 屏幕信息初始化( paint()) 游戲開關控制圖(在 panint()內實現) paint()方法 是繪制游戲地圖的方法,先指明是什么顏色,再定義顏色范圍,本游戲是先用紅色畫了一個大的實心矩形框,再在紅色中畫一個比紅色小一點的黑色實心矩形框,這樣黑色的框便會把原來紅色的部分遮掉,讓人看起來就是黑色的框周圍圍了一圈紅色。黑色矩形 框為后面的游戲方塊活動的范圍。該方法中還設置了一把鎖,是游戲是否開始的鎖,如果還沒開始則會在黑色框中提示游戲開始的方法。如果游戲鎖解開,會調用 gameinit()方法。 Paint()方法還可在前面加 re,即 repaint(),該方法可以將整個屏幕清屏,再重新畫一個游戲界面。 也由于如此,如果在方塊向下運動中,每運動一行都要掉用一次 repaint()方法的話,屏幕便會閃爍的很快,這樣就游戲的可觀性來說很不好。所以我另外定義了一個 制作圖形變量 (Graphics gg),這個變量只要被激活 (gg = getGraphics()),就可以擁有繪圖的所有功能 。 同時也定義了另外一個繪圖的方法 (xian()),這樣就 減少重新繪圖而造成的屏幕閃爍問題。 有關 xian()方法的使用,將在后面的顯示控制中提到。 gameinit()方法 是游戲初始化,用雙重循環(huán)把定義游戲地圖的二維數組screen[][]賦為 false,即清空游戲地圖中的所有方塊。也把每行方塊數初始化,分數初始化,打開游戲地圖清屏 開關, 再調用裝載游戲方塊 begin()方法。 調用 gameinit()開啟游戲,gameinit()是變量初始化,也是游戲的入口 判 斷是 否按下 S 鍵 顯示開啟游戲的方法 方塊的裝載 (begin()) 方塊裝載( begin()方法 ) 定義一個隨機變量 ,然后調用隨機函數( rand=(int)(()*7)+1), 所取得的隨機數在 1到 7之間,用這 7個數字 表示 7中常見的方塊,并從 7種方塊中隨機抽取 圖形。 每一 種方塊都是由兩個一維數組 (x, y)表示的,其中一個用來保存方 塊所在行,另一個數組用來保存方塊所在列,這樣有利于方塊在屏幕上準確而有活動的定位。 所有 7 種圖形都是在三行三列的地圖中研究后給出的坐標,給出的坐標也是方塊在游戲地圖中靠最頂行 的坐標。這就好象方塊存在于一個三行三列大小的圖形中而夠成的一張圖片。圖片的運動也就是方塊的運動,這樣,要實現方塊的變形,就要在三行三列的圖形中定義一個最左上角的基點,方塊運動,基點也跟著運動?;c坐標在加載方塊是加載,基點的存儲空間在加載每個方塊數組的最后定義。這樣使得方塊在游戲地圖中的每一個地方都可以變形。也不會因為變形而方塊在游戲地圖中的變動很厲害,出現瞬移的現象。圖形坐標裝載完后,先判斷在方塊的下一行是否已有方塊,如果有則說明方塊以到達游
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1