《坦克大戰(zhàn)-項(xiàng)目總結(jié).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《坦克大戰(zhàn)-項(xiàng)目總結(jié).ppt(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、坦克大戰(zhàn)項(xiàng)目總結(jié)學(xué)員:葉 青班級(jí):AF1 3 0 5學(xué)號(hào):1 2 指導(dǎo)老師:吳曉東 目 錄項(xiàng)目總體介紹項(xiàng)目詳細(xì)介紹項(xiàng)目亮點(diǎn)項(xiàng)目心得體會(huì) 起源:坦克大戰(zhàn)(Battle City)是1 9 8 5年日本南夢(mèng)宮Namco游戲公司在任天堂FC平臺(tái)上,推出的一款多方位平面射擊游戲。游戲以坦克戰(zhàn)斗及保衛(wèi)基地為主題,屬于策略型聯(lián)機(jī)類(lèi)。同時(shí)也是FC平臺(tái)上少有的內(nèi)建關(guān)卡編輯器的幾個(gè)游戲之一,玩家可自己創(chuàng)建獨(dú)特的關(guān)卡,并通過(guò)獲取一些道具使坦克和基地得到強(qiáng)化。1 .1 項(xiàng)目背景和開(kāi)發(fā)意義 對(duì)開(kāi)發(fā)者的意義:由于坦克大戰(zhàn)具有較強(qiáng)數(shù)學(xué)性、邏輯性等,同時(shí)又富有趣味性,開(kāi)發(fā)起來(lái)樂(lè)趣無(wú)窮。因此,經(jīng)常用來(lái)當(dāng)做開(kāi)發(fā)題材。并且該項(xiàng)目
2、設(shè)計(jì)到網(wǎng)絡(luò),更能鍛煉開(kāi)發(fā)者的數(shù)據(jù)封包,規(guī)劃等能力;卓越教育安卓課程第二階段項(xiàng)目:基于java SE 高級(jí)的坦克大戰(zhàn):復(fù)習(xí)Java 編程基礎(chǔ)熟練使用GUI熟練使用多線程熟練使用IO流熟練使用網(wǎng)絡(luò)開(kāi)發(fā)鍛煉邏輯思維能力掌握MVC的開(kāi)發(fā)模式學(xué)會(huì)bug的定位,查找,糾正1 .1 項(xiàng)目背景和開(kāi)發(fā)意義 環(huán)境:window xp系統(tǒng)工具:Eclipse+Jdk1.6 1 .2 開(kāi)發(fā)環(huán)境 1 .3、服務(wù)器界面介紹初始化服務(wù)器 admin*用戶連接上來(lái)用戶離開(kāi)游戲 1 .3、客戶端界面介紹 1 .3、客戶端界面介紹 1 .3、客戶端界面介紹 1 .3、客戶端界面介紹 1 .4、坦克介紹敵方坦克-重型坦克:敵方坦克
3、-輕型坦克:敵方坦克-道具坦克:我方坦克: 1 .5、道具介紹獎(jiǎng) 勵(lì) 一 架 坦 克讓 坦 克 無(wú) 敵 8秒讓 基 地 周 圍 產(chǎn) 生 鐵 , 有 效 時(shí) 間 8秒加 強(qiáng) 坦 克 , 2顆 加 快 速 度 , 3顆 可 打 鐵讓 地 圖 上 所 有 坦 克 爆 炸讓 敵 方 坦 克 暫 停 8秒 目 錄項(xiàng)目總體介紹項(xiàng)目詳細(xì)介紹項(xiàng)目亮點(diǎn)項(xiàng)目心得體會(huì) 2 .1 MVC框架實(shí)現(xiàn) 2 .1 服務(wù)端MVC框架實(shí)現(xiàn) 用于接受客戶端數(shù)據(jù),處理數(shù)據(jù),邊界判斷等,然后將處理好的數(shù)據(jù)發(fā)送給客戶端用于登陸認(rèn)證,賬號(hào)管理,修改信息,注冊(cè)等功能用于坦克,子彈,道具,地圖等類(lèi)服務(wù)端界面 2 .1 客戶端MVC框架實(shí)現(xiàn) 用
4、于監(jiān)聽(tīng)鍵盤(pán),然后發(fā)送消息,并且接受服務(wù)器數(shù)據(jù),然后進(jìn)行解析,數(shù)據(jù)賦值等功能用于坦克,子彈,道具,地圖等類(lèi)客戶端游戲界面 2 .2 游戲時(shí)序圖 2 .2 客戶端流程圖 2 .3 網(wǎng)絡(luò)協(xié)議規(guī)劃1、用戶注冊(cè),登錄,管理數(shù)據(jù)包2、游戲準(zhǔn)備,開(kāi)始階段包3、游戲過(guò)程數(shù)據(jù)處理包 用戶注冊(cè),登錄,管理數(shù)據(jù)包客戶端服務(wù)端Login + 用戶名 + 密碼LoginAnswer : Success(或者fail_account、fail_password、fail_Online)登錄包Accou t_Check : 用戶名User_Register_Ac ount_Answer : success(fail)注冊(cè)包
5、Register : 用戶名等RegisterAnswer : success(fail)管理包SearchSearchAnswer : 查詢到的信息deleteUserdeleteUser : Success(Fail) 2 .3 網(wǎng)絡(luò)協(xié)議規(guī)劃 Up (Down、Left、Right、Launch、Stop、Continue)游戲過(guò)程數(shù)據(jù)處理包客戶端服務(wù)端Map:地圖信息(第一次全部地圖,后面只發(fā)更新) + Tank:坦克數(shù)組信息 + Bullet :子彈數(shù)組信息 + Porp : 道具信息GameWin:WinGameOver:OverGameStop:yesGameContinue:ye
6、s 2 .3 網(wǎng)絡(luò)協(xié)議規(guī)劃 目 錄項(xiàng)目總體介紹項(xiàng)目詳細(xì)介紹項(xiàng)目亮點(diǎn)項(xiàng)目心得體會(huì) 加入聊天,使游戲更具有娛樂(lè)性。實(shí)現(xiàn)方法:在游戲區(qū)域使用gridLayout布局,在第3個(gè)格子處添加文本區(qū)域和文本框,并設(shè)置為透明,在文本框添加addActionlister,然后將消息直接放到arrayList發(fā)送給服務(wù)器,同時(shí)啟用線程,使用戶2秒發(fā)送一次消息;服務(wù)器不處理,只聊天消息跟在數(shù)據(jù)包后面轉(zhuǎn)發(fā)3 .1 項(xiàng)目亮點(diǎn)-聊天功能 3 .1 項(xiàng)目亮點(diǎn)-多端口服務(wù)器啟動(dòng)時(shí),將啟動(dòng)一個(gè)守護(hù)進(jìn)程,和3個(gè)游戲端口。守護(hù)進(jìn)程將專(zhuān)門(mén)用于管理玩家的登錄,注冊(cè),驗(yàn)證,查詢等功能。當(dāng)用戶成功登錄后,可以選擇端口進(jìn)行游戲,端口間互不影
7、響。類(lèi)似于游戲分區(qū)。 實(shí)現(xiàn)方法:在服務(wù)端和客戶端專(zhuān)門(mén)啟用一個(gè)進(jìn)程,然后創(chuàng)立socket,用于賬號(hào)登錄,管理,注冊(cè),然后這個(gè)進(jìn)程調(diào)用3次游戲進(jìn)程,每次傳過(guò)去的端口不一樣,然后用戶登錄后將端口發(fā)送過(guò)去,便可進(jìn)行選擇端口; 當(dāng)游戲過(guò)程中,其中一個(gè)玩家退出游戲后。此時(shí),若游戲結(jié)束,則再連接到該端口的玩家自動(dòng)匹配到該玩家,不必重新退出游戲再登錄。若玩家游戲還沒(méi)結(jié)束,則新連接進(jìn)來(lái)的將重新分配新房間3 .1 項(xiàng)目亮點(diǎn)-匹配房間實(shí)現(xiàn)方法:創(chuàng)建一個(gè)類(lèi)繼承arrayList,然后添加2個(gè)屬性:是否滿人,是否在游戲中;然后創(chuàng)建個(gè)大廳(ArrayList),用于存放剛剛創(chuàng)建的類(lèi),創(chuàng)建小房間后就存入這個(gè)大廳,用戶連接時(shí)
8、,直接從這個(gè)大廳進(jìn)行搜索房間,根據(jù)剛剛的2個(gè)屬性。若搜索到則進(jìn)入,否則創(chuàng)建新房間; 目 錄項(xiàng)目總體介紹項(xiàng)目詳細(xì)介紹項(xiàng)目亮點(diǎn)項(xiàng)目心得體會(huì) 時(shí)間飛逝,不知不覺(jué),2周的坦克大戰(zhàn)項(xiàng)目過(guò)去了。同時(shí),也不知不覺(jué)的敲了1 3 0 0 0多行代碼,在這2周多的時(shí)間里,每天都是在代碼中度過(guò),經(jīng)常加班加點(diǎn),夢(mèng)里還時(shí)常分析算法,思考實(shí)現(xiàn)方法。但看著項(xiàng)目慢慢成型,有種喜悅的心情。在學(xué)習(xí)上:1、學(xué)會(huì)了分析問(wèn)題,規(guī)劃模型。2、通過(guò)多種想法去實(shí)現(xiàn)一個(gè)功能,然后取效率高的方法。3、學(xué)會(huì)了服務(wù)端與客戶端之間的通信,包的規(guī)劃,發(fā)包,解包等。在班級(jí)上:此次項(xiàng)目,大家都付出了努力,加班加點(diǎn),早來(lái)晚歸,大家溝通想法,解決一個(gè)又一個(gè)問(wèn)題,慢慢的都在成長(zhǎng),相信有付出就會(huì)有收獲。在這一次的項(xiàng)目實(shí)踐中,我們都復(fù)習(xí)了jase的內(nèi)容,并且熟練使用網(wǎng)絡(luò),流,線程等技術(shù)。但項(xiàng)目過(guò)程中還是遇到很多bug。例如:并發(fā)修改問(wèn)題,socket連接錯(cuò)誤,IO讀取失敗,json解析錯(cuò)誤等等。但最后都慢慢找出原因,解決問(wèn)題。本次項(xiàng)目更認(rèn)識(shí)到,網(wǎng)絡(luò)游戲只不過(guò)是數(shù)據(jù)間的交互!最后,非常感謝曉東老師的耐心、細(xì)心教導(dǎo)。陪伴我們共同度過(guò)了第二次的項(xiàng)目階段。下個(gè)階段-安卓,將是一個(gè)全新的開(kāi)始,我們將更 用心,更努力學(xué)習(xí),與老師共同學(xué)習(xí),共同進(jìn)步。老師,您辛苦了! 心得體會(huì)