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

正文內(nèi)容

畢業(yè)設(shè)計(jì)基于j2me的手機(jī)游戲設(shè)計(jì)-資料下載頁(yè)

2025-06-20 13:10本頁(yè)面
  

【正文】 應(yīng)調(diào)整。擊中鋼筋時(shí),將只產(chǎn)生爆炸效果。 setShootCheck(EnemySprite enemySprite[]);setUserSprite(UserSprite userSprite);setEnemySprite(EnemySprite enemySprite)都是將相關(guān)的坦克傳入到子彈類里來(lái),以便確認(rèn)來(lái)源或攻擊目標(biāo)。 在線程的循環(huán)中while ( (x 155) amp。amp。 (x =5) amp。amp。 (y =5) amp。amp。 (y 171))作為循環(huán)的條件可以控制子彈出界的范圍。這幾項(xiàng)參數(shù)在編寫時(shí)很容易出錯(cuò)。它們反映了象素級(jí)處理的技巧。如果程序在子彈已經(jīng)到達(dá)X軸的155坐標(biāo)時(shí)仍允許子彈繼續(xù)運(yùn)行,子彈將一次性向右運(yùn)行2個(gè)象素,到達(dá)157點(diǎn)。在隨后的checkHit(RIGHT)調(diào)用中,它將檢測(cè)它是否在x+3點(diǎn),即160點(diǎn)擊中了某個(gè)障礙物,但是160/8=20。地圖的tiledLayer對(duì)象中并不存在序號(hào)為20的塊,最大只為19。此時(shí)ArrayOutOfBoundException異常就會(huì)拋出,程序終止運(yùn)行。 子彈運(yùn)行中,將用collidesWith(tiledLayer,true)測(cè)試是否碰撞上了地圖。如果為真,就繼續(xù)檢測(cè)碰撞上了什么樣的物體。這將針對(duì)四個(gè)不同的方向分別以象素級(jí)檢測(cè)。如果擊中了某樣物體,那么checkHit自然會(huì)處理,子彈的生命周期結(jié)束,以break退出循環(huán)。 如果沒(méi)有擊中物體,就繼續(xù)檢測(cè)是否擊中了某輛坦克。這根據(jù)子彈的來(lái)源分為兩種情況。當(dāng)來(lái)自玩家時(shí),將首先檢測(cè)所有的敵人發(fā)出的子彈,當(dāng)發(fā)生子彈間的碰撞時(shí),用戶的子彈將被移除,雖然按照道理敵人的子彈同時(shí)也應(yīng)被移除,但敵人子彈是運(yùn)行在另一線程中的,應(yīng)當(dāng)由它自己來(lái)控制為好,用戶的子彈只需要管理好自己的狀態(tài)就可以了。如果沒(méi)有和子彈發(fā)生碰撞,就檢測(cè)是否與敵人碰撞,發(fā)生碰撞時(shí),將敵人從layerManager中移除,并置為null,產(chǎn)生爆炸效果,敵人數(shù)量減少一位,敵人屏幕上數(shù)量減少一位。 如果是來(lái)自敵人的子彈,將同樣檢測(cè)與玩家子彈的碰撞,及與玩家坦克的碰撞如有碰撞,玩家生命數(shù)減少一位,位置重置。如果玩家生命已死亡殆盡,就需要在進(jìn)行以上操作的同時(shí)將玩家坦克的位置放置到屏幕外的部分。因?yàn)閘ayerManager的remove函數(shù)并不會(huì)真正將層移除。只是用戶看不見(jiàn)而已。如果不放置到屏外,敵人坦克仍會(huì)被阻擋,子彈仍會(huì)再次擊中用戶坦克。這將會(huì)是很荒唐的場(chǎng)面。為了能控制一輛坦克在同一時(shí)間只能發(fā)射一發(fā)子彈,在子彈生命運(yùn)行結(jié)束時(shí)候,()恢復(fù)坦克繼續(xù)發(fā)炮的能力。因?yàn)樵诎l(fā)炮期間,坦克的再次發(fā)炮的功能是被鎖定的。 記分系統(tǒng)記分系統(tǒng)的功能指定在ScoreScreen類內(nèi)。采用的是手機(jī)專用的一種簡(jiǎn)化的數(shù)據(jù)庫(kù)RMS。在BattleCanvas請(qǐng)求調(diào)入分?jǐn)?shù)統(tǒng)計(jì)的屏幕時(shí),將首先調(diào)用initRs()初始化一些環(huán)境變量。(score,true)創(chuàng)建一個(gè)名為“score”的數(shù)據(jù)庫(kù)。隨后將分別建立ByteArrayOutputStream 和DataOutputStream以便實(shí)現(xiàn)多字段的記錄。(NoName) (0),將記錄中的條目的用戶名置為NoName,所有的分?jǐn)?shù)置為0。score=()將所得的被寫入的數(shù)據(jù)流輸送到score的字節(jié)數(shù)組中。Score將被循環(huán)調(diào)用10次,將記錄中的10個(gè)最高記錄初始化。getScore()函數(shù)得到所需要序號(hào)的分?jǐn)?shù)。() ,score=()將分別讀出用戶名和分?jǐn)?shù),然而前者讀出后并不加以利用,因?yàn)樵诒容^分?jǐn)?shù)的過(guò)程中,并不需要用到用戶名。使用它只是為了將記錄的指針向后推移到可以讀出分?jǐn)?shù)字段的位置。 分?jǐn)?shù)統(tǒng)計(jì)畫面insertRecord()可以將當(dāng)前剛剛得到的最高成績(jī)記錄到數(shù)據(jù)庫(kù)的指定位置,將最后一名排擠出局。(i+1,record,0,)將把已讀出的當(dāng)前位置的記錄寫入到下一條中,當(dāng)發(fā)現(xiàn)移動(dòng)完畢后當(dāng)前序號(hào)即為所需要插入的位置時(shí),(name), (score),(i,record,0,),將記錄寫入。并將所有相關(guān)的InputStream的繼承類用close()關(guān)閉,以便釋放內(nèi)存資源。drawList()函數(shù)繪畫出當(dāng)前的屏幕分?jǐn)?shù)。它將所有數(shù)據(jù)庫(kù)中的數(shù)據(jù)依次讀出,再使用drawString以固定的格式寫出。效果如圖47顯示。由于ScoreScreen類繼承了Canvas,所以必須有paint()函數(shù)。在這個(gè)在刷新屏幕時(shí)(repaint()被調(diào)用)需要執(zhí)行的方法中,設(shè)置了一個(gè)整形的duration,用來(lái)記錄完成一關(guān)所用的時(shí)間。時(shí)間將根據(jù)BattleCanvas中的beginTime的差除以1000后取整決定。每關(guān)的分?jǐn)?shù)被設(shè)置為100000/duration。因此完成的時(shí)間越短,得到的分?jǐn)?shù)就越高。,就不將當(dāng)前關(guān)得到的分?jǐn)?shù)加入到總分的計(jì)算里,否則就調(diào)用totalScore=totalScore+levelScore進(jìn)行累加。如果通關(guān)或完全死亡后,將提示用戶按pass按鈕跳過(guò)該屏。如果需要進(jìn)入下一關(guān),則進(jìn)入本關(guān)統(tǒng)計(jì)分?jǐn)?shù)的顯示。僅停留4秒種,供用戶快速參考后便會(huì)跳入下一關(guān)的起始畫面。按鈕由addCommand()加入,并設(shè)置了mandListener()確定按鍵事件發(fā)生后的動(dòng)作。這是低級(jí)繪圖屏幕與高級(jí)用戶界面相結(jié)合的一個(gè)應(yīng)用。當(dāng)用戶的分?jǐn)?shù)達(dá)到一定的高度可以寫進(jìn)記錄時(shí),將調(diào)用inputName=new Form(Congratulations)創(chuàng)建一個(gè)新的Form類的屏幕,其中包括一個(gè)TextField,允許用戶輸入自己的姓名,這樣使用getString就可以將輸入讀出,寫入到記錄中。 本章小結(jié)第四章中按照相應(yīng)步驟描述了所有關(guān)鍵類的具體算法實(shí)現(xiàn),引用了相關(guān)函數(shù)進(jìn)行了具體流程的解釋,并對(duì)原理稍復(fù)雜的函數(shù)做了詳細(xì)的分析。對(duì)游戲有關(guān)的各運(yùn)行界面也做了展示。5. 總 結(jié) 本程序的總結(jié)和展望 本程序設(shè)計(jì)實(shí)現(xiàn)了手機(jī)上以J2ME為平臺(tái)的坦克大戰(zhàn)游戲的開(kāi)發(fā),采用從外部文件讀取地圖、自動(dòng)控制敵人坦克運(yùn)行的方式進(jìn)行控制,具有一定的可玩性和復(fù)雜性。經(jīng)過(guò)了細(xì)心的調(diào)試和排錯(cuò)解決了絕大部分的問(wèn)題。但幾乎每一個(gè)計(jì)算機(jī)程序都會(huì)有這樣那樣的不足,尤其是未經(jīng)過(guò)精心維護(hù)的非商業(yè)軟件。即使是作為操作系統(tǒng)的各種版本的Windows也時(shí)常會(huì)發(fā)生許多類型的錯(cuò)誤和漏洞。本游戲程序?qū)τ诔跎娲祟I(lǐng)域的畢業(yè)設(shè)計(jì)課題來(lái)說(shuō),尤其在開(kāi)始初期,感覺(jué)邏輯復(fù)雜,難以控制,因此至今還有一些未能解決的bug。目前發(fā)現(xiàn)的bug和未完善的功能列表如下:1. 與敵人對(duì)子彈的時(shí)候有時(shí)候可能會(huì)出現(xiàn)當(dāng)敵人死后,自己若仍在原地,子彈會(huì)發(fā)不出去。 2. 敵人的人工智能變化較少,不夠理想。 3. 子彈和敵人經(jīng)常會(huì)與畫面的刷新的線程不同步,造成畫面閃爍。 4. 由于每次子彈發(fā)射和每次坦克的移動(dòng)的一個(gè)象素都會(huì)對(duì)所有坦克和所有子彈進(jìn)行一次循環(huán)檢查,并由于同時(shí)開(kāi)的線程比較多,使得本來(lái)運(yùn)行效率就不高的KVM運(yùn)行異常緩慢。即使刷屏沒(méi)有間隔也不會(huì)提高速度。 5. 最好有接寶物的設(shè)置,增強(qiáng)可玩性。6. 當(dāng)敵人和自己同時(shí)死亡時(shí),仍會(huì)過(guò)關(guān),但game over字樣會(huì)出現(xiàn),下一關(guān)坦克不會(huì)出現(xiàn),但可以隱身發(fā)炮。已經(jīng)解決的重要bug:1. 當(dāng)發(fā)出子彈到達(dá)邊界并同時(shí)還在草叢中時(shí)會(huì)拋出數(shù)組邊界異常。 2. 有時(shí)會(huì)莫名其妙的死機(jī)。 3. 當(dāng)坦克在草叢中時(shí),對(duì)方坦克發(fā)出的子彈不能將其擊毀。 經(jīng)驗(yàn)和感想這款游戲作為我的畢業(yè)設(shè)計(jì),是本人目前做過(guò)的最有意義的程序,這期間對(duì)J2ME的學(xué)習(xí),使我又回到了初學(xué)Java的時(shí)候。本科期間做過(guò)很多課程設(shè)計(jì),大多規(guī)模很小。在數(shù)據(jù)庫(kù)、各種應(yīng)用軟件和游戲中,我仍覺(jué)得對(duì)游戲的設(shè)計(jì)有極大的熱情。因?yàn)槠涓鱾€(gè)模塊間的聯(lián)系十分緊密,代碼重復(fù)執(zhí)行率高,當(dāng)經(jīng)過(guò)無(wú)數(shù)次的調(diào)試、修改后,能最終看到成品,有無(wú)比自豪的心情。大學(xué)期間做過(guò)學(xué)生管理程序等簡(jiǎn)單的數(shù)據(jù)庫(kù)管理系統(tǒng)的課程設(shè)計(jì),思想大致相似,變化范圍有限,沒(méi)有太多自己可發(fā)揮的余地。大家作品的最終結(jié)果都離不開(kāi)同一個(gè)模式。相比一些數(shù)據(jù)庫(kù)軟件,游戲的設(shè)計(jì)有很多人情色彩和藝術(shù)思想的發(fā)揮,正式商業(yè)的軟件的人性化界面和各個(gè)游戲間迥異的結(jié)構(gòu)每每會(huì)讓人有去開(kāi)發(fā)的沖動(dòng)。本程序打包后體積23K,運(yùn)行時(shí)如進(jìn)行g(shù)c()內(nèi)存回收可將運(yùn)行時(shí)堆內(nèi)存控制在50K以內(nèi),大小與目前大部分手機(jī)的100K左右的可使用內(nèi)存和500K左右的存儲(chǔ)空間。然而,回首80年代的紅白機(jī)上的坦克大戰(zhàn)原始游戲,將驚嘆那樣的商業(yè)軟件的巧奪天工。華麗的界面,出色的人工智能,流暢的運(yùn)行效果、多音效、雙人操作控制,其二進(jìn)制程序體積僅僅為24K。運(yùn)行在12MHz,8K內(nèi)存的硬件機(jī)器上仍不失流暢性和可玩性。而許多J2ME游戲程序需要200K的運(yùn)行內(nèi)存空間、200MHz的處理器,仍運(yùn)行不夠流暢。機(jī)器代碼級(jí)和基于虛擬機(jī)的半解釋性處理的程序在這里得到了最大的對(duì)比。參考文獻(xiàn)[1] 孫衛(wèi)琴編著 《JAVA面向?qū)ο缶幊獭? 電子工業(yè)出版社 .[2] 詹建飛等著 《J2ME開(kāi)發(fā)精解》 電子工業(yè)出版社 .[3] (美)??藸栔? 《》 機(jī)械工業(yè)出版社.[4] (美)莫尼遜 著編著 《J2ME手機(jī)游戲編程入門》 電子工業(yè)出版社 .[5] (美)梅特斯克,(美)韋克著 《Java設(shè)計(jì)模式》 人民郵電出版社 .[6] 張鵬等著 《JAVA手機(jī)游戲?qū)嵗謨?cè)》 海洋出版社 .[7] 陳剛著 《Eclipse從入門到精通》 清華大學(xué)出版社 .[8] (美)Ron patton,張小松等譯 《軟件測(cè)試》 機(jī)械工業(yè)出版社 .[9] (美)哈特姆諾著 《Java技術(shù)精髓》 機(jī)械工業(yè)出版社 .[10] .[11] [12] .[13] .[14] .[15] .致 謝首先感謝我的指導(dǎo)老師XX,他在我的畢業(yè)設(shè)計(jì)過(guò)程中提出了指導(dǎo)性的方案和架構(gòu),并指引我閱讀相關(guān)的資料和書籍,使我在不熟悉的領(lǐng)域中仍能迅速掌握新興的技術(shù)。感謝答辯組對(duì)本畢業(yè)設(shè)計(jì)的考核,如果可以得到專家的認(rèn)可將對(duì)我的學(xué)習(xí)和工作給予極大的鼓勵(lì)。你們客觀的評(píng)價(jià)和建議我將牢記在心,在今后的發(fā)展中揚(yáng)長(zhǎng)避短,更加努力的嚴(yán)格要求自己。感謝學(xué)校在設(shè)計(jì)中對(duì)我的督促、鼓勵(lì)和為我創(chuàng)造的安靜環(huán)境,校園的支持永遠(yuǎn)是個(gè)人發(fā)展的基石。本科學(xué)習(xí)中的各科老師對(duì)提高我的編程素質(zhì)有很大的幫助,我的同學(xué)在設(shè)計(jì)完成后對(duì)程序的測(cè)試,沒(méi)有他們,也許就難以發(fā)現(xiàn)一些潛在的錯(cuò)誤,在此一并表示感謝。謝謝你們!附錄 :package tank。import .*。import .*。import .*。public class BattleCanvas extends GameCanvas implements Runnable{ /** Constructor */private UserSprite userSprite。private LayerManager layerManager。private EnemySprite enemySprite[]。private TiledLayer board。private Sprite gameOver。private ScoreScreen scoreScreen=new ScoreScreen()。private int enemyPosition=1。public static int enemyNum=9。 //total enemy number in current level。public static int enemyOnScreen=0。 //because one tank is served in the initialization.private String level1=/tank/。private String level2=/tank/。public static int currentLevel=1。 //define what level the game is in now.private boolean isLoading=true。 // whether game is in the state loading process。public static long beginTime。public static boolean dead=false。public static boolean pleted=false。public static long endTime。 // used to calculate how much time had been taken on a single level to determine the obtained score./*3 positions are defined at top of the screen each time theenemy es are 1,2,3 will taketurns to e out from these three ports. Default postion is 1. */ public BattleCanvas() throws IOException{ super(true)。 layerManager=new LayerManager()。 board=createTiledLayer()。 createBoard(level1)。 (board)。 userSprit
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1