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

正文內容

畢業(yè)設計-基于java的坦克大戰(zhàn)軟件程序設計(完整版)

2025-01-21 09:51上一頁面

下一頁面
  

【正文】 的共同行為 ........................................ 22 玩家坦克的功能屬性 .................................... 23 敵人坦克的功能屬性 .................................... 24 子彈擊中坦克的爆炸 .................................... 25 記分系統(tǒng) .............................................. 27 本章小結 : ............................................. 28 第四章 總 結 ............................................. 28 本程序的總結和展望 ..................................... 28 經驗和感想 ............................................ 29 參考文獻 ...................................................... 30 4 第 一 章 程序結構、思想和相關技術 本程序需解決的有關技術問題 1. 坦克大戰(zhàn)是一個可大可小的游戲,想法靈活可以編寫出很多功能 , 所以需要對程序的要求量應該是巨大的,但是 其代碼利用率很高 ,因此實際編寫時也不需要太多的絞盡腦汁 ,可以利用各模塊程序的相近性靈活運用 。敵方子彈僅需要掃描用戶坦克,而用戶坦克需要在每一步掃描所有的敵方坦克。如何采用合理的記分標準,需要進行適當?shù)脑O計。 在屏幕重繪的主程序中,將在每次的循環(huán)中判斷若干事件 。 jmi2 =new JMenuItem(退出游戲 (E))。 (exit)。當然我們的這個坦克大戰(zhàn)游戲的實現(xiàn)肯定離不開線程,例如己方坦克是必須要會移動的,那么敵人坦克也要移動,子彈呢?當然也要會移動,等等 ? 。 } catch (Exception e) { 7 ()。 break。 //畫出下面的矩形 (x, y+15, 30, 5, false)。 // (x+5, y+10, 10, 10)。 break。 所以本次 程序 是這樣安排的 :當碰撞到障礙物或邊界時立即轉向,但 碰到玩家坦克時需要有一個等待的時 間,這個時間由碰撞前隨機取得的在某方向上的持續(xù)行走步數(shù)決定 (程序規(guī)定坦克走一定的路程后必須轉向其他方向,不然就不一直按照之前的方向一直走下去) ,當發(fā)生坦克間碰撞時,此隨機數(shù)將在下一次循環(huán)前減少為原來的 2/3,這樣就實現(xiàn)了加快轉向的時間,避免死鎖在一個方向上靜止的停留過長的時間。 ()。 int color。 } public void setY(int y) { = y。 switch() { case 0: //我的坦克向上 //取出所有的敵人坦克 for(int i=0。amp。=et.y+30) { return true。 } if(+20=amp。 case 1: //坦克向右 //取出所有的敵人坦克 for(int i=0。amp。+20=+30) { return true。 } if(+30=amp。 case 2: //坦克向下 //取出所有的敵人坦克 for(int i=0。amp。+30=+30) { return true。 } 16 if(+20=amp。 case 3: //向左 //取出所有的敵人坦克 for(int i=0。amp。+20=et.y+30) { return true。 } if(=amp。 } return b。 最后 子彈對不同障礙物將有不同的反映。 ()。)。 (saveExit)。 (jmil)。 第 三 章 程序 分析和具體實現(xiàn) 游戲進入前的面板設計分析 每個 MIDlet 程序都必須有一個主類,該類必須繼承自 MIDlet。Alert 對象用于顯示提示、警告等告之用戶信息的臨時閃現(xiàn)的屏幕,它可作為setCurrent的參數(shù),提前顯示在最終需要顯示的屏幕前。 在設置好mandlistener 后,需要調用 setCommandListener()以將按鈕事件激活 。 本程序設置為 20毫秒。 還需保存的變量有,游戲開始時間、結束時間(用于統(tǒng)計分數(shù))、敵人的總數(shù)、屏幕上敵人的數(shù)量、下一個敵人需要出現(xiàn)的位置(總共允許在三個不同的位置出現(xiàn),分別位于屏幕的左、中、右方)、游戲是否已成功結束或是否已死亡 。 地圖文件可用十六進制的文本編輯器生成,如本程序使用的 Ultraedit。 構造坦克時,將把坦克的 png 圖片作為參數(shù)傳遞給 EnemySprite 和 UserSprite,BattleCanvas 中創(chuàng)建坦克僅調用 createEnemy()和 createUser()實現(xiàn)。提供新坦克之前,在屏幕上設置了一個專用指示的閃光符號 ,它繼承了 Sprite,運行在單獨的線程中。 在檢測用戶輸入的 input()函數(shù)中,當按方向鍵時,玩家坦克就將向不同的方向運行,這調用了UserSprite 的 go()函數(shù) ;當開炮時,就調用其fire()函數(shù),作出相應的行為。在程序中調用了 getNullEnemyIndex()進行測試,當返回為 1 時說明沒有序號可以分配,否則,將返回空的序號。 canPass()函數(shù)將返回坦克是否能夠向前前進,考慮到的因素有邊界、障礙物。這些都由坦克傳遞給子彈。在 setShootCheck()的參數(shù)中,傳給子彈的是敵人的數(shù)組,子彈的對象就被確定了。 當可以行走時,就在當前方向的坐標上增加或減少一個象素。 其主要功能流程圖見圖 48。 return (())%4+1。這樣,它們才可以自動檢測自己是否與同伴發(fā)生了碰撞,以便采取躲避、轉向等行動。如果一出現(xiàn),出口就被堵死,顯然,不能永遠不出現(xiàn),那就應采取其他的辦法,否則兩輛坦克將因為都處在碰撞狀態(tài)中而無法移出。其他的隨機值也應當重置。 checkHit(int x,int y)調用了 getTileIndex(x,y)獲取當 前子彈擊中的是什么障礙物,如果返回了 false 就表示沒有擊中任何東西。 (x =5) amp。在隨后的checkHit(RIGHT)調用中,它將檢測它是否在 x+3點,即 160 點擊中了某個障礙物, 但是 160/8=20。 這根據(jù)子彈的來源分為兩種情況。 這將會是很荒唐的場面。首先將循環(huán)調用(NoName) 和 (0),將記錄中的條目的用戶名置為NoName,所有的分數(shù)置為 0。并將所有相關的 InputStream 的繼承類用close()關閉,以便釋放內存資源。因此完成的時間越短,得到的分數(shù)就越高。 本章小結 : 第 三 章中 按照相應的步驟 描述了所有關鍵類的具體算法實現(xiàn),引用了相關函數(shù)進行了具體流程的解釋,并對原理稍復雜的函數(shù)做了詳細的分析。 2. 敵人的人工智能 變化較少,不夠理想 。 3. 當坦 克在草叢中時,對方坦克發(fā)出的子彈不能將其擊毀。 相比一些數(shù)據(jù)庫軟件,游戲的設計有很多人情色彩和藝術思想的發(fā)揮, 正式商業(yè)的軟件的人性化界面和各個游戲間迥異的 結構每每會讓人有去開發(fā)的沖動。Reilly publish, 2021 [7] Wireless Tool Kit, MIDP profile,Sun Micro. [8] Developing Games in Java, David Brackeen, New Riders Publishing [9] Game Architecture and Design, Andrew Rollings、 Dave Morris,Coriolis Group Books [10] [11] [12] [13] Borland Jbuilder9 Help documents,Borland corporation. [14] Creating 2D Action Games with the Game API, Sun 公司網頁中的Technical Articles and Tips, Jonathan Knudsen ,及其源代碼。 成功的游戲融合了三維運算、人工智能、 音效處理等計算機多媒體的精華部分。雖然大學期間在 TC++下設計過一個俄羅斯方塊的游戲,并且 經過反復的調試修改也達到了一定的精確性,但接手這個題目時仍感覺十分棘手。 4. 由 于每次子彈發(fā)射和每次坦克的移動的一個象素都會對所有坦克和所有子彈進行一次循環(huán)檢查,并由于同時開的線程比較多,使得本來運行效率就不高的 KVM 運行異常緩慢。 第 四 章 總 結 本程序 的 總結和展望 本程序設計實現(xiàn)了手機上以 J2ME 為平臺的坦克大戰(zhàn)游戲的開發(fā) ,采用從外部文件讀取地圖 、自動控制敵人坦克運行的方式進行控制,具有一定的可玩性和復雜性。 如果通關或完全死亡后,將提示用戶按 pass按鈕跳過該屏。它將所有數(shù)據(jù)庫中的數(shù)據(jù)依次讀出,再使用drawString 以固定的格式寫出。 Score 將被循環(huán)調用 10 次,將記錄中的 10 個最高記錄初始化。因為在發(fā)炮期間,坦克的再次發(fā)炮的功能是被鎖定的。如果沒有和子 彈發(fā)生碰撞,就檢測是否與敵人碰撞,發(fā)生碰撞時,將敵人從 layerManager 中移除,并置為 null,產生爆炸效果,敵人數(shù)量減少一位,敵人屏幕上數(shù)量減少一位。此時 ArrayOutOfBoundException 異常就會拋出,程序終止運行。 (y =5) amp。爆炸效果由 tileExplode(x,y)根據(jù)需要爆炸的坐標點生成,其中將一個 Sprite 圖片在界面上閃現(xiàn) 150 毫秒。 在運行在某個方向上,當確定為 canPass時,應再檢測是否為 Beginner。(由boolean 值 destroyed 決定 ) 。 一個循環(huán)將依據(jù)敵人的序號查找 5次。將他們代入需要使用方向的函數(shù)中就可以使用了。因為敵人的運行是自動的,需要有設 定的程序讓它可自己控制,而不像 UserSprite 完全通過 每次輸入的鍵盤信號來做出反映。有一點非常重要:在檢測前,需要將敵人的檢測矩形區(qū)域設置為與原來圖片一樣大小。他們可被外部調用, 以 取得生命值、死亡記數(shù)、重置位置。 接著使用 append()將子彈貼到 layerManager 上顯示出來。 getTileIndex()將檢測傳遞來的象素處是什么類型的障礙物,它將象素除以 8(即障礙物的象素寬度 ),取整,再通過 getCell()得到。 坦克的共同行為 在 TankSprite 中定義了所有坦克 (包括敵方坦克和玩家坦克 )的共同行為和 23 屬性。 效果如圖 46所示 。當它閃光完畢后,敵人就會從閃光位置出現(xiàn)。每次循環(huán)中將檢測是否死亡,屏幕上坦克的數(shù)量,是否該過關統(tǒng)計分數(shù),檢測用戶輸入的按鍵、重繪整個屏幕及回收垃圾內存 (Gar
點擊復制文檔內容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1