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

正文內(nèi)容

j2me拆房子手機游戲的設(shè)計與開發(fā)(編輯修改稿)

2025-01-12 10:32 本頁面
 

【文章內(nèi)容簡介】 MIDP 應(yīng)用程序的語義和如何控制應(yīng)用程序)。 用戶界面支持。 網(wǎng)絡(luò)支持。 持久化存儲支持。 聲音。 2D游戲。、 通過 HTTPS 和安全套接字的端到端的安全性。 MIDlet 簽名模型提供的附加安全性。 應(yīng)用程序的遞送和安裝。 其他類如定時器類和異常類。 MIDP 范圍: 一些功能被認(rèn)為超出了 MIDP 的范圍,其中包括: API:需要再次強調(diào) 的是, MIDP API 的主要功能是支持開發(fā)應(yīng)用程序,而不是開發(fā)系統(tǒng)級程序。因此像能源管理或語言壓縮等底層的系統(tǒng)API超出了 MIDP 的范圍。 :除了 CLDC 所提供的安全保護以外, MIDP 沒有提供額外的底層安全保護措施。 新特性 2021 年 11月, SUN 公司又發(fā)布了 。它對設(shè)備的內(nèi)存資源和處理能力的要求較 要高,但 也為應(yīng)用開發(fā)者提供了更方便、更豐富多彩的軟件包,主要增加了游戲接口的實現(xiàn)、聲音輸出接口的實現(xiàn)、安全網(wǎng)絡(luò)機制的實現(xiàn)。 的這 些特性將使基于移動設(shè)備 Java 應(yīng)用具有更加廣闊的前景。 根據(jù)與 中軟件包的對照,總結(jié) 的新增特性如下: 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 10 頁 共 46 頁 用戶界面擴展,例如彈出窗口,可激活的字符串和圖像等。 對屏幕布局的更好控制,包括可以對 Form 上的 Item 的大小進(jìn)行控制。 可以自定義 Form Item,應(yīng)用不再受限于 中的幾種基本的 Form,而可以自己使用 Java 實現(xiàn)新的類型。 支持簡單的聲音回放, 設(shè)備必須支持 MMAPI 的一個功能子集。當(dāng)然廠商也可以支持完整的 MMAPI。 新引入的 Sprite API 簡 化了圖形應(yīng)用,特別適合游戲的開發(fā)。 支持 HTTPS、 TCP/IP 和 UDP,以及串口通信。 MIDlet 可以被設(shè)置成可由外部事件激活,該技術(shù)被稱為 push architecture。 所有的 設(shè)備必須支持使用 OTA 獲取 MIDlet 套件,實際上,大部分 設(shè)備就支持 OTA 下載了,只不過此項特性并非強制性的。 支持對 MIDlet 進(jìn)行數(shù)字簽名。此簽名作為其內(nèi)容的加密摘要被一起提供。此特性提供了一個健壯的方案,使得驗證 MIDlet 的發(fā)布者成為可能。設(shè)備的使用者可以根據(jù)這個信息來選擇是否賦予 MIDlet 對運行環(huán)境的更多訪問權(quán)限。 移動信息設(shè)備軟件體系結(jié)構(gòu) 圖 移動信息設(shè)備軟件體系結(jié)構(gòu)圖 J2ME API 簡介 MIDP 相對于 來說,最大的變化就是新添加了用于支持游戲的 API,它們被放在 包中。游戲 API 包提供了一系列針對 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 11 頁 共 46 頁 無線設(shè)備 的游戲開發(fā)類。由于無線設(shè)備僅有有限的計算能力,因此許多 API 的目的在于提高 Java 游戲的性能,并且把原來很多需要手動編寫的代碼如屏幕雙緩沖、圖像剪裁等都交給 API 間接調(diào)用本地代碼來實現(xiàn)。各廠家有相當(dāng)大的自由來優(yōu)化它們。 使用了 MIDP 的低級圖形類接口( Graphics, Image,等等)。整個 game 包僅有 5 個 Class: GameCanvas 這個類是 LCDUI 的 Canvas 類的子類,為游戲提供了基本的“屏幕”功能。除了從 Canvas 繼承下來的方法外,這個類還提供了游戲?qū)S玫墓δ?,如查詢?dāng)前游戲 鍵狀態(tài)的能力,同步圖像輸出;這些功能簡化了游戲開發(fā)并提高了性能。 Layer Layer 類代表游戲中的一個可視化元素,例如 Sprite 或 TiledLayer 是它的子類;這個抽象類搭好了層 (Layer)的基本框架并提供了一些基本的屬性,如位置,大小,可視與否。出于優(yōu)化的考慮,不允許直接產(chǎn)生 Layer 的子類(不能包外繼承)。 LayerManager 對于有著許多 Layer 的游戲而言, LayerManager 通過實現(xiàn)分層次的自動渲染,從而簡化了游戲開發(fā)。它允許開發(fā)者設(shè)置一個可視窗口 (View Window),表 示用戶在游戲中可見的窗口; LayerManager 自動渲染游戲中的 Layer,從而實現(xiàn)期望的視圖效果。 Sprite Sprite 又稱“精靈”,也是一種 Layer,可以顯示一幀或多幀的連續(xù)圖像。但所有的幀都是相同大小的,并且由一個 Image 對象提供。 Sprite 通過循環(huán)顯示每一幀,可以實現(xiàn)任意順序的動畫; Sprite 類還提供了許多變換(翻轉(zhuǎn)和旋轉(zhuǎn))模式和碰撞檢測方法,能大大簡化游戲邏輯的實現(xiàn)。 TiledLayer TiledLayer 又稱“磚塊”,這個類允許開發(fā)者在不必使用非常大的 Image 對象的情況下 創(chuàng)建一個大的圖像內(nèi)容。 TiledLayer 有許多單元格構(gòu)成,每個單元格能顯示由一個單一 Image 對象提供的一組貼圖中的某一個貼圖。單元格也能被動畫貼圖填充,動畫貼圖的內(nèi)容能非常迅速地變化;這個功能對于動畫顯示非常大的一組 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 12 頁 共 46 頁 單元格非常有用,例如一個充滿水的動態(tài)區(qū)域。 在游戲中,某些方法如果改變了 Layer, LayerManager, Sprite 和 TiledLayer對象的狀態(tài),通常并不能立刻顯示出視覺變化。因為這些狀態(tài)僅僅存儲在對象里,只有當(dāng)隨后調(diào)用我們自己的 paint()方法時才會更新顯示。這種模式非常適合游 戲程序,因為在一個游戲循環(huán)中,一些對象的狀態(tài)會更新,在每個循環(huán)的最后,整個屏幕才會被重繪?;谳喸円彩乾F(xiàn)在視頻游戲的基本結(jié)構(gòu)。 2. GameCanvas 的使用 GameCanvas 類提供了基本的游戲用戶接口。除了從 Canvas 繼承下來的特性(命令,輸入事件等)以外,它還提供了專門針對游戲的功能,比如后備屏幕緩沖和鍵盤狀態(tài)查詢的能力。 每個 GameCanvas 實例都會有一個為之創(chuàng)建的專用的緩沖區(qū)。因為每個GameCanvas 實例都會有一個唯一的緩沖區(qū)??梢詮?GameCanvas 實例獲得其對應(yīng)的Graphics 對象,而且,只有對 Graphics 對象操作,才會修改緩沖區(qū)的內(nèi)容。外部資源如其他的 MIDlet 或者系統(tǒng)級的通知都不會導(dǎo)致緩沖區(qū)內(nèi)容被修改。該緩沖區(qū)在初始化時被填充為白色。 緩沖區(qū)大小被設(shè)置為 GameCanvas 的最大尺度。然而,當(dāng)請求填充時,可被填充的區(qū)域大小會受限于當(dāng)前 GameCanvas 的尺度,一個存在的 Ticker, Command 等等都會影響到 GameCanvas 的大小。 GameCanvas 的當(dāng)前大小可以通過調(diào)用 getWidth和 getHeight 獲得。 一個游戲可能提供自己的線程來運 行游戲循環(huán)。一個典型的循環(huán)將檢查輸入,實現(xiàn)游戲邏輯,然后渲染更新后的用戶界面。以下代碼演示了一個典型的游戲循環(huán)的結(jié)構(gòu): // 從后備屏幕緩沖獲得 Graphics 對象 Graphics g = getGraphics()。 while (true) ...{ // 檢查用戶輸入并更新位置,如果有需要 int keyState = getKeyStates()。 if ((keyState amp。 LEFT_PRESSED) != 0) { (1, 0)。 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 13 頁 共 46 頁 } else if ((keyState amp。 RIGHT_PRESSED) != 0) { (1, 0)。 } // 將背景清除成白色 (0xFFFFFF)。 (0,0,getWidth(), getHeight())。 // 繪制 Sprite(精靈) (g)。 // 輸出后備緩沖區(qū)的內(nèi)容 flushGraphics()。 } 要創(chuàng)建一個新 的 GameCanvas 實例,只能通過繼承并調(diào)用父類的構(gòu)造函數(shù): protected GameCanvas(boolean suppressKeyEvents), 這將使為 GameCanvas 準(zhǔn)備的一個新的緩沖區(qū)也被創(chuàng)建并在初始化時被填充為白色。 為了在 GameCanvas 上繪圖,首先要獲得 Graphics 對象來渲染 GameCanvas: protected Graphics getGraphics() 返回的 Graphics 對象將用于渲染屬于這個 GameCanvas 的后備屏幕緩沖區(qū)(offscreen buffer) 。 但 是 渲 染 結(jié) 果 不 會 立 刻 顯 示 出 來 , 直 到 調(diào) 用flushGraphics()方法;輸出緩沖區(qū)的內(nèi)容也不會改變緩沖區(qū)的內(nèi)容,即輸出操作不會清除緩沖區(qū)的像素。 每次調(diào)用這個方法時,都會創(chuàng)建一個新的 Graphics對象;對于每個 GameCanvas實例,獲得的多個 Graphics 對象都將渲染同一個后備屏幕緩沖區(qū)。因此,有必要在游戲啟動前獲得并存儲 Graphics 對象,以便游戲運行時能反復(fù)使用。 剛創(chuàng)建的 Graphics 對象有以下屬性: 1 渲染目標(biāo)是這個 GameCanvas 的緩沖區(qū); 2 渲染區(qū)域覆蓋整個緩沖區(qū); 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 14 頁 共 46 頁 3 當(dāng)前顏色是黑色 (black); 4 字體和調(diào)用 ()返回的相同; 5 繪圖模式為 SOLID; 6 坐標(biāo)系統(tǒng)的原點定位在緩沖區(qū)的左上角。 在完成了繪圖操作后,可以使用 flushGraphics()方法將后備屏幕緩沖區(qū)的內(nèi)容輸出到顯示屏上。輸出區(qū)域的大小與 GameCanvas 的大小相同。輸出操作不會改變后備屏幕緩沖區(qū)的內(nèi)容。這個方法會直到輸出操作完成后才返回,因此,當(dāng)這個方法返回時,應(yīng)用程序可以立刻對緩沖區(qū)進(jìn)行下 一幀的渲染。 如果 GameCanvas 當(dāng)前沒有被顯示,或者系統(tǒng)忙而不能執(zhí)行輸出請求,這個方法不做任何事就立刻返回。 如果需要,開發(fā)者可以隨時調(diào)用 getKeyStates 方法來查詢鍵的狀態(tài)。getKeyStates()獲取游戲的物理鍵狀態(tài)。返回值的每個比特位都表示設(shè)備上的一個特定的鍵。如果一個鍵對應(yīng)的比特位的值為 1,表示該鍵當(dāng)前被按下,或者自上次調(diào)用此方法后到現(xiàn)在,至少被按下過一次。如果一個鍵對應(yīng)的比特位的值為 0,表示該鍵當(dāng)前未被按下,并且自上次調(diào)用此方法后到現(xiàn)在從未被按下過。這種“閉鎖行為 (latching behavior)”保證一個快速的按鍵和釋放總是能夠在游戲循環(huán)中被捕獲,不管循環(huán)有多慢。下面是獲取游戲按鍵的示例: // 獲得鍵的狀態(tài)并存儲 int keyState = getKeyStates()。 if ((keyState amp。 LEFT_KEY) != 0) ...{ positionX。 } else if ((keyState amp。 RIGHT_KEY) != 0) ...{ positionX++。 } 調(diào)用這個方法的副作用是不能及時清除過期的狀態(tài)。在一個 getKeyStates 調(diào)用后如果緊接著另一個調(diào)用,鍵的當(dāng)前狀態(tài)將取決于系統(tǒng)是否已經(jīng)清除了上一次調(diào)用后的結(jié)果。 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 15 頁 共 46 頁 某些設(shè)備可能無法直接訪問鍵盤硬件,因此,這個方法可能是通過監(jiān)視鍵的按下和釋放事件來實現(xiàn)的,這會導(dǎo)致 getKeyStates 可能滯后于當(dāng)前物理鍵的狀態(tài),因為時延取決于每個設(shè)備的性能。某些設(shè)備還可能沒有探測多個鍵同時按下的能力。 請注意,除非 GameCanvas 當(dāng)前可見(通過調(diào)用 ()方法),否則此方法返回 0。一旦 GameCanvas 變?yōu)榭梢?,將初始化所有鍵為未按下狀態(tài) (0)。 中北大學(xué) 2021 屆畢業(yè)設(shè)計說明書 第 16 頁 共 46 頁 3 手機游戲開發(fā)過程 拆房子游戲的規(guī)則簡介 游戲開始,由玩家扮演的拆房工人要盡量多地將該關(guān)卡內(nèi)的所有墻塊敲碎,較高樓層的墻塊可借助梯子來幫忙,在規(guī)定的時間內(nèi),敲夠一定數(shù)量的墻塊后,玩家順利過關(guān)。超出規(guī)定時間,玩家失敗,游戲結(jié)束。在拆房的過程中,如果玩家被NPC逮住,也算玩家失敗。 開發(fā)環(huán)境 操作系統(tǒng) : Microsoft Windows Vista 程序語言: J2me 開發(fā)包: Sun Java (TM) Wireless Toolkit for CLDC Eclipse SDK Version: Java(TM) 2 Standard Edition( ) IDE: eclipse 關(guān)于本作品的開發(fā)環(huán)境,整合 J2DK+Eclipse+NLpackeclipse + Eclipseme + Wireless Tool Kit,其安裝配置過程為另一方面的內(nèi)容也比較簡單,在此不再贅述。可以這么說, JDK提供了虛擬機來運行應(yīng) 用程序,而 WTK提供了仿真器, Ecl
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1