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

正文內(nèi)容

基于java的魔塔游戲的設(shè)計(jì)與實(shí)現(xiàn)論文(參考版)

2024-11-11 21:59本頁(yè)面
  

【正文】 try 。 我采用 了 線程的技術(shù),與實(shí)現(xiàn) 人物行走 效果相類似,此處也是在較短時(shí)間內(nèi)繪制不同時(shí)間段的圖片。 } } 門 打開(kāi)效果 22 游戲中 在一些道路上會(huì)設(shè)有不同顏色的門,阻礙 勇士前進(jìn) 的道路 , 勇士需要持有與門 相同顏色的鑰匙才能打開(kāi)。 if ( = 5){ return。 try { (25L)。 當(dāng) 鍵盤的上、下、左 、 右 鍵 被 按下后,觸發(fā)相應(yīng)的 事件 ,借助線程 通過(guò) 對(duì)多 個(gè) 圖片的 paint(),由于 時(shí)間極短,給人視覺(jué)上的誤差,讓玩家感覺(jué) 勇士 有走動(dòng)的感覺(jué)。如“ 十字架 ” 、“鐮刀”等 。流程圖如 圖 54 所示 : 游戲開(kāi)始物品 商店 N P C 怪物獲得物品/屬性提升情景所需N P C公主擊敗魔王戰(zhàn)斗游戲結(jié)束( 失敗 )游戲結(jié)束( 成功 )玩家屬性提高是失敗否否勝利 圖 54 程序 流程圖 物品 獲得流程 游戲 進(jìn)行的過(guò)程中, “勇士”會(huì)通過(guò) 獲得一些寶物 來(lái) 擁有一些特殊技能。 游戲伊始 ,“勇士” 會(huì)被賦予初始屬性值,游戲過(guò)程中,將會(huì)遇到 四 種情況: ; ; ; 4 怪物 。 } return image。 image = (u)。具體 代碼 如下: public static Image getImage(String path){ BufferedImage image=null。 本課題 設(shè)計(jì)中,欲設(shè)計(jì)一個(gè)工具類,通過(guò)類加載機(jī)制創(chuàng)建出 Image 對(duì)象 。研究 類 加載機(jī)制 可以讓程序員自己 動(dòng)態(tài)的控制類的加載 , 從而達(dá)到某種特定的要求。 一個(gè) 死亡狀態(tài)的線程 將不能再 轉(zhuǎn)換為其他的 狀態(tài), 同樣死亡狀態(tài)的線程 也不能 再被 cpu 所調(diào) 用 了。掛起狀態(tài) 是由于線程 遇到 sleep()方法或 join()方法 ,放棄了 cpu 的 使用權(quán); 鎖池等待 是 線程 在 執(zhí)行的 過(guò)程 中 遇見(jiàn)了 synchronized 關(guān)鍵字申請(qǐng)對(duì)象的鎖 資源 ,且 該資源 正被 其他線程使用,故而進(jìn)入鎖池等待;等待池等待 是 正在運(yùn)行的線程遇見(jiàn) wait 操作之后,進(jìn)入到阻塞狀態(tài),直到收到 notify 或者 notifyAll 所下達(dá)的通知, 則 線程會(huì)退 出阻塞狀態(tài), 進(jìn)入鎖 池等待。 阻塞 狀態(tài): 線程 會(huì)由于缺少某一資源而無(wú)法進(jìn)入就緒狀態(tài)。進(jìn)入 該狀態(tài)的 線程 就脫離了程序 員 的 控制 。 線程 的狀態(tài)初步分為五種: 初始 狀態(tài): 剛剛 申請(qǐng)了 內(nèi)存空間來(lái) 存儲(chǔ) 線程對(duì)象, 即剛使用 new 關(guān)鍵字創(chuàng)建 好的線程就會(huì)處于該狀態(tài)。 run()方法規(guī)定 了線程所要 執(zhí)行的 程序 流程。 在Java 語(yǔ)言中 線程 的實(shí)現(xiàn)方式主要有兩種:一是 直接 繼承 Thread 類, 二是實(shí)現(xiàn) Runnable接口 。 線程 是 程序 運(yùn)行過(guò)程中最小的執(zhí)行單位。可以說(shuō) 一個(gè) 程序的運(yùn)行就是一個(gè)進(jìn)程的執(zhí)行。 線程 說(shuō)到 線程,我們就不得不 先 介紹一下進(jìn)程的概念。 根據(jù) 返回的字符,程序員可以編寫不同的邏輯來(lái)處理,從而達(dá)到按下不同的鍵, 執(zhí)行 不同的 業(yè)務(wù)邏輯 。用KeyEvent 類的 public int getKeyCode()方法,可以判斷哪個(gè)鍵被按下、敲擊或釋放,getKeyCode()返回一個(gè)鍵碼值。事件源使用 addKeyListener方法獲得監(jiān)視器。當(dāng)玩家按下、釋放或敲擊鍵盤上一個(gè)鍵時(shí)就觸發(fā)了鍵盤事件,必須要有觸發(fā)事件的事件源。 具體 會(huì)對(duì)接口中的mouseClicked(MouseEvent e)、 mouseEntered(MouseEvent e)、 mousePressed(MouseEvent e)18 三個(gè) 方法進(jìn)行重 寫 ,實(shí)現(xiàn)相應(yīng)的業(yè)務(wù)邏輯。實(shí)現(xiàn)MouseMotionListener 接口 可以處理拖動(dòng) 鼠標(biāo) 和移動(dòng)鼠標(biāo)的 事件 。 在 Java Swing 中的諸多組件上都可以添加鼠標(biāo)事件的監(jiān)聽(tīng) 。在 Java 應(yīng)用程序中事件處理有很多種,在本游戲中主要用到鼠標(biāo)事件、鍵盤事件。目前, 在網(wǎng)絡(luò) 上有非常多的地方應(yīng)用到了 Applet 技術(shù) ,使得我們的網(wǎng)絡(luò)生活更加豐富 多彩 。 也 正是因?yàn)檫@個(gè)特點(diǎn), 使得 Java Applet 技術(shù)曾被廣泛的應(yīng)用在網(wǎng)頁(yè)技術(shù)。 用戶訪問(wèn) 到 JavaPowered 頁(yè)時(shí) , Java Applet 將會(huì) 被下載到 用戶 的計(jì)算機(jī)上并執(zhí)行,但是前提是 用戶 使用的瀏覽器必須支持 Java 語(yǔ)言。 它 可以產(chǎn)生豐富的 、 特殊的效果,能夠使我們的頁(yè)面看起來(lái)不再單一無(wú)趣,而是豐富多彩的。否則 , 它將會(huì)一直處于阻塞狀態(tài)。 當(dāng)某個(gè)線程請(qǐng)求一個(gè) 被 其它線程持有的內(nèi)置鎖時(shí),發(fā)出請(qǐng)求的線程就會(huì) 進(jìn)入鎖池等待狀態(tài), 直到 該 鎖資源被釋放。 內(nèi)置鎖為 互斥鎖, 即 線程 A 獲取到 鎖后,其他的所有線程如果還想獲取到該鎖,只有等線程 A 釋放鎖 資源, 在 該階段 這些 線程都將會(huì)進(jìn)入到鎖池等待的狀態(tài) , 只有獲得鎖資源,該線程才會(huì)重新進(jìn)入 可執(zhí)行 狀態(tài),等待 CPU 的 調(diào)用 。 當(dāng)程序 在退出 代碼 塊時(shí) 將會(huì) 釋放 這個(gè) 鎖 資源( 無(wú)論是通過(guò)正常路徑退出 代碼塊,還 是通過(guò)拋異常退出 ) 。 同步 代碼塊有兩部分組成:一部分是 公共 資源,放在大括號(hào)中 , 稱之為公共資源 ;一部分是標(biāo)識(shí)此為同步代碼塊的標(biāo) 志 符 (synchronized 關(guān)鍵字 )。 鎖機(jī)制 的 出現(xiàn)可以很方便的實(shí)現(xiàn)原子性 。 } 鎖機(jī)制 在 Java 編寫 的程序中, 有時(shí) 會(huì)出現(xiàn)多個(gè)線程并發(fā)訪問(wèn) 同一 數(shù)據(jù)的情況,進(jìn)而造成數(shù)據(jù)的不一致性 , 并 對(duì)程序的最終 結(jié)果 造成影響。 paint(goff)。 雙緩沖技術(shù)示意圖如 圖 53 所 示 : 圖 53 雙緩沖 技術(shù)示意圖 雙緩沖 技術(shù)相關(guān)代碼: public void update(Graphics g) { if (offScreenImage == null) { offScreenImage = (, )。 這樣在我 們 的動(dòng)畫窗口上面是顯示出來(lái) 就非常的流暢了 。 雙緩沖 技術(shù) 當(dāng)調(diào)用 repaint()方法會(huì)出現(xiàn)動(dòng)畫的閃爍,給 玩家 帶來(lái)不流暢的視覺(jué)感,那么如何來(lái)處理掉這種閃爍的效果呢?就是利用 java 的雙緩沖技術(shù) 。 。 。 重載: ,具有多個(gè)同名的方法 ,參數(shù)列表不同 (參數(shù)個(gè)數(shù)不同,參數(shù)的類型不同,參數(shù)的順序不同 (在參數(shù)類型不同的基礎(chǔ)上 )) 。 多態(tài)性 是 Java 語(yǔ)言的一大特性 。 本游戲中 ,核心實(shí)體類 ——勇士類、怪物類中擁有一些共有屬性,如生命值、攻擊力、防御力等,故抽象出父類 Stuff 類,封裝了共有屬性,降低了代碼的重復(fù)率 , 提高了編程效率。 Java 的這一特性深受廣大程序員的青睞 , 因?yàn)?它 提高 了 編寫 代碼的效率,降低了開(kāi)發(fā)的成本。通過(guò) 使用 這種 方式創(chuàng)建 出來(lái)的 新類,可以 使用父類中 訪問(wèn)權(quán)限允許的屬性及方法 , 與此同時(shí) ,新類中可以設(shè)定自己特有的屬性和方法。 繼承 繼承 是 Java 編程語(yǔ)言 的又一大特性 。 將那些 不14 該讓訪問(wèn)到的數(shù)據(jù)設(shè)為 private, 實(shí)現(xiàn)屬性 的私有化。 數(shù)據(jù)的封裝, 實(shí)現(xiàn)了將一個(gè)類中私有數(shù)據(jù)和 公有 數(shù)據(jù)的分離, 其他類可以 很清楚的看到自己可以訪問(wèn)的數(shù)據(jù), 降低了 復(fù)雜性。 這 就 是 所謂的封裝性。 } } 核心 技術(shù)運(yùn)用 封裝 Java類 將數(shù)據(jù) 和方法放在一起 , 并 為數(shù)據(jù)設(shè)定 private的訪問(wèn)權(quán)限,為方法設(shè) 定 public的訪問(wèn)權(quán)限。 = paramInt4。 = paramInt2。 Monster(String paramString, int paramInt1, int paramInt2, int paramInt3, int paramInt4, int paramInt5) { = paramString。 xy = paramPoint。 atk = paramInt2。 13 private DoorShake ds。 private Game game。 private int dir。 private int rkey。 //經(jīng)驗(yàn)值 private int ykey。 //防御力 private int money。 //生命值 private int atk。 效果 顯示如圖 52 所示 。 游戲 主界面 設(shè)計(jì) 主界面 主要 由兩部分 組成 ,分別是 “勇士”的 狀態(tài)信息欄和 游戲 過(guò)程界面。 在主菜單 主要借助于鼠標(biāo)操作。 11 5 程序 設(shè)計(jì) 與 實(shí)現(xiàn) 概要 設(shè)計(jì) 主菜單 設(shè)計(jì) 主菜單由背景 圖片 、 開(kāi)始游戲、讀取游戲、游戲說(shuō)明、退出游戲五部分組成。 可擴(kuò)展性 :作為游戲開(kāi)發(fā),一成不變 往往 會(huì)使玩家 產(chǎn)生 情感疲勞,所以 開(kāi)發(fā) 新的功能成為一種必要。 可用性 :能夠保證在兩周時(shí)間內(nèi),程序能夠正常運(yùn)行的比例 在 90%以上 。 性能 需求 計(jì)算機(jī) 配置: 安裝 java 環(huán)境 , 以上; 響應(yīng) 時(shí)間 : 每一次玩家觸發(fā)事件后,程序的響應(yīng)時(shí)間不得超過(guò) 5 秒 ; 數(shù)據(jù) 準(zhǔn)確性: 玩家 在游戲的過(guò)程中,數(shù)據(jù)不能出現(xiàn)錯(cuò)誤;玩家保存進(jìn)度后,讀取時(shí)數(shù)據(jù) 應(yīng)與保存時(shí)一致; 可靠性 和可用性需求 可靠性 :在玩家完整的進(jìn)行一次游戲的過(guò)程中,不會(huì)出現(xiàn)程序運(yùn)行錯(cuò)誤、閃退的情況。并且 不同場(chǎng)景 將有不一樣的音效 體驗(yàn) , 盡量 不讓玩家產(chǎn)生 厭倦 感。開(kāi)發(fā) 此 功能只是略去了上述的步驟,縮短了一定的時(shí)間。玩家可以 再次踏上拯救公主的 征程 。 10 但是 如果 玩家 是 根據(jù)對(duì) 怪物手冊(cè)及當(dāng)前局勢(shì) 的 分 析 后 , 覺(jué)得勇士 將無(wú)法擊敗魔王,自己 決定 退出當(dāng)前游戲 , 重新 開(kāi)始 游戲。 顯示“戰(zhàn)斗 失敗 ”, 代表勇士犧牲,程序會(huì)運(yùn)行 ()方法 ,游戲結(jié)束 ; 否則,勇士戰(zhàn)斗勝利,游戲繼續(xù)進(jìn)行。將 戰(zhàn)斗 的場(chǎng)面模擬的淋漓盡致。 當(dāng) 勇士在魔塔中遇到怪物的時(shí)候,程序會(huì)顯示一個(gè)戰(zhàn)斗畫面,畫面中展示了勇士和怪物的 生命值 、攻擊力 、 防御力 和 頭像。 戰(zhàn)斗畫面 顯示 該 游戲的 主線 是 打敗所有 的怪物,戰(zhàn)勝魔王 , 最后 營(yíng)救 出 美麗的 公主。 當(dāng)玩家 需要保存 自己 在 游戲中的數(shù)據(jù)時(shí) 時(shí), 只需 按下 鍵盤 上的 S 鍵 ,程序會(huì)通過(guò)數(shù)據(jù)輸入輸出流,將必要的數(shù)據(jù) 寫出到 外部文件中 ;當(dāng)玩家 想要繼續(xù) 游戲 的 時(shí)候, 可以 通過(guò)兩種方式 恢復(fù) 游戲數(shù)據(jù): 游戲菜單界面,通過(guò)鼠標(biāo)點(diǎn)擊 “ 讀取進(jìn)度 ” 即可; 入 游戲后, 按下 鍵盤 上的 A 鍵 ,會(huì)將游戲進(jìn)度恢復(fù)至上次保存的進(jìn)度。 此時(shí) 就需要有一個(gè)功能能夠保證玩家的游戲數(shù)據(jù)不會(huì)丟失。 否則會(huì)破壞整個(gè)游戲的 順利 運(yùn)行。 得到風(fēng)之羅盤 后, 玩家 可以按下 鍵盤 上的 Z 鍵 , 然后在游戲界面上就9 會(huì)顯示玩家當(dāng)前 所 去過(guò)的 所有樓層 ,通過(guò)鼠標(biāo)點(diǎn)擊,勇士可以直接到達(dá)指定 樓層 。從而很大程度上減少了勇士穿梭于 各個(gè)樓層的時(shí)間 ,讓 玩家 體驗(yàn) 到 瞬間移動(dòng) 的快感。 樓層跳轉(zhuǎn) 由于 整個(gè)游戲的樓層數(shù)較多,當(dāng) 玩家 想要從高樓層 去 往低樓層 時(shí) ,將會(huì)是一件無(wú)聊而又費(fèi)時(shí)的事情。 游戲 中的商店交易,不僅僅 只 體現(xiàn)在 “怪物商店”,諸如“ 鑰匙商人 ” 、 “經(jīng)驗(yàn) 老人 ”也 具有類似的功能。 而 商店交易又分為兩種:一 是通過(guò) 金幣購(gòu)買 、 二是通過(guò)經(jīng)驗(yàn)值兌換。 商店交易 游戲 中玩家提升屬性的方法有多 種 :獲取道具提升、獲得 NPC 的 幫助、商店交易。 當(dāng) 勇士 獲得藏在 魔塔 中 的怪物手冊(cè)后,通過(guò)按 X 鍵 , 可以 顯示出當(dāng)前樓層 所有 怪物的信息,主要包括 怪物 名、生命值、 攻擊力 、防御力、 金幣 值、經(jīng)驗(yàn)值、 消耗 值。由于 每一 個(gè)怪物 的 生命值、攻擊力、防御力的不同,對(duì)玩家的判斷及策略造成影響, 所以 開(kāi)發(fā) 出 此功能 , 用來(lái) 顯示當(dāng)前樓層 所有怪物 的屬性值信息,甚至還可以顯示出 勇士 與怪物戰(zhàn)斗將會(huì)消耗的生命值。 在 該對(duì)象 添加 了 KeyListener 監(jiān)聽(tīng)器 ,當(dāng)按 space 鍵時(shí), 實(shí)現(xiàn) 雙方交流的過(guò)程。 功能結(jié)構(gòu)如圖 41 所示 : 圖 41 功能結(jié)構(gòu)圖 與 NPC 對(duì)話 在本次 設(shè)計(jì)的 游戲 中, 在 不同 的情景下 可能 會(huì)出現(xiàn)相應(yīng)的 非玩家 角色 ( NPC) , 他的出現(xiàn)主要是 幫助玩家快速有效的 沿著主線進(jìn)展,例如在游戲剛開(kāi)始 出現(xiàn) 的 “ 仙子 ” ,她 就會(huì)通過(guò)對(duì)話的形式告訴 “勇士”一些 游戲 的背景 信息 和 游戲主線方向信息等 , 引領(lǐng)玩家 進(jìn)入下一個(gè)游戲階段 。 在 游戲 中,勇 士通過(guò) 擊殺怪物,獲取金幣和經(jīng)驗(yàn) , 玩家 可以在勇士商店 或者 經(jīng)驗(yàn)老人那里 使用金幣和經(jīng)驗(yàn) ,提升勇士的 生命值 、攻擊 力、 防御 力 。 這位武功 高強(qiáng)的勇士 手持 長(zhǎng)劍進(jìn)入滿是魔法師的魔塔之中, 營(yíng)救 美麗的公主 。 國(guó)王 知道后,十分的 氣憤 ,隨后下重金招募了諸多勇士。 總之 , Eclipse 是 程序員開(kāi)發(fā)軟件
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1