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

正文內容

java游戲設計打飛機程序—免費-資料下載頁

2024-12-06 02:48本頁面

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

  

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