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

正文內容

基于java的游戲設計—喜洋洋大戰(zhàn)灰太狼(編輯修改稿)

2025-06-10 20:22 本頁面
 

【文章內容簡介】 家時,如果它立即轉向,將不會對玩家發(fā)射射向他的子彈,就不構成任何威脅,當然,也不能永遠不轉向。本程序設置為:當碰撞到 邊界時立即轉向 。另外, 灰太狼發(fā)射子彈的 間隔和 行走的速度 都由隨機數決定。 喜羊羊與灰太狼 之間由以上道理也不會發(fā)生重疊,但當某 灰太狼正從右 方生成而正巧有另一 灰太狼其生成點處,這將導致不可避免的重合,這是允許的。本程序中并未使用過多復雜的人工智能算 法,如有時間,將可能再此方面加以完善。 子彈的運行和控制 每一個 灰太狼和喜洋洋 都有他自己的一顆子彈,這顆子彈在任何一 個灰太狼和喜洋洋被構造時就一直存在,直至此 灰太狼和喜洋洋 生命的結束,子彈的再次 生成 只是將屏幕上暫時掩蓋的圖象重新置于 灰太狼或喜羊羊的 恰當位置,并使其顯示出來,這與現實中每個子彈都是單獨的個體有所不同。 子彈所需要完成的任務有: 它是一個 不斷重畫 的對象。在其出現在屏幕上的運行周期中,每一步都需要循環(huán)檢測以下條件: 是否與某 灰太狼或喜羊羊發(fā) 生了碰撞,即擊中了 該灰太狼或喜羊羊 。子彈使用的 是 矩形區(qū)域 的碰撞檢測, 當 子彈接觸到物體時就碰撞的真值。分為兩種情況,如果此子彈來自于敵方,將只檢測玩家 喜羊羊 ,因為敵方之間的子彈必須允許可以透明的穿過,以保證不會在敵人之間發(fā)生子彈的消減。如果來自玩家,則每一步需掃描所有的 灰太狼 ,檢查是否發(fā)生碰撞,這可能會花費不少的 CPU 時間。 其次,子彈之間需要檢測是否碰撞。敵人之間顯然,如上已經提過,不需要檢測,但敵人與玩家之間應當可以互相消除子彈,以便在狹窄的路口中仍有存活的機會。玩家的子彈需要在每一步檢測所有敵人的子彈的運行狀態(tài)。這樣較多的運算也將不可避免的耗費大量 CPU時間。 13 子彈對不同障礙物將有不同的反映。對于游戲中設置的獎品,子彈可以透明的通過,對于敵人則不可以,會發(fā)生爆炸。 內存使用的最優(yōu) 化 通常在 MIDP 應用程序的手機執(zhí)行環(huán)境中,所牽涉的內存有下列三種: ﹡應用程序存儲內存 ﹡ RecordStore 存儲內存 ﹡執(zhí)行時期內存 (Java Heap) 其中前兩種是持久性的內存,關閉電源后還能保持數據的正確性,通常這兩種內存所能存儲的容量是合并計算的,這個上限對每種手機都不一樣,大部分在一兩百 KB 內。在這樣的情況下需要在不影響原有功能的情況下適當的縮減 JAR 文件的大小,除了可以克服內存空間的限制外,也能大幅度縮短下載的時間(費用也降低了),勢必會有更多的人愿意下載所開發(fā)的程序。其方法有: 第一,就是盡量縮短命名的長度。在應用程序內,對于所建立的類、接口、方法及變量名而言,都需要賦予一個識別的名稱,所命名的名稱每多一個字符就會在類文件內多產生一個字節(jié),對于一個較復雜的應用程序而言就會增加為數不小的數據量。所有這些可以借助混淆器來幫助實現。 第二是減少復雜的程序結構,為一些共同的行為建立一個抽象類 (Abstract Class) 來表示繼承的子類的共通性。 第三是減少圖形數據的大小。將 PNG 格式的小分辨率圖象合并在一張大的高分辨率圖象中,由于減少了 chunks,將比合并前的總大小減少許多。 混淆器 (Obfuscator)的使用 Java 語言并沒有完全編譯成二進制可執(zhí)行文件,編譯出的 .class 文件是一種介于源程序和二進制之間的一中基于半解釋的字節(jié)碼,需要虛擬機來執(zhí)行。它包括了所有的信息。然而這樣會導致 .class 很容易被反編譯為源代碼,從而不能保護作者的知識成果。目前流行的如 decode,JAD 等反編譯工具可以以很快的速度生成源文件。如果不 加以施行有效的措施,將造成嚴重的后果。 由此引入混淆器的概念。混淆器將代碼中的所有變量、函數、類的名稱變?yōu)楹喍痰挠⑽淖帜复?,如果缺乏相應的函數名指示和程序注釋,即使被反編譯,也將難以閱讀。 混淆器的作用不僅僅是保護代碼,它也有精簡編譯后程序大小的作用。由于以上介紹的減少變量、函數的命名長度的關系,編譯后也會從 .class 文件中減少這些冗余的信息。混淆后,體積大約能減少 25%,這對當前費用較貴的無線網絡傳輸是有一定意義的。 為了能與各種 IDE 集成,就像 Java2 SDK 一樣,混淆器采用命令行參數的形 式,以便可 14 被其調用。目前流行的 Obfuscator 有 RetroGuard 等。 三 概要設計 本程序需解決的有關技術問題 1. 游戲程序是一項精度要求很高的程序系統(tǒng),因為其代碼利用率很高。一個實時運行的最終作品,每秒都會運行成千上萬行程序,繪圖事件、鍵盤事件都會以極高的頻率在后臺等待響應,若有絲毫的差別都將很容易導致程序在運行不久后可能出現嚴重錯誤,甚至死循環(huán)。因此,其邏輯設計應當相當嚴謹,需將所有可能發(fā)生的事件及意外情況考慮在設計中。 2. 游戲中為了美觀,適用性強,可能需要采用外部文件引入 的圖片貼圖,有關貼圖, 在程序中使用了 update(Graphics g)方法 ,使得解決靜態(tài)或動態(tài)、畫面背景、屏幕刷新的雙緩沖等都有較好的解決方案。 3. 玩家 可以通過鍵盤響應事件控制,但敵方則因為是自動運行,就需要有一定其一定的智能性;同時,出現在屏幕上的敵方可能會有較多的數量,這需要為敵方 設置一個控制器 (隨機數 )讓其獨立運行。 游戲的整個過程 需要進行適當的設置,以免游戲過于簡單,單調。 4. 對于雙方發(fā)出的子彈的控制也需要對其跟蹤控制,子彈需要處在獨立的線程中。敵方子彈僅需要掃描 玩家 (喜羊羊 ),而 玩家 (喜羊羊 )需要在每一步掃描所有的 怪物 。這需要對所有的對象有較好的控制。另外,子彈在運行過程中也需要實時掃描是否碰撞到了相關障礙物或屏幕邊界。 5. 雙方在前進時也需要考慮到是否碰撞到相關物體或對方,以免重疊運行,造成許多物理上不可能的情況,缺乏真實感。每一次刷新頁面、每前進一步都需要將所有的周圍環(huán)境都進行掃描。 6. 游戲的結束、開始、動態(tài)信息畫面作為構成一個完美程序都是必不可少的重要部分。良好的用戶界面更是吸引用戶的硬指標,相關的美術構圖也需要有一定的考慮。 7. 游戲的地圖不可能通過繪圖來解決。否 則,不僅難于控制和處理過多的元素,也會因過多的大型圖片而不能限制程序的大小,失去手機上程序的原則和 Java 的優(yōu)勢。同時,地圖關卡不宜保存在手機有限的內存中,而最好采取外部文件的讀入讀出方法。 8. 用戶運行游戲時需要有分數記錄的可能。如何采用合理的記分標準,需要進行適當的設計。記錄分數的存儲方式也需要有較好的解決方案。手機中由于處理器和內存空間、存儲空間都十分有限,其數據庫系統(tǒng)與普通 PC 大相徑庭。其數據庫結構較為簡單,被稱之為 RMS 系統(tǒng)。 9. Java 是基于虛擬機的半解釋型編譯系統(tǒng),其執(zhí)行效率較 C++等完全編譯后的程序會低很多,程序如果不進行精簡和優(yōu)化,將可能導致運行的不流暢。除開發(fā)過程中對結構上的控制、變量的使用、算法的優(yōu)化等優(yōu)化外,還可以使用混淆器 (Obfuscator)進行程序打包后的優(yōu)化。 15 本程序的最終 目標 利用 java 的聲音技術和線程技術開發(fā)制作一個喜羊羊大戰(zhàn)灰太狼的小游戲。 游戲中玩家可以通過鍵盤控制游戲 中的喜羊羊而進行各種操作:發(fā)射子彈打怪物(按空格鍵發(fā)射普通子彈,按 B 鍵發(fā)射“大超”),八個不同的運動方向(上,下,左,右,斜上,斜下,斜左,斜右), 當玩家死亡時, 可以按 F2 鍵原地復活及在游戲過程中,可按 F1鍵打開游戲幫助 ;玩家在游戲過程中可通過殺怪獲得積分,當積分達到一定程度,玩家便可發(fā)射“大超”,當玩家打死小怪之后,就有可能“吃”到“食物”,該食物分為 四 種:加血,加分,加人,發(fā)射威力較大的子彈。 當玩家殺死怪物達到一定數量或所及的分達到一定數量時,便出現 Boss,當玩家殺死 Boss 時,便可升級。如果玩家在游戲過程中失敗 3 次,便結束游戲。(此時可按 F2 鍵復活)。 游戲規(guī)則: 1. 玩家通過鍵盤控制 喜羊羊在游戲區(qū)中運動。 2. 當喜羊羊碰到怪物子彈或怪物時,便減少血量;當喜羊羊的 血量減到為零時, 便 死亡(且減少喜羊羊人數),當喜羊羊的人數減至零時,游戲便結束。 實現功能: 1. 游戲功能:玩家可以在游戲區(qū)中控制喜羊羊殺怪物。 2. 狀態(tài)提示功能:玩家能夠在游戲過程中了解喜羊羊血量,得分,等級以及喜羊羊的剩余人數。 3. 游戲控制:玩家可以通過游戲控制來復活喜羊羊,繼續(xù)游戲或暫停游戲。 運行環(huán)境 正確安裝配置了 以上 的 Windows 和 Linux 的 PC 機都可正常運行此游戲。 總體設計 整個游戲設計工作中包括:游戲設計思路,游戲結構以及游戲整體流程。 游戲設計思路 1. 有一個起始畫面,玩家可進入游戲。 2. 玩家 通過鍵盤可實現游戲操作。 3. 玩家通過殺怪獲取積分。 4. 玩家通過方向鍵來改變喜羊羊的移動方向。 5. 當喜羊羊的剩余人數為零時,游戲結束。 6. 當游戲分數達到一定程度時,就可進入下一級游戲。 游戲結構 16 該游戲采用面向對象的設計模式,賦予游戲中的所有物體對象的概念和屬性。運行程序后進入游戲,在開始游戲后將先從外部文件載入實物的圖像文件,對背景的所有物 體進行繪圖。在主程序運行的線程中,畫面刷新將 以 一定 的頻率對屏幕重繪,實時反映整個游戲的進行狀態(tài)。 類的設計 為了實現實現上述功能,就要對游戲程序進行結構設計,游戲整體包括五個類,分別是: GameStart 類, BaoPo 類, person 類, ZiDan 類, AePlayWave 類,這五個類依照面向對象的設計原則 ,他們都是游戲中的對象。 游戲開始后,先繪制屏幕,并將各個對象實例化。在主程序運行的過程中 ,游戲中的所有對象都應該運行在同一個線程下。 對于屏幕重繪, Graphics 類提供了簡單的繪圖功能。它具有 24 位深度色彩的繪制能力,以三原色分別各占一個字節(jié)表示其顏色。程序只能在 paint()函數中使用 Graphics 繪制 。 游戲 設計 的 相關 流程 本游戲的 相關邏輯處理如下: 17 開始 小怪殺完了嗎 Boss 死了嗎? 進入下一關 小怪沒有死完 繼續(xù)消滅敵人 玩家是否死亡 顯示 GameOver 重繪屏幕 內存回收 結束 Y N Y N N Y Y N 圖 44GameStart 類主要 邏輯處理 流程圖 開始 是否出界 玩家的子彈嗎 是否子彈碰撞 是否擊中任何敵人 敵人的子彈嗎? 是否與玩家的子彈碰撞 是否擊中玩家 結束 Y Y N 子彈抵消 Y 消除敵人 Y N N N N N 消除玩家 子彈抵消 圖 49 子彈運行的主要功能流程圖 Y Y Y 18 四 類的設計 設計 GameStart 類 該類是主程序類,主要實現按鍵控制和游戲業(yè)務邏輯處理。 ZiDan 類 子彈類,該類是為喜羊羊和灰太狼創(chuàng)造子彈。 PerSon 類 人物類,該類是創(chuàng)造怪物。 BaoPo 類 創(chuàng)造爆炸效果(如玩家子彈擊中怪物時所產生的爆炸效果)。 AePlayWave 類 玩家游戲過程中播放的各種聲音。 五 詳細 設計 View 包 GameStart 類 該類包含了游戲所要實現 功能的所有 按鍵 控制和 游戲業(yè)務 邏輯 處理。 該類通過繼承 Frame 類和使用多線程不斷重畫來繪制 游戲界面 背景圖片 及喜羊羊,灰太狼,子彈 , 屏幕輸出信息 的繪制 , 以及添加鍵盤監(jiān)聽( addKeyListenter()),從而實現按鍵事件,處理 玩家 所觸發(fā)的事件。游戲業(yè)務處理邏輯包括: 喜羊羊的子彈是否擊中灰太狼,灰太狼是否擊中喜羊羊 , 喜羊羊通過殺灰太狼或吃取食物獲得積分,當喜羊羊吃取不同食物時,可以獲得不同 的技能,通過殺 Boss 游戲升級的控制。 處理按鍵事件:根據按鍵的不同,發(fā)出不同的指令。 上鍵:喜羊羊向
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1