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

正文內(nèi)容

基于cocos2d-x的斗地主游戲開(kāi)發(fā)畢業(yè)論文-展示頁(yè)

2025-07-06 17:14本頁(yè)面
  

【正文】 的全部特點(diǎn),包括如下內(nèi)容:(1)流程控制:非常容易地管理不同場(chǎng)景之間的流程控制。隨著 Cocos2D 及其分支的發(fā)展,其會(huì)有更多跨平臺(tái)特性,從而可以支持更多的平臺(tái),這會(huì)提高開(kāi)發(fā)者的開(kāi)發(fā)效率。 2012 年年初,Cocos2Dx 團(tuán)隊(duì)再次開(kāi)發(fā)出兩個(gè)分支,分別是支持 Windows Phone 的 XNA 版和支持 HTML5 的 HTML5 版(后者還得到了 Google公司的贊助)。因此 Cocos2Dx 迅速成為開(kāi)發(fā)者的首選。Cocos2Dx 是用 C++ 重寫的 Cocos2D 框架,因?yàn)锳ndroid 和 iOS 均支持 C++。(7) 人工智能首先,電腦本身是不會(huì)出牌的,但是我們可給電腦玩家設(shè)計(jì)出一套出牌及跟牌的優(yōu)先級(jí),再結(jié)合地主與農(nóng)民身份的區(qū)別做一些特殊處理,即可實(shí)現(xiàn)簡(jiǎn)單的人工智能。(5)再玩一局當(dāng)有一個(gè)玩家出完所有的牌時(shí)游戲結(jié)束,此時(shí)只要再次運(yùn)行打牌所在的場(chǎng)景,讓服務(wù)器重選發(fā)送牌數(shù)據(jù),即可實(shí)現(xiàn)再玩一局的功能。(3)玩家叫分叫分功能可通過(guò)設(shè)計(jì)一組叫分菜單項(xiàng),每次玩家叫分時(shí)根據(jù)上家所叫分?jǐn)?shù)禁用相應(yīng)菜單項(xiàng),叫分結(jié)束后刪除叫分菜單,通過(guò)C/S通信可實(shí)現(xiàn)玩家的正常叫分。據(jù)分析此功能可實(shí)現(xiàn)。對(duì)于斗地主游戲本身,在市場(chǎng)上的開(kāi)發(fā)已經(jīng)相當(dāng)成熟,像市面上比較流行的斗地主、JJ斗地主、博雅斗地主等??梢?jiàn)ios及Android均支持C++語(yǔ)言在其平臺(tái)上進(jìn)行游戲開(kāi)發(fā),C++開(kāi)發(fā)的軟件運(yùn)行在Windows系統(tǒng)下更是無(wú)可爭(zhēng)議。 可行性分析 Cocos2D是針對(duì)IOS設(shè)計(jì)的一款游戲引擎,隨著引擎的發(fā)展,其分支Cocos2dx 是一個(gè)支持多平臺(tái)的 2D 手機(jī)游戲引擎,使用 C++ 開(kāi)發(fā)。隨著 Cocos2D 及其分支的發(fā)展,其會(huì)有更多跨平臺(tái)特性,從而可以支持更多的平臺(tái),這會(huì)提高開(kāi)發(fā)者的開(kāi)發(fā)效率。2012 年年初,Cocos2Dx 團(tuán)隊(duì)再次開(kāi)發(fā)出兩個(gè)分支,分別是支持 Windows Phone 的 XNA 版和支持 HTML5 的 HTML5 版(后者還得到了 Google公司的贊助)。經(jīng)過(guò)一段時(shí)間的發(fā)展,眾多開(kāi)發(fā)者使用 Cocos2Dx 開(kāi)發(fā)出了多款游戲,包括捕魚達(dá)人、地鐵總動(dòng)員等。因?yàn)?Cocos2Dx 具有跨平臺(tái)的特點(diǎn),再加上 Cocos2D全球社區(qū)的支持,Cocos2D 框架簡(jiǎn)單易學(xué)、十分容易快速上手。怎樣將一款游戲發(fā)布到多個(gè)平臺(tái)也是開(kāi)發(fā)者們一直在探索的問(wèn)題。從《植物大戰(zhàn)僵尸》到《憤怒的小鳥(niǎo)》,移動(dòng)平臺(tái)游戲的開(kāi)發(fā)進(jìn)入了新的階段。cocos2dx引擎在國(guó)內(nèi)手機(jī)游戲開(kāi)發(fā)使用的份額接近70%,而國(guó)外使用份額則是接近25%,在蘋果APP排行榜top10里面,有7個(gè)都是用cocos2dx引擎開(kāi)發(fā)的。經(jīng)過(guò)一段時(shí)間的發(fā)展,開(kāi)發(fā)者使用 Cocos2Dx 開(kāi)發(fā)出了多款成功的游戲,包括捕魚達(dá)人、地鐵總動(dòng)員等佳作[1]。但是問(wèn)題依然存在,對(duì)于不同的智能平臺(tái)(Android、iOS 等操作系統(tǒng))依然需要編寫不同的代碼來(lái)進(jìn)行開(kāi)發(fā),如何跨平臺(tái)這個(gè)問(wèn)題擺在了開(kāi)發(fā)者面前 。智能平臺(tái)的硬件及性能的提高并沒(méi)有帶來(lái)游戲品質(zhì)的提高,于是開(kāi)發(fā)者們也探索著進(jìn)行只針對(duì)單一平臺(tái)的開(kāi)發(fā),他們利用平臺(tái)特性(多點(diǎn)觸屏,重力感應(yīng)等)開(kāi)發(fā)出了很多不錯(cuò)的游戲。1 緒論 課題研究意義隨著蘋果 iOS 系統(tǒng)和 iPhone、iPad 等一系列產(chǎn)品的發(fā)布,隨著 Android 系統(tǒng)和相應(yīng)設(shè)備的誕生,移動(dòng)平臺(tái)的種類得到了豐富,并從單一的手機(jī)發(fā)展到平板電腦等多種手持設(shè)備上。應(yīng)用Cocos2Dx的一些特性,結(jié)合C++的提供的STL模板庫(kù),開(kāi)發(fā)一款界面友好、跨平臺(tái)的斗地主游戲。特別是隨著 Android 和 iOS 平臺(tái)的興起,開(kāi)發(fā)者的游戲跨平臺(tái)的需求更強(qiáng)了,隨即 Cocos2Dx誕生[1]。但另一方面,平臺(tái)的多樣性也給開(kāi)發(fā)者帶來(lái)諸多不便。桂林電子科技大學(xué)畢業(yè)設(shè)計(jì)(論文)報(bào)告用紙基于Cocos2dx的斗地主游戲開(kāi)發(fā)畢業(yè)論文引言 11 緒論 2 課題研究意義 2 國(guó)內(nèi)外研究現(xiàn)狀 2 可行性分析 32 相關(guān)技術(shù)背景 4 Cocos2dx簡(jiǎn)介 4 數(shù)據(jù)結(jié)構(gòu)及算法 5 SOCKET及多線程編程 6 SOCKET編程 6 多線程編程 83 開(kāi)發(fā)環(huán)境的配置 9 開(kāi)發(fā)環(huán)境的配置 9 Windows下的開(kāi)發(fā)環(huán)境配置 10 Android下的開(kāi)發(fā)環(huán)境配置 134 總體設(shè)計(jì) 16 軟件的構(gòu)建 16 模塊的構(gòu)建 17 功能的構(gòu)建 18 軟件的框架 205 軟件設(shè)計(jì)與實(shí)現(xiàn)(詳細(xì)設(shè)計(jì)) 21 數(shù)據(jù)結(jié)構(gòu)及算法的設(shè)計(jì) 21 數(shù)據(jù)庫(kù)的設(shè)計(jì) 22 模塊的設(shè)計(jì)與實(shí)現(xiàn) 23 用戶登錄注冊(cè)及驗(yàn)證模塊 23 網(wǎng)絡(luò)通信模塊 24 自動(dòng)發(fā)牌模塊 26 玩家叫分模塊 27 出牌選牌模塊 28 人工智能模塊 29 重玩模塊 316 軟件測(cè)試 32 測(cè)試環(huán)境 32 測(cè)試準(zhǔn)則 32 功能測(cè)試 32 登錄驗(yàn)證功能的測(cè)試 32 自動(dòng)發(fā)牌功能的測(cè)試 33桂林電子科技大學(xué)畢業(yè)設(shè)計(jì)(論文)報(bào)告用紙 叫分功能的測(cè)試 34 托管功能的測(cè)試 35 提示功能的測(cè)試 35 重選功能的測(cè)試 36 電腦智力的測(cè)試 377 總結(jié) 38謝 辭 39參考文獻(xiàn) 40附 錄 41第 50 頁(yè) 共 49 頁(yè)桂林電子科技大學(xué)畢業(yè)設(shè)計(jì)(論文)報(bào)告用紙引言隨著智能設(shè)備平臺(tái)的普及、用戶數(shù)量的增多,智能平臺(tái)的應(yīng)用,尤其是游戲異?;鸨摹吨参锎髴?zhàn)僵尸》到《憤怒的小鳥(niǎo)》,移動(dòng)平臺(tái)游戲的開(kāi)發(fā)進(jìn)入了新的階段。怎樣將一款游戲發(fā)布到多個(gè)平臺(tái)也是開(kāi)發(fā)者們一直在探索的問(wèn)題。本文所開(kāi)發(fā)的斗地主游戲正是基于Cocos2Dx游戲引擎的,利用此引擎開(kāi)發(fā)出的游戲可以在多個(gè)平臺(tái)運(yùn)行,像主流的Android、IOS、WindowsPhone等手機(jī)平臺(tái),Windows等桌面系統(tǒng)。接下來(lái)將逐個(gè)介紹各個(gè)模塊的設(shè)計(jì)和具體實(shí)現(xiàn)過(guò)程。而移動(dòng)游戲的開(kāi)發(fā)方式同樣也有了改變,開(kāi)發(fā)者們開(kāi)始嘗試針對(duì)不同平臺(tái)的開(kāi)發(fā)框架來(lái)進(jìn)行開(kāi)發(fā)。雖然 Android 平臺(tái)的屏幕及分辨率也是千差萬(wàn)別,但是由于出色的框架使得開(kāi)發(fā)和移植變得簡(jiǎn)單起來(lái),同時(shí)也不需要過(guò)多考慮內(nèi)存的限制??缙脚_(tái)的引擎有基于 HTML5 的跨平臺(tái)特性產(chǎn)生的開(kāi)發(fā)引擎,也有基于 OpenGL 開(kāi)發(fā)的游戲引擎,其中 Cocos2Dx 廣泛受到開(kāi)發(fā)者的關(guān)注,因?yàn)樗粌H具有跨平臺(tái)的特點(diǎn),還具有受 Cocos2D 全球社區(qū)的支持、框架簡(jiǎn)單易學(xué)、十分容易上手等特點(diǎn)。Cocos2dx 是一個(gè)支持多平臺(tái)的 2D 手機(jī)游戲引擎,使用 C++ 開(kāi)發(fā),基于OpenGL ES,具體各個(gè)平臺(tái)的支持如下:IOSA,Android,Black Berry,Html5,window phone等。 國(guó)內(nèi)外研究現(xiàn)狀隨著智能設(shè)備平臺(tái)的普及、用戶數(shù)量的增多,智能平臺(tái)的應(yīng)用,尤其是游戲異常火爆。但另一方面,平臺(tái)的多樣性也給開(kāi)發(fā)者帶來(lái)諸多不便。特別是隨著 Android 和 iOS 平臺(tái)的興起,開(kāi)發(fā)者的游戲跨平臺(tái)的需求更強(qiáng)了,隨即 Cocos2Dx 分支誕生[1]。因此 Cocos2Dx 迅速成為開(kāi)發(fā)者的首選。2012 年年初,英國(guó)設(shè)計(jì)大師 Michael Heald 專門為 Cocos2Dx 設(shè)計(jì)了標(biāo)志[2]。此外,在 Zygaena 的幫助下,還研發(fā)出綁定 JavaScript 的 Cocos2Dx 版本。相信 Cocos2Dx 將會(huì)更加受到廣大開(kāi)發(fā)者的歡迎,Cocos2Dx 引擎也可以擴(kuò)大其影響,成為全平臺(tái)的二維游戲引擎。而 2009 年 6 月,Google Android 方面也發(fā)布了 NDK(Native Develop Kit,原生態(tài)本地開(kāi)發(fā)包),支持開(kāi)發(fā)者使用 C/C++ 語(yǔ)言開(kāi)發(fā) Android 程序。所以,對(duì)于用Cocos2Dx開(kāi)發(fā)的游戲跨平臺(tái)實(shí)現(xiàn)是可行的。現(xiàn)對(duì)于斗地主的功能進(jìn)行一個(gè)可行性分析:(1)用戶登錄注冊(cè)及驗(yàn)證通過(guò)Cocos2Dx提供的場(chǎng)景類,在其場(chǎng)景上布景,添加編輯框、菜單及按鈕,然后利用導(dǎo)演類即可運(yùn)行場(chǎng)景;利用菜單響應(yīng)函數(shù)可在用戶單機(jī)注冊(cè)菜單項(xiàng)是切換場(chǎng)景到注冊(cè)界面;驗(yàn)證功能可通過(guò)Cocos2Dx中支持的游戲存檔類Defaulter實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ),可將其看做類似于Android的輕量級(jí)數(shù)據(jù)庫(kù)Sq Lite來(lái)使用。 (2)自動(dòng)發(fā)牌先讓服務(wù)器自動(dòng)隨機(jī)生成一副牌,然后分發(fā)給不同的客服端,利用Cocos2Dx中的計(jì)時(shí)器函數(shù)schedule()來(lái)設(shè)定一個(gè)計(jì)時(shí)器,每格一段時(shí)間調(diào)用其定時(shí)器函數(shù)(繪制一張牌),多次調(diào)用即可實(shí)現(xiàn)自動(dòng)發(fā)牌的效果。(4)出牌選牌出牌選牌環(huán)節(jié)與玩家叫分模塊類似,只是需要一些算法來(lái)實(shí)現(xiàn)判斷的牌的大小、類型,提示出牌等等,所以理論上亦是可行的。(6)網(wǎng)絡(luò)通信斗地主要實(shí)現(xiàn)聯(lián)網(wǎng)打牌可通過(guò)SOCKET技術(shù)來(lái)實(shí)現(xiàn)服務(wù)器與客服端的通信,再借助多線程技術(shù)創(chuàng)建接受線程即可多接受的數(shù)據(jù)進(jìn)行處理,從而轉(zhuǎn)發(fā)給其他玩家,打到玩家間互相通信的效果。2 相關(guān)技術(shù)背景 Cocos2dx簡(jiǎn)介 Cocos2Dx中“x”包含兩個(gè)意思 :一方面是 C++ 的文件擴(kuò)展 CXX,“X”表示該項(xiàng)目是由 C++ 編寫的 ;另一方面意味著交叉,這個(gè)開(kāi)源項(xiàng)目的目標(biāo)是讓用戶創(chuàng)建跨平臺(tái)的代碼。因?yàn)?Cocos2Dx 具有跨平臺(tái)的特點(diǎn),再加上 Cocos2D全球社區(qū)的支持,Cocos2D 框架簡(jiǎn)單易學(xué)、十分容易快速上手。經(jīng)過(guò)一段時(shí)間的發(fā)展,眾多開(kāi)發(fā)者使用 Cocos2Dx 開(kāi)發(fā)出了多款游戲,包括捕魚達(dá)人、地鐵總動(dòng)員等[3]。此外,在 Zygaena 的幫助下,還研發(fā)出綁定 JavaScript 的 Cocos2Dx 版本。相信 Cocos2Dx 將會(huì)更加受到廣大開(kāi)發(fā)者的歡迎,Cocos2Dx 引擎也可以擴(kuò)大其影響,成為全平臺(tái)的二維游戲引擎。(2)精靈:快速而方便的精靈。(4)特效:包括波浪、旋轉(zhuǎn)和透鏡等特性。(6)轉(zhuǎn)換:從一個(gè)場(chǎng)景移動(dòng)到另外一個(gè)不同的場(chǎng)景。(8)文本渲染:支持文本渲染標(biāo)簽。(10)BSD 許可 :BSD(Berkelyan Software Distribution,伯克利軟件套件)開(kāi)源協(xié)議給予使用者很大的自由。(11)基于 OpenGL:支持硬件加速。(1)順序容器vectorVector是一種順序容器,跟數(shù)組類似,可以將其稱為動(dòng)態(tài)數(shù)據(jù)[4]。(2)關(guān)聯(lián)容器mapMap是鍵—值對(duì)的集合,map類型通??梢岳斫鉃殛P(guān)聯(lián)容器:可使用其下標(biāo)來(lái)獲取一個(gè)值,正如內(nèi)置數(shù)組類型一樣。當(dāng)向map容器里添加元素或訪問(wèn)元素時(shí),如果元素不存在則會(huì)自動(dòng)添加元素,這樣我們?cè)诮y(tǒng)計(jì)同樣牌值牌的時(shí)候,可以利用map容器對(duì)牌的張數(shù)進(jìn)行統(tǒng)計(jì),進(jìn)而找出牌的類型。 SOCKET及多線程編程 SOCKET編程sockets(套接字)編程有三種,流式套接字(SOCK_STREAM),數(shù)據(jù)報(bào)套接字(SOCK_DGRAM),原始套接字(SOCK_RAW)?!緦?shí)現(xiàn)步驟】(1)服務(wù)器端編程的步驟:①加載套接字庫(kù),創(chuàng)建套接字(WSAStartup()/socket());②綁定套接字到一個(gè)IP地址和一個(gè)端口上(bind());③將套接字設(shè)置為監(jiān)聽(tīng)模式等待連接請(qǐng)求(listen());④請(qǐng)求到來(lái)后,接受連接請(qǐng)求,返回一個(gè)新的對(duì)應(yīng)于此次連接的套接字(accept());⑤用返回的套接字和客戶端進(jìn)行通信(send()/recv());⑥返回,等待另一連接請(qǐng)求;⑦關(guān)閉套接字,關(guān)閉加載的套接字庫(kù)(closesocket()/WSACleanup())。(3)Socket編程通用步驟(模板):第1步 加載/釋放Winsock庫(kù):加載方法:WSADATA wsa。wsa) != 0){ return。第2步 構(gòu)造SOCKET:服務(wù)端:構(gòu)造監(jiān)聽(tīng)SOCKET,流式SOCKET. SOCKET Listen_Sock = socket(AF_INET, SOCK_STREAM, 0)客戶端:構(gòu)造通訊SOCKET,流式SOCKET.SOCKET Client_Sock = socket(AF_INET, SOCK_STREAM, 0)第3步 配置監(jiān)聽(tīng)地址和端口:服務(wù)端: SOCKADDR_IN serverAddrZeroMemory((char *)amp。 = AF_INET。 /*本地監(jiān)聽(tīng)端口:1234*/ = htonl(INADDR_ANY)。serverAddr,sizeof(serverAddr))第5步 服務(wù)端/客戶端連接:服務(wù)端:等待客戶端接入. SOCKET Command_Sock = accept(Listen_Sock, ...)客戶端:請(qǐng)求與服務(wù)端連接.int ret = connect(Client_Sock, ...)第6步 收/發(fā)數(shù)據(jù):服務(wù)端: buf[1024]. 接收數(shù)據(jù):recv(Command_Sock,buf, ...)或 發(fā)送數(shù)據(jù):send(Command_Sock,buf, ...)客戶端: buf[1024]. 發(fā)送數(shù)據(jù):send(Client_Sock,buf, ...)或 接收數(shù)據(jù):recv(Client_Sock,buf, ...)第7步 關(guān)閉SOCKET:服務(wù)端:關(guān)閉SOCKET. closesocket(Listen_Sock)closesocket(Command_Sock)客戶端:關(guān)閉SOCKET.closesocket(Client_Sock) 多線程編程【多線程編程的步驟】(1)編寫線程函數(shù)  所有線程必須從一個(gè)指定的函 數(shù)開(kāi)始執(zhí)行,該函數(shù)稱為線程函數(shù),它必須具有下列原型:DWORD WINAPI YourThreadFunc(LPVOID lpvThreadParm)。象WinMain函數(shù)一樣,
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1