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

正文內(nèi)容

基于java的手機(jī)程序設(shè)計(jì)(編輯修改稿)

2025-07-24 17:42 本頁面
 

【文章內(nèi)容簡介】 鍵 發(fā)射飛彈左側(cè)功能鍵 暫停右側(cè)功能鍵 返回主菜單 表 24 戰(zhàn)斗界面中的按鍵說明 功能設(shè)計(jì)在設(shè)計(jì)手機(jī)游戲的菜單是,要充分考慮設(shè)備的原有操作習(xí)慣,比如 NOKIA的手機(jī)用戶會(huì)使用左軟鍵作為確定,右軟鍵作為返回菜單。而 MOTO 的手機(jī)用戶右軟鍵作為確定,左軟鍵作為返回菜單。中國移動(dòng)的百寶箱業(yè)務(wù)的開發(fā)規(guī)范中對(duì)游戲的按鍵進(jìn)行了要求。在底層屏幕類中,核心的方法是 paint(),keyPressed()和 run()這三個(gè)方法,分別用來控制屏幕的繪制、按鍵的處理和游戲邏輯的處理。這 3 個(gè)方法的工作是在一個(gè)狀態(tài)變量 gameState 協(xié)調(diào)下完成的。gameState 存儲(chǔ)了當(dāng)前整個(gè)系統(tǒng)的狀態(tài),當(dāng)游戲加載時(shí),按鍵控制快速跳過畫面,run()方法控制往下,當(dāng)顯示菜單時(shí) keyPressed()方法所接受的按鍵用來改變菜單的狀態(tài)變量 menuState;當(dāng)進(jìn)行游戲時(shí),用戶按鍵控制的就是主角的移動(dòng)而不是修改菜單選項(xiàng)。run()方法測(cè)試對(duì)游戲的所有邏輯數(shù)據(jù)進(jìn)行加工和計(jì)算,計(jì)算完成之后,在 paint()方法中根據(jù)計(jì)算的結(jié)果再進(jìn)行繪制,下面代碼是 paint()方法的核心結(jié)構(gòu):public void paint(Graphics g) {(0, 0, SCREENWIDTH, SCREENHEIGHT)。switch (gameState) {case PAUSE: //暫停狀態(tài)case MENU: //菜單狀態(tài)圖 23 菜單界面學(xué)士學(xué)位論文 基于 JAVA 的手機(jī)程序設(shè)計(jì)9switch () {case 0://載入Logo圖片break。case 1://載入第二幅Logo圖片break。case 2://繪制菜單break。 …………………break。case LOAD: //游戲加載狀態(tài)break。case break。case break。} //將脫屏緩沖區(qū)的內(nèi)容繪制到屏幕(im, 0, 0, 0)。}系統(tǒng)功能實(shí)現(xiàn) 通過雙緩沖技術(shù)實(shí)現(xiàn)動(dòng)畫在底層屏幕的 paint()方法中要執(zhí)行大量的圖形繪制,而在繪制的過程中手機(jī)屏幕又要顯示,很可能當(dāng)前幀沒有繪制完成下一幀的繪制任務(wù)就已經(jīng)開始,這樣就會(huì)導(dǎo)致屏幕的閃爍。避免閃爍的方法是使用圖像的雙緩沖技術(shù),定義一個(gè)完全脫離屏幕的緩沖畫布,在緩沖畫布繪制所有內(nèi)容,當(dāng)繪制完成時(shí)再將緩沖畫布中的所有像素信息整個(gè)貼到當(dāng)前手機(jī)屏幕上,在 J2ME 中可以使用Image 類創(chuàng)建一個(gè)可修改的緩沖畫面,代碼如下: Image im = (SCREENWIDTH, SCREENHEIGHT)。 //創(chuàng)建脫屏畫布 Graphics offG = ()。 // 脫屏畫筆 將所有畫面都繪制在 im 上,然后將 im 畫布在貼到當(dāng)前畫面上。 游戲菜單的繪制菜單背景的靜態(tài)繪制:直接在離屏畫布上繪制靜態(tài)圖片,重新繪制離屏畫布的大小,如果背景圖片沒有加載到,則將背景用黑色代替。學(xué)士學(xué)位論文 基于 JAVA 的手機(jī)程序設(shè)計(jì)10菜單選項(xiàng)的繪制:本游戲的菜單的所有選項(xiàng)的界面都是通過圖片加載所實(shí)現(xiàn)的,如果每個(gè)選項(xiàng)都把圖片作為單獨(dú)的一個(gè)文件,則會(huì)大大增加圖片的數(shù)量,同時(shí)也增加了整個(gè)程序的大小。我們將所有選項(xiàng)的畫面保存在同一個(gè)圖片文件中就可以節(jié)省資源。我們就只需要加載一張圖片就可以了,在這里我們需要用到 setClip()方法繪制圖片的一部分。setClip()方法是用來繪制指定坐標(biāo)后面區(qū)域的圖片。通過 setClip()方法可以將圖 25 做成游戲中的單個(gè)選項(xiàng)的畫面。圖 25 在方法外設(shè)置一個(gè) nowFramemenu 變量記錄菜單中的各個(gè)選項(xiàng),用按上下鍵來確定所需選項(xiàng)。具體剪裁菜單選項(xiàng)的代碼如下:public void drawmenu(Graphics offG) { //設(shè)定剪裁區(qū) x y w h //剪裁區(qū)的范圍在屏幕重繪的時(shí)候受到影響其它區(qū)域不受影響(0, 178, 130, 30)。(menu, 0, 178, 0)。(0, 182, 94, 20)。(menu, 20, 182 30 20 * nowFramemenu, 0)。} 游戲邏輯及屏幕 gameCanvas 類gameCanvas 類是游戲的主要核心,gameCanvas 中的方法決定著地圖的滾動(dòng),子彈的產(chǎn)生,子彈的移動(dòng),敵人的產(chǎn)生,控制著敵人的移動(dòng),判斷敵人及玩家是否被擊中等。它控制著整個(gè)游戲的線程。 地圖的創(chuàng)建以及背景滾動(dòng)的實(shí)現(xiàn) 本游戲通過加載一張與屏幕大小一致的 PNG 圖片作為地圖,然而一張圖片加載上去是靜態(tài)的,如何實(shí)現(xiàn)背景的滾動(dòng)呢?我們先將地圖初始化,將兩張地圖湊在一起畫在離屏畫布上,第一張地圖畫在離屏畫布的正上方,第二張地學(xué)士學(xué)位論文 基于 JAVA 的手機(jī)程序設(shè)計(jì)11圖貼著離屏畫布的左上角,每重繪一次地圖的縱坐標(biāo)遞增 1 像素,則整個(gè)圖片就會(huì)向下移動(dòng) 1 像素,當(dāng)?shù)?2 張圖片縱坐標(biāo)超過屏幕的限制時(shí),返回到初始化狀態(tài)。通過在該圖上再次繪制填補(bǔ)空白。實(shí)現(xiàn)代碼如下: public void drawBack() { (0, 0, SCREENWIDTH, SCREENHEIGHT)。switch () {case 1:(mapbk, 0, mappy, 0)。(mapbk, 0, mappy 208, 0)。}mappy += 1。if (mappy = 208) {mappy = 0。}}其中,level_Mode 是關(guān)卡的值,通過不同關(guān)卡值可以繪制不同關(guān)卡圖片。 游戲角色飛行的實(shí)現(xiàn) 在實(shí)現(xiàn)飛行的過程中,首先對(duì)飛機(jī)的圖片、坐標(biāo)、方向定義進(jìn)行定義和初始化,圖片和實(shí)現(xiàn)代碼如下: px=176/215。 py=20830。 direct=0。 因?yàn)樵陲w行中,飛機(jī)在各個(gè)方向飛行時(shí)的樣子是不同的,比如說向右飛行的時(shí)候左翼則會(huì)側(cè)飛,為了增加游戲的逼真效果,本游戲使用了 setClip()方法對(duì)飛機(jī)的動(dòng)畫進(jìn)行切割使用,當(dāng)按下方向鍵時(shí)即時(shí)的設(shè)置按下該方向鍵所需要的幀實(shí)現(xiàn)代碼如下: public void drawPlane() {//畫飛機(jī)(px,py,30,30)。學(xué)士學(xué)位論文 基于 JAVA 的手機(jī)程序設(shè)計(jì)12(imPlane,pxdirFrame[direct]*30,py,0)。畫出不同方向時(shí)飛機(jī)的樣式(0,0,176,208)。}通過在 keyPressed()方法中處理按鍵來改變飛機(jī)的飛行方向,而 run()方法控制了定時(shí)的屏幕繪制。這樣,每次都會(huì)根據(jù)按鍵處理方法中修改的結(jié)果進(jìn)行新的屏幕繪制,我們就會(huì)看到不同方向飛機(jī)飛行的效果。 使用定時(shí)器和向量類實(shí)現(xiàn)子彈效果 在飛機(jī)發(fā)射子彈過程中,會(huì)有多于一個(gè) 1 顆的子彈在空中飛行,子彈的數(shù)量不能確定,要存儲(chǔ)不確定的一組數(shù)據(jù)可以采用向量 Vector。因?yàn)檫@個(gè)類提供了管理任意數(shù)量對(duì)象的方法,可以方便的將對(duì)象添加到向量中進(jìn)行管理,也可以隨時(shí)移出,當(dāng)對(duì)象從向量中移出時(shí),系統(tǒng)會(huì)自動(dòng)對(duì)內(nèi)容進(jìn)行清空。以下是子彈向量的定義: allBullet=new Ve
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1