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

正文內容

java游戲設計—計算機畢業(yè)設計(文件)

2024-12-23 06:08 上一頁面

下一頁面
 

【正文】 家飛機、玩家飛機的子彈、敵人的子彈、 BOSS 及圖 43關于界面 第 15 頁 (0,y1) y1=y1+1。 TiledLayer 指的是由一塊一塊類似用瓷磚拼湊起來的畫面。 因此,創(chuàng)建一個返回 TtiledLayer 的方法 createBackGround(),以便在 gameScreen()的構造函數(shù)中調用。i。 地圖的移動 根據(jù)游戲的設定,游戲中地圖是向下移動的,實現(xiàn)此功能的方法如下: 首先,在使用 createBackGround()函數(shù)創(chuàng)建地圖數(shù)組時,用 (row+1)*16getHeight() 語句對整型變量 row2 賦值,其中 row+1 代表地圖有多少列, 16 為地圖片的高度,而減去getHeight()是因為要留出一個屏幕的可視區(qū)域,由于 J2ME 規(guī)定坐標系中下方向為正,所以使用語句 y1=row2 將 row2 的數(shù)值變?yōu)樨摂?shù)。 由于敵人要求不停的出現(xiàn),但是不可能設置過多的精靈,解決的辦法是設定 6個 Sprite類對象 j0、 j j2 及 jbullet jbullet jbullet2,分別代表三架敵機及其配屬的子彈。 在構造函數(shù)中,定義 boolean 型變量 conti=true。每當用戶通過 mandAction()方法的方式與命令進行交互的時候,就會通過 CommandListener 的類必須實現(xiàn) mandAction()方法。當玩家點擊“繼續(xù)“時,conti 賦值為 true,并且,一定要調用 start()方法,否則繼續(xù)功能不可用。 當玩家通關時或者任務失敗時,將顯示相應信息,并使用上面的方法將“暫?!辨I變?yōu)椤胺祷亍辨I盤,當點擊“返回”鍵時,將返回主菜單選項,調用類 lzhhdm 里的方法menuscreensecond(),在此方法中,實例化一個 MenuScreen 類對象,并且使選項“新游 第 17 頁 圖 47 戲”改變?yōu)椤敝匦麻_始“ (圖 47)。 Sprite 類對象的碰撞檢測及相關屬性 游戲進行中,即在 while(conti){ }中,需要進行玩家飛 機、子彈與敵機及敵機子彈與玩家飛機的碰撞檢測,即使用函 數(shù) collidesWith(Sprite,boolean)。 敵機與玩家的碰撞檢測原理同上,都是使用的 collidesWith()函數(shù),遺憾的是,我在寫這段代碼的時候,并沒有考慮設置玩家有 4 次機會,所以對敵人飛機 setVisable(fasle)了,而將玩家的飛機換成了爆炸圖片,之后,添加了玩家 4 次機會這個功能,由于玩家被擊落后會重新從屏幕下方進入屏幕,所 以爆炸的圖片一閃而過,效果不是很好。設定 pzbz=1,即不檢測碰撞,玩家有短暫時間無敵,無敵時間由屏幕右上角進度條表示。 input() input()函數(shù)的作用是檢測用戶的輸入。同時,還需要判斷飛機是否飛出屏幕,如,當飛機右飛時,用if(()(getWidth()())) 語句判斷 (getWith()為屏幕的寬度, ()為玩家飛機 c1的寬度 ),如果條件為真,則使用 ((getWidth()()),())語句將飛機設置在緊靠屏幕右邊的位置。如果為真,則執(zhí)行語句 (0),表示只要左鍵松開飛機的形態(tài)都是平飛。i=i+3),即檢測 3 組子彈中每組的第一發(fā),即 0, 3, 6。 第 19 頁 huokebullet[z].no=huokebullet[z].bulletheight 賦予子彈射程。 首先使用 ()和 ()設定可視范圍 ViewWindow 和從哪里畫起(見 )。 renderboss()方法重繪的是關尾的精靈 cboss、相關信息等,與 render()的區(qū)別在與于函數(shù) (g,0,0),起始坐標是不可變的,即,關尾的地圖背景是不可變的。 使用 if((y1==1000)amp。 當 sboss 飛入屏幕后,將 sbz 賦值為 2,以執(zhí)行下面 的 if(sbz==2)語句。當 sboos 根據(jù) c1的位置改變一次運行方向后, smovebz 賦值為 1,即不檢測 c1 的位置。 sboos 會根據(jù)玩家飛機的位置發(fā)射子彈,根據(jù)游戲設置,當玩家在其上方、左方、右方時, sboss 一次發(fā)射 1發(fā)子彈,而玩家飛機在其下方時, sboss 一次發(fā)射 3 發(fā)子彈。 同時在屏幕中使用 drawString()繪制“援軍到達”四個字,隨著屏幕的運動,爆炸圖片逐漸進入屏幕下方,當 ()palnepo,通過改變標志位的值使得 drawSteing()不在執(zhí)行,四字消失。 普通敵人相關屬性 普通敵人是指游戲中不斷出現(xiàn)的蘭色飛機。 (100,planepoup)。 情況 2:初始位置設置方法同情況 1。設置情況 3的原因是在更多的隨機位置出現(xiàn)敵機。((()+48)())amp。 設置整型數(shù)組 jb[4],對應著 4種出現(xiàn)情況的標志位。 需要注意的一點是,當取得 ai 的數(shù)值時,一定要寫上這條語句: jb[ai]=1。(jbz==0)),即 c1 在 j1左側 18 象素范圍內或 j2 左側 6象素范圍時,j0、 j j2 一起發(fā)射子彈, jbz=1,表示在這組子彈消失前敵人不發(fā)射子彈。 程序中設定白云數(shù)為 5。 cloud[3].setPosition(175,planepoup(200))。 白云位置設定后,使用 move(0,1)使白云移動,由于白云初始位置設定在屏幕的不同區(qū)域內,故其移動出屏幕的先后順序是不同的,使用 if(cloud[].getY()planepo)判斷白云是否飛出屏幕。 關尾 BOSS 及相關屬性 關尾處飛機在屏幕上方橫向移動,而背景地圖不動,所以使用 renderboss()重繪屏幕,其中, paint(g,0,0)表示屏幕繪制點在坐標軸 (0,0)處。 (2,2,bosslife,5)。 在飛機橫向飛行中,使用以下語句判斷飛機是否開火: if(((()=()10)||(()=()+60))amp。 BOSS 開火。 圖 410關尾 第 24 頁 5 測試 打包測試的過程 使用 Eclipse 完成代碼的調試之后,需要使用 WTK 生成包 (即 jar 和 jad 文件 ),其過程如下:首先,使用 WTK的新建項目功能建立一個新項目,要求與 Eclipse 工作區(qū)下的項目名稱、 MIDlet 類名相同(圖 51)。 圖 53 生成的 jar和 jad 文件存儲在 lzhhdm/bin 目錄下。 第 26 頁 圖 54 測試的過程, 實際上就是找不同的同學玩這款游戲,以期望發(fā)現(xiàn) BUG。本游戲程序對于初涉 此領域的畢業(yè)設計課題來說,尤其在開 始初期,感覺邏輯復雜,難以控制,因 此產生了大量 BUG,其中一些 BUG 還沒有 解決,所有發(fā)現(xiàn)的 BUG 如下: ; 炸圖片; ; 家被擊落,并且此為玩家的最后 圖 55 第 27 頁 一架飛機,雖然顯示援軍到達 ,但 游戲仍然結束。 未完善的功能 經過匯總測試人員的建議,本游戲應該完善的功能如下 1. 由于每按一次開火,就會對玩家子彈的精靈數(shù)組進行一次循環(huán)檢查,使得本運行效率就不高的 KVM 運行異常緩慢。 6沒有解決,其中, 6 三條如果有足夠的時間可以解決。 發(fā)現(xiàn)的 BUG 及解決情況 幾乎每一個計算機程序都會有這樣 那樣的不足,尤其是未經過精心維護的 非商業(yè)軟件。參考圖 54。 第 25 頁 圖 52 之后,選擇項目 包 生成包。 本章小結 第四章中按照相應的步驟描述了所有關鍵類的具體算 法 實現(xiàn),引用了相關函數(shù)進行了具體流程的解釋,并對原 理稍復雜的函數(shù)做了詳細的分析。(jbsz==0)) 當每發(fā)一組子彈后, jbsz=1,則飛機無法開火,知道子彈 飛出屏幕, jbsz 才重新設定為 0。 如果 ()0,則表示其在屏幕左方出界,應改為右飛。 (2,2,60,5)。乘以 40 表示其在 X軸出現(xiàn)的范圍是多少, cloud[0]、 cloud[1]、 cloud[2]、 cloud[3]、 cloud[4]乘以的值分別為 40, 5 1 22。 其原理為:將屏幕的 X數(shù)軸和 Y 數(shù)軸各分成 5 份,即在 X軸的 5 個范圍內每個范圍出現(xiàn)一朵白云, Y軸的每個范圍內也只能出現(xiàn)一朵。 cloud[1].setPosition(80,planepoup(140))。 之后,還需要對每發(fā)子彈于玩家飛機進行碰撞檢測,如果碰撞,則將碰撞的這發(fā)子彈設置為不可見。 其他 3種情況也大致如此。 接著執(zhí)行判斷語句 if(jb[0]==2),在此語句中,首先使用 move()函數(shù)使飛機向下運動,同時 kkk 減 1,當 kkk=0 時,飛機轉向,此時,根據(jù) aipp 的正負判斷飛機向哪邊轉向。(()()))判斷 c1 是否在 j1 的下方,當 c1 在 j1的下方時,發(fā)射子彈 jbullet1。但其中的飛機 j1 具有跟蹤能力,其實現(xiàn)方法如下:使用 2個 if 語句 if(()())、 if(()())判斷 J1在c1 的左或右側,并且實時根據(jù)判斷情況使用 setFrame()和 move()改變飛機的形態(tài) ,使用語句 if((()())amp。 情況 3:初始位置設置方法同情況 1。 將 getHeight()/8 賦給整型變量 kkk,每次循環(huán) kkk1,當 kkk=1 時飛機轉向,當 aipp0時,飛機向左下方運行,使用語句 setFrame(0)、 move(3,3)達成向左下方運動的效果。程序中使用 switch(ai)語句判斷下一次的飛機出現(xiàn)情況,為了達到不重復出現(xiàn)的效果,使用語句 ai=()%4(同樣應該在構造函數(shù)中放置此語句和 aipp=() % 第 21 頁 5,以使每次游戲開始的時候敵人飛機的出現(xiàn)順序是不固定的),以隨機出現(xiàn) 0, 1, 2, 3四個整數(shù) (代表著飛機的四種 出現(xiàn)情況 ) 。所以,如果判斷語句 if((()==getHeight()))為真,則表示離地圖的終點只有一個屏幕的距離時,sbz賦值為 sbpzbz賦值為 1(含義上面已經說明 )。 如果 sboos 被擊落后,使用函數(shù) setVisable(false)將 bossbullet0、 bossbulletbossbullet2 設置為不見,使用 ()函數(shù)將 sboos 的圖片設置為爆炸圖片。 當玩家子彈擊中 sboss 后,使用 (1),此時飛機變紅,在本次 repaint結束前,使用 (0)使飛機變?yōu)楸緛眍伾?,而程序設定每 1/20 秒畫一次,由此得到飛機被擊中后變色的效果。首先,根據(jù)玩家飛機的位置對 sbmove 賦值,當 c1 在 sboos 的上、下、左、右時,其對應的值為 4在這 4 個 if 語句中,要設置標志位 (smovebz==0)。(sbz==0)){ }設定 sboss 的 初始位置,根據(jù)游戲設定, sboos 從屏幕上 方倒飛入屏幕, 所以 sboss 設定的初始位置 (50,planepoup65),其中 planepoup 為屏幕上邊緣的標志位。 玩家飛機的生命標志使用 drawImage()就可以繪制在屏幕上了。 drawString()中使用 (huokebullet[0].rscore()+huokebullet[3]. rscore()+huokebullet[6].rscore())返回 玩家成績 score 的字符串表示 。 現(xiàn)在看來,玩家發(fā)射子彈的設置是完全失敗的,降低了效率。zi+3。FIRE_PRESSED)!=0)中判斷條件為真時,首先執(zhí)行循環(huán)語句 for(int i=0。 語句 if((keystateamp。 其次,調用 getKeyStates()查詢按鍵的狀態(tài)。設置 planert=2,即以上這些設置只執(zhí)行一便。同時整型變量pzbz 賦植為 1,以消除玩家爆炸圖像繼續(xù)與敵人進行碰撞檢測這個 BUG。當敵人
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1