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

正文內(nèi)容

java游戲設(shè)計(jì)打飛機(jī)程序—計(jì)算機(jī)(論文)-資料下載頁

2024-12-07 10:32本頁面

【導(dǎo)讀】息網(wǎng)絡(luò)化的不斷進(jìn)展,手機(jī)及其他無線設(shè)備上網(wǎng)絡(luò)勢在必行。但是傳統(tǒng)手機(jī)存在以下弊端:。更新、修改,若要增加新功能必須另換一部手機(jī)。源必須接通網(wǎng)絡(luò)才能在線訪問,非常耗時(shí)、費(fèi)用亦很高。基于以上分析,Java手機(jī)將是未來手機(jī)的發(fā)展方向,是業(yè)界的熱點(diǎn)。Java平臺(tái)演進(jìn)到Java2后,Java平臺(tái)分別針對不同領(lǐng)域的需求被分成四個(gè)。版本,亦即J2EE、J2SE、J2ME以及JavaCard。其中J2ME定位在消費(fèi)性電子產(chǎn)品的應(yīng)用上。同類型產(chǎn)品能夠隨時(shí)增加支持的能力。這個(gè)版本的應(yīng)用層面相當(dāng)廣泛,會(huì)是未來Java平。臺(tái)發(fā)展的重點(diǎn)項(xiàng)目。生產(chǎn)廠商都生產(chǎn)支持Java的設(shè)備。J2ME平臺(tái)是由配置和簡表構(gòu)成的。范圍設(shè)備使用的最小類庫集合,在配置中同時(shí)包含Java虛擬機(jī)。在J2ME中還有一個(gè)重要的概念是可選包,它是。Siemens在內(nèi)的18家全球知名公司共同協(xié)商完成的。Java引進(jìn)虛擬機(jī)原理,并運(yùn)行于虛擬機(jī),實(shí)現(xiàn)不同平臺(tái)之間的Java接口。據(jù)類型與機(jī)器無關(guān)。

  

【正文】 { }設(shè)定 sboss 的 初始位置,根據(jù)游戲設(shè)定, sboos從屏幕上方倒飛入屏幕, 所以 sboss 設(shè)定的初始位置 (50,planepoup65),其中 planepoup 為屏幕上邊緣的標(biāo)志位。 最后,要將 sbz賦值為 1,消除 sboos 不停設(shè)置初始位置的 BUG。 當(dāng) sboss 飛入屏幕后,將 sbz 賦值為 2,以執(zhí)行下面 圖 49 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 21 頁 圖 410 的 if(sbz==2)語句。 在判斷語句 if(sbz==2)里,將根據(jù)玩家的位置自動(dòng)飛 行。首先,根據(jù)玩家飛機(jī)的位置對 sbmove 賦值,當(dāng) c1 在 sboos 的上、下、左、右時(shí),其對應(yīng)的值為 4在這 4 個(gè) if 語句中,要設(shè)置標(biāo) 志位 (smovebz==0)。設(shè)置這個(gè) 標(biāo)志位的目的是防止 sboos 根據(jù) c1 的位置不停的改變運(yùn)行狀態(tài),即防止 sboos 成為跟蹤飛機(jī)。當(dāng) sboos 根據(jù) c1的位置改變一次運(yùn)行方向后, smovebz 賦值為 1,即不檢測 c1 的位置。只有 sboss 運(yùn)行到屏幕的邊緣時(shí),才將 smovebz 重新賦值為 0,使其可以再次通過 c1的位置決定 sboos 的運(yùn)行方向。 當(dāng)玩家子彈擊中 sboss 后,使用 (1),此時(shí)飛機(jī)變紅,在本次 repaint結(jié)束前,使用 (0)使飛機(jī)變?yōu)楸緛眍伾?而程序設(shè)定每 1/20 秒畫一次,由此得到飛機(jī)被擊中后變色的效果。 (參見圖 410)。 sboos 會(huì)根據(jù)玩家飛機(jī)的位置發(fā)射子彈,根據(jù)游戲設(shè)置,當(dāng)玩家在其上方、左方、右方時(shí), sboss 一次發(fā)射 1發(fā)子彈,而玩家飛機(jī)在其下方時(shí), sboss 一次發(fā)射 3 發(fā)子彈。 sboss 與 cboss 共用 3 發(fā)子彈,因?yàn)楫?dāng) sboss 出現(xiàn)時(shí),離關(guān)尾還遠(yuǎn),所以,為了提高效率,采用這種方法。 如果 sboos 被擊落后,使用函數(shù) setVisable(false)將 bossbullet0、 bossbulletbossbullet2 設(shè)置為不見,使用 ()函數(shù)將 sboos 的圖片設(shè)置為爆炸圖片。同時(shí),玩家生命標(biāo)志 playerno 加 1, sbz 賦值為 1,使得 sboos 無法發(fā)射子彈, sbpzbz 賦值為 1,使得玩家的子彈不與 sboos 進(jìn)行碰撞檢測。 同時(shí)在屏幕中使用 drawString()繪制“援軍到達(dá)”四個(gè)字,隨著屏幕的運(yùn)動(dòng),爆炸圖片逐漸進(jìn)入屏幕下方,當(dāng) ()palnepo,通過改變標(biāo)志位的值使得 drawSteing()不在執(zhí)行,四字 消失。 如果玩家被擊落后并沒有點(diǎn)“返回“,而此時(shí),背景會(huì)一直運(yùn)動(dòng)到關(guān)尾,考慮到其與關(guān)尾 BOSS 共用 3 發(fā)子彈,如 sboos 不消失 ,將會(huì)出現(xiàn)子彈亂飛的情況。所以,如果判斷語句 if((()==getHeight()))為真,則表示離地圖的終點(diǎn)只有一個(gè)屏幕的距離時(shí),sbz賦值為 sbpzbz賦值為 1(含義上面已經(jīng)說明 )。同時(shí)調(diào)用 (0,3),使 sboos快速飛出屏幕,直到判斷語句 if(()65)為真時(shí),調(diào)用下面的函數(shù)setVisable(false),使得 sboos 不可見。 普通敵人相關(guān)屬性 普通敵人是指游戲中不斷出現(xiàn)的蘭色飛機(jī)。 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 22 頁 首先在程序中首先定義了 aik、 aip 兩個(gè) Random()類對象, ai和 aipp 兩個(gè)整型變量。程序中使用 switch(ai)語句判斷下一次的飛機(jī)出現(xiàn)情況,為了達(dá)到不重復(fù)出現(xiàn)的效果,使用語句 ai=()%4(同樣應(yīng)該在構(gòu)造函數(shù)中放置此語句和 aipp=() % 5,以使每次游戲開始的時(shí)候敵人飛機(jī)的出現(xiàn)順序是不固定的),以隨機(jī)出現(xiàn) 0, 1, 2, 3四個(gè)整數(shù) (代表 著飛機(jī)的四種出現(xiàn)情況 ) 。 情況 1:使用 aipp=()%5 取得隨機(jī)數(shù) aipp,根據(jù)下面三條語句設(shè)置飛機(jī)的出現(xiàn)位置: (100aipp*30,planepoup+24)。 (100,planepoup)。 (100+aipp*30,planepoup24)。 將 getHeight()/8 賦給整型變量 kkk,每次循環(huán) kkk1,當(dāng) kkk=1 時(shí)飛機(jī)轉(zhuǎn)向 ,當(dāng) aipp0時(shí),飛機(jī)向左下方運(yùn)行,使用語句 setFrame(0)、 move(3,3)達(dá)成向左下方運(yùn)動(dòng)的效果。當(dāng) aipp0 時(shí),向右下方運(yùn)動(dòng),實(shí)現(xiàn)方法同上。 情況 2:初始位置設(shè)置方法同情況 1。當(dāng) kkk〈 0 時(shí),飛機(jī)掉頭向上飛,其中 setFrame(3), move(4,0)。 情況 3:初始位置設(shè)置方法同情況 1。當(dāng) kkk〈 0時(shí),飛機(jī)只向左轉(zhuǎn)。設(shè)置情況 3的原因是在更多的隨機(jī)位置出現(xiàn)敵機(jī)。 情況 4:初始位置設(shè)置方法同情況 1。但其中的飛機(jī) j1 具有跟蹤能力,其實(shí)現(xiàn)方法如下:使用 2個(gè) if 語句 if(()())、 if(()())判斷 J1在c1 的左或右側(cè),并且實(shí)時(shí)根據(jù)判斷情況使用 setFrame()和 move()改變飛機(jī)的形態(tài) ,使用語句 if((()())amp。amp。((()+48)())amp。amp。(()()))判斷 c1 是否在 j1 的下方,當(dāng) c1 在 j1的下方時(shí),發(fā)射子彈 jbullet1。 以上四種情況的最后,都將使用函數(shù) nextInt()產(chǎn)生 ai,aipp 的 值。 設(shè)置整型數(shù)組 jb[4],對應(yīng)著 4種出現(xiàn)情況的標(biāo)志位。 如,執(zhí)行情況 1,首先執(zhí)行判斷語句 if(jb[0]==1),在此語句中,首先使用 setVisable (true)函數(shù)將敵人飛機(jī)設(shè)置為可見的,并根據(jù)上次運(yùn)行的 qipp 的值設(shè)置敵人飛機(jī)的初始位置最后, jb[0]賦值為 2。 接著執(zhí)行判斷語句 if(jb[0]==2),在此語句中,首先使用 move()函數(shù)使飛機(jī)向下運(yùn)動(dòng),同時(shí) kkk 減 1,當(dāng) kkk=0 時(shí),飛機(jī)轉(zhuǎn)向,此時(shí),根據(jù) aipp 的正負(fù)判斷飛機(jī)向哪邊轉(zhuǎn)向。當(dāng)飛機(jī)飛出屏幕時(shí), jb[0]賦值為 3。 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 23 頁 需要注意的一點(diǎn)是,當(dāng)取得 ai 的數(shù)值時(shí),一定要寫上這條語句: jb[ai]=1。因?yàn)楫?dāng) 4種情況都出現(xiàn)一便的時(shí)候,標(biāo)志位 jb[]里的數(shù)值都將變?yōu)?3,如果不將其重新賦值為 1,敵人飛機(jī)將只能出現(xiàn) 4次。 其他 3種情況也大致如此。 普通敵人是否發(fā)射子彈由以下語句 if(((()=()18)||((() 6)=()))amp。(jbz==0)),即 c1 在 j1左側(cè) 18 象素范圍內(nèi)或 j2 左側(cè) 6象素范圍時(shí),j0、 j j2 一起發(fā)射子彈, jbz=1,表示在這組子彈消失前敵人不發(fā)射子彈。 如果 jpb 的值為 0,則判斷語句 if(jpb==0)里的 move()語句將一直執(zhí)行下去。 之后,還需要對每發(fā)子彈于玩家飛機(jī)進(jìn)行碰撞檢測,如果碰撞,則將碰撞的這發(fā)子彈設(shè)置為不可見。 白云的實(shí)現(xiàn)原理 為了游戲界面更加美觀,程序中設(shè)定了精靈數(shù)組 cloud[i]來表示白云 ,由于白云應(yīng)該在所有飛機(jī)的上方,即 cloud[i]應(yīng)該最早被 append()到 LayerManager 中,或者使用 insert (cloud[],0)在索引數(shù)值 0 處插入 Layer,本程序采用了第一種方法,即在 gameScreen 類的構(gòu)造函數(shù)中按游戲設(shè)置的順序使用 ()加入到 LayerManager 之中。 程序中設(shè)定白云數(shù)為 5。首先設(shè)置白云的初始位置,其語句如下: cloud[0].setPosition(25,planepoup(65))。 cloud[1].setPosition(80,planepoup(140))。 cloud[2].setPosition(112,planepoup(90))。 cloud[3].setPosition(175,planepoup(200))。 cloud[4].setPosition(223,planepoup(70))。 其原理為:將屏幕的 X數(shù)軸和 Y 數(shù)軸各分成 5 份,即在 X軸的 5 個(gè)范圍內(nèi)每個(gè)范圍出現(xiàn)一朵白云, Y軸的每個(gè)范圍內(nèi)也只能出現(xiàn)一朵。所以的白云的起始位置在每次游戲開始時(shí)是固定的。 白云位置設(shè)定后,使用 move(0,1)使白云移動(dòng),由于白云初始位置設(shè)定在屏幕的不同區(qū)域內(nèi),故其移動(dòng)出屏幕的先后順序是不同的,使用 if(cloud[].getY()planepo)判斷白云是否飛出屏幕。如果為真則使用 cloud[].setPosition(cloudposition*40,planepoup)設(shè)置白云的位置,其中, cloudposition=()%5, aicloud 為 Random()類對象。乘以 40 表示其在 X軸出現(xiàn)的范圍是多少, cloud[0]、 cloud[1]、 cloud[2]、 cloud[3]、 cloud[4]乘以的值分別為 40, 5 1 22。以達(dá)成白云的隨機(jī)出現(xiàn)效果。 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 24 頁 關(guān)尾 BOSS 及相關(guān)屬性 關(guān)尾處飛機(jī)在屏幕上方橫向移動(dòng),而背景地圖不動(dòng),所以 使用 renderboss()重繪屏幕,其中, paint(g,0,0)表示屏幕繪制點(diǎn)在坐標(biāo)軸 (0,0)處。 BOSS 生命進(jìn)度條由以下語句繪制: (255,0,0)。 (2,2,60,5)。//生命進(jìn)度條背靜紅 (255,255,255)。 (2,2,bosslife,5)。//生命進(jìn)度條前景白 其中 bosslife 記錄著 BOSS 的生命值,其初始值為 0,當(dāng)玩家每擊 中一次 BOSS,其值加 5,即化出白色進(jìn)度條,當(dāng) bosslife==60時(shí),表示過關(guān),除玩家飛機(jī)與子彈外的其他 Sprite均使用 setVisable(false)使其不在顯示,同樣的 pzbz 要賦予 1,以消除玩家飛機(jī)還能與敵人碰撞的 BUG。 如果 ()0,則表示其在屏幕左方出界,應(yīng)改為右飛。同理如果 () (getWidth()()),則表示其在屏幕右方出界,應(yīng)改為左飛。 在飛機(jī)橫向飛行中,使用以下語句判斷飛機(jī)是否開火: if(((()=()10)||(()=()+60))amp。amp。(jbsz==0)) 當(dāng)每發(fā)一組子彈后, jbsz=1,則飛機(jī)無法開火,知道子彈 飛出屏幕, jbsz 才重新設(shè)定為 0。而 ((()= ()10)||(()=()+60)表示當(dāng) 玩家飛機(jī)處于 BOSS 的左右各 10 個(gè)象素的范圍內(nèi)時(shí)。 BOSS 開火。關(guān)尾參見圖 410。 本章小結(jié) 第四章中按照相應(yīng)的步驟描述了所有關(guān)鍵類的 具體算 法實(shí)現(xiàn),引用了相關(guān)函數(shù)進(jìn)行了具體流程的解釋,并對原 理稍復(fù)雜的函數(shù)做了詳細(xì)的分析。對游戲有關(guān)的各運(yùn)行面也做了展示。 圖 410關(guān)尾 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 25 頁 5 測試 打包測試的過程 使用 Eclipse 完成代碼的調(diào)試之后,需要使用 WTK 生成包 (即 jar 和 jad 文件 ),其過程如下:首先,使用 WTK的新建項(xiàng)目功能建立一個(gè)新項(xiàng)目,要求與 Eclipse 工作區(qū)下的項(xiàng)目名稱、 MIDlet 類名相同(圖 51)。 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 26 頁 圖 51 新建項(xiàng)目后,將 Eclipse 工作區(qū)下的 .java 文件拷入 src 文件夾,將 .class 文件拷入class 文件夾 (需要新建 ),將 pic 文件夾拷入 res 文件夾,點(diǎn)擊生成,如一切正常,將如圖片 52所示。 圖 52 之后,選擇項(xiàng)目 包 生成包。如圖 53 所示。 畢業(yè)論文(設(shè)計(jì)) 佳木斯大學(xué)教務(wù)處 第 27 頁 圖 53 生成的 jar和 jad 文件存儲(chǔ)在 lzhhdm/bin 目錄下。 運(yùn)行 Motorola SDK for J2ME,使用 MOTOA760 手機(jī)模擬器進(jìn)行測試。參考圖 54。點(diǎn)擊 Lanuch 按紐,進(jìn)入如圖 55的界面,即可以進(jìn)行游戲測試了。 圖 54 測試的過程,實(shí)際上就
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1