logo资料库

基于cocos2d-x的斗地主毕设论文.doc

第1页 / 共54页
第2页 / 共54页
第3页 / 共54页
第4页 / 共54页
第5页 / 共54页
第6页 / 共54页
第7页 / 共54页
第8页 / 共54页
资料共54页,剩余部分请下载后查看
引言
1 绪论
1.1 课题研究意义
1.2 国内外研究现状
1.3 可行性分析
2 相关技术背景
2.1 Cocos2d-x简介
2.2 数据结构及算法
2.3 SOCKET及多线程编程
2.3.1 SOCKET编程
2.3.2 多线程编程
3 开发环境的配置
3.1 开发环境的配置
3.1.1 Windows下的开发环境配置
3.1.2 Android下的开发环境配置
4 总体设计
4.1 软件的构建
4.1.1 模块的构建
4.1.2 功能的构建
4.2 软件的框架
5 软件设计与实现(详细设计)
5.1 数据结构及算法的设计
5.2 数据库的设计
5.3 模块的设计与实现
5.3.1 用户登录注册及验证模块
5.3.2 网络通信模块
5.3.3 自动发牌模块
5.3.4 玩家叫分模块
5.3.5 出牌选牌模块
5.3.6 人工智能模块
5.3.7 重玩模块
6 软件测试
6.1 测试环境
6.2 测试准则
6.3 功能测试
6.3.1 登录验证功能的测试
6.3.2 自动发牌功能的测试
6.3.3 叫分功能的测试
6.3.4 托管功能的测试
6.3.5 提示功能的测试
6.3.6 重选功能的测试
6.3.7 电脑智力的测试
7 总结
谢 辞
参考文献
附 录
桂林电子科技大学毕业设计(论文)报告用纸 编号: 毕业设计(论文)说明书 题 目: 基于 Cocos2d-x 的 斗地主游戏开发 学 专 院: 数学与计算科学学院 业: 信息与计算科学 学生姓名: 李光挺 学 号: 1000710117 指导教师单位: 数学与计算科学学院 指导教师: 职 称: 宁黎华 讲 师 题目类型: 理论研究 实验研究 工程设计 工程技术研究 软件开发 √ 2014 年 5 月 28 日
桂林电子科技大学毕业设计(论文)报告用纸 摘 要 随着智能设备平台的普及、用户数量的增多,智能平台的应用,尤其是 游戏异常火爆。斗地主是一款风靡全国的纸牌游戏,玩法简单,娱乐性强, 老少皆宜。要开发一款斗地主游戏,如何才能一次开发,多个平台复用?无 论从成本或效率考虑,cocos2d-x 无疑是一个最佳选择。cocos2d-x 是一个 跨平台的游戏引擎,它在国内手机游戏开发使用的份额接近 70%,而国外使 用份额则是接近 25%,在苹果 APP 排行榜 top10 里面,有 7 个都是用 cocos2d-x 引擎开发的。 基于此,本文主要开发和研究一款基于 cocos2d-x 的斗地主游戏,游戏 分为网络和单机两个版本供玩家选择。主要包括自动发牌、玩家叫分、出牌 选牌、再玩一局等基本功能,网络版还需实现用户登录注册及验证、网络通 信,单机版则实现电脑 AI 的人工智能(电脑可以自动出牌)。开发所使用的 语言是 C++,软件需要使用 Cocos2d-x 游戏引擎库,只涉及到引擎的一些基 本动作、精灵、导演、场景、布景层及数据存储等基本技术。本游戏设计的 主要重点和难点是出牌选牌、网络通信及电脑 AI 的人工智能,其中网络通 信主要通过 SOCKET 编程和多线程(接收线程)技术,出牌选牌主要通过实现 判断牌的类型、找出牌的类型、比较牌的大小等算法,电脑 AI 的设计主要 通过设定一系列出牌和跟牌的优先级算法来实现人工智能。游戏界面友好, 操作简便,娱乐性强,可移植到多个平台,特别是手机单机版在不失娱乐性 的同时还省了流量。 关键字:斗地主;cocos2d-x;跨平台;人工智能
桂林电子科技大学毕业设计(论文)报告用纸 Abstract With the popularity of intelligence devices platforms, increasing the number of users, the application of intelligence platform, especially games are booming. Landlords is a popular card game across the country with simple playing method and rich entertainment, suitable for all ages.Exploiting a Landlords game, how to do the primary deveploment, multiple platforms application, cocos2d-x is undoubtedly the best choice not just cost but also efficiency considerations.Cocos2d-x is a cross-platform game engine, possessing about 70% share of the domestic mobile phone game developers users, while 25% inabroad. In Apple APP ,there are seven cocos2d-x engine development in Ranking Top10. Based on this, this paper mainly exploits and researches Landlords game based on cocos2d-x, the game is divided into two networks and standalone versions for players to choose from. Including the basic functions of automatic licensing, call points, play and choose cards,play again, and so on, the network version even needed to achieve registration and user login authentication, network communications, stand-alone version can realize the Artificial Intelligence of AI computer (computer can automatically play the cards). Language used is C + +, the software requires the use of Cocos2d-x game engine, only involves some basic moves, agility, director, scene, scene data storage layer and the basic technology of the engine.The main important and difficult points of the game design is selecting cards, network communications and artificial intelligence of computer AI, network communication is achieved mainly by SOCKET programming and multithreading (receiving thread) technology; the card selected is mainly realized by judging and finding out the type of the card,comparing the seize of the card; the design of computer AI is mainly through the priority algorithm of series of playing and following the caeds to achieve artificial intelligence. The game has the advantages of harmonious interface, easy operation, rich entertainment, and also can be ported to multiple platforms. Keywords: Landlords; cocos2d-x; cross-platform; Artificial Intelligence
桂林电子科技大学毕业设计(论文)报告用纸 引言............................................................................................................. 1 1 绪论..........................................................................................................................................2 1.1 课题研究意义.........................................................................................................................2 1.2 国内外研究现状.................................................................................................................... 2 1.3 可行性分析..............................................................................................................................3 2 相关技术背景.................................................................................................................... 4 2.1 Cocos2d-x 简介....................................................................................................................... 4 2.2 数据结构及算法.................................................................................................................... 5 2.3 SOCKET 及多线程编程.......................................................................................................6 2.3.1 SOCKET 编程......................................................................................................................6 2.3.2 多线程编程.......................................................................................................................... 8 3 开发环境的配置...............................................................................................................9 3.1 开发环境的配置.................................................................................................... 9 3.1.1 Windows 下的开发环境配置.........................................................................................10 3.1.2 Android 下的开发环境配置...........................................................................................13 4 总体设计............................................................................................................................. 16 4.1 软件的构建............................................................................................................................16 4.1.1 模块的构建........................................................................................................................ 17 4.1.2 功能的构建........................................................................................................................ 18 4.2 软件的框架............................................................................................................................20 5 软件设计与实现(详细设计)....................................................................................21 5.1 数据结构及算法的设计.................................................................................................... 21 5.2 数据库的设计.......................................................................................................................22 5.3 模块的设计与实现..............................................................................................................23 5.3.1 用户登录注册及验证模块............................................................................................ 23 5.3.2 网络通信模块................................................................................................................... 24 5.3.3 自动发牌模块................................................................................................................... 26 5.3.4 玩家叫分模块................................................................................................................... 27 5.3.5 出牌选牌模块................................................................................................................... 28 5.3.6 人工智能模块................................................................................................................... 29 5.3.7 重玩模块.............................................................................................................................31 6 软件测试............................................................................................................................. 32 6.1 测试环境................................................................................................................................ 32 6.2 测试准则................................................................................................................................ 32 6.3 功能测试................................................................................................................................ 32 6.3.1 登录验证功能的测试......................................................................................................32 6.3.2 自动发牌功能的测试......................................................................................................33
桂林电子科技大学毕业设计(论文)报告用纸 6.3.3 叫分功能的测试...............................................................................................................34 6.3.4 托管功能的测试...............................................................................................................35 6.3.5 提示功能的测试...............................................................................................................35 6.3.6 重选功能的测试...............................................................................................................36 6.3.7 电脑智力的测试...............................................................................................................37 7 总结........................................................................................................................................38 谢 辞...........................................................................................................................................39 参考文献..................................................................................................................................... 40 附 录...........................................................................................................................................41
桂林电子科技大学毕业设计(论文)报告用纸 第 1 页 共 49 页 引言 随着智能设备平台的普及、用户数量的增多,智能平台的应用,尤其是游戏 异常火爆。从《植物大战僵尸》到《愤怒的小鸟》,移动平台游戏的开发进入了 新的阶段。但另一方面,平台的多样性也给开发者带来诸多不便。怎样将一款游 戏发布到多个平台也是开发者们一直在探索的问题。特别是随着 Android 和 iOS 平台的兴起,开发者的游戏跨平台的需求更强了,随即 Cocos2D-x 诞生[1]。 本文所开发的斗地主游戏正是基于 Cocos2D-x 游戏引擎的,利用此引擎开发 出的游戏可以在多个平台运行,像主流的 Android、IOS、WindowsPhone 等手机 平台,Windows 等桌面系统。应用 Cocos2D-x 的一些特性,结合 C++的提供的 STL 模板库,开发一款界面友好、跨平台的斗地主游戏。接下来将逐个介绍各个模块 的设计和具体实现过程。
桂林电子科技大学毕业设计(论文)报告用纸 第 2 页 共 49 页 1 绪论 1.1 课题研究意义 随着苹果 iOS 系统和 iPhone、iPad 等一系列产品的发布,随着 Android 系 统和相应设备的诞生,移动平台的种类得到了丰富,并从单一的手机发展到平板 电脑等多种手持设备上。而移动游戏的开发方式同样也有了改变,开发者们开始 尝试针对不同平台的开发框架来进行开发。智能平台的硬件及性能的提高并没有 带来游戏品质的提高,于是开发者们也探索着进行只针对单一平台的开发,他们 利用平台特性(多点触屏,重力感应等)开发出了很多不错的游戏。虽然 Android 平台的屏幕及分辨率也是千差万别,但是由于出色的框架使得开发和移植变得简 单起来,同时也不需要过多考虑内存的限制。但是问题依然存在,对于不同的智 能平台(Android、iOS 等操作系统)依然需要编写不同的代码来进行开发,如 何跨平台这个问题摆在了开发者面前 。跨平台的引擎有基于 HTML5 的跨平台 特性产生的开发引擎,也有基于 OpenGL 开发的游戏引擎,其中 Cocos2D-x 广 泛受到开发者的关注,因为它不仅具有跨平台的特点,还具有受 Cocos2D 全球 社区的支持、框架简单易学、十分容易上手等特点。经过一段时间的发展,开发 者使用 Cocos2D-x 开发出了多款成功的游戏,包括捕鱼达人、地铁总动员等佳 作[1]。 Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于 OpenGL ES,具体各个平台的支持如下:IOSA,Android,Black Berry,Html5, window phone 等。cocos2d-x 引擎在国内手机游戏开发使用的份额接近 70%,而 国外使用份额则是接近 25%,在苹果 APP 排行榜 top10 里面,有 7 个都是用 cocos2d-x 引擎开发的。 1.2 国内外研究现状 随着智能设备平台的普及、用户数量的增多,智能平台的应用,尤其是游戏 异常火爆。从《植物大战僵尸》到《愤怒的小鸟》,移动平台游戏的开发进入了 新的阶段。但另一方面,平台的多样性也给开发者带来诸多不便。怎样将一款游 戏发布到多个平台也是开发者们一直在探索的问题。特别是随着 Android 和
桂林电子科技大学毕业设计(论文)报告用纸 第 3 页 共 49 页 iOS 平台的兴起,开发者的游戏跨平台的需求更强了,随即 Cocos2D-x 分支诞 生[1]。 因为 Cocos2D-x 具有跨平台的特点,再加上 Cocos2D 全球社区的支持, Cocos2D 框架简单易学、十分容易快速上手。因此 Cocos2D-x 迅速成为开发者 的首选。经过一段时间的发展,众多开发者使用 Cocos2D-x 开发出了多款游戏, 包括捕鱼达人、地铁总动员等。2012 年年初,英国设计大师 Michael Heald 专 门为 Cocos2D-x 设计了标志[2]。 2012 年年初,Cocos2D-x 团队再次开发出两个分支,分别是支持 Windows Phone 的 XNA 版和支持 HTML5 的 HTML5 版(后者还得到了 Google 公司的赞 助)。此外,在 Zygaena 的帮助下,还研发出绑定 JavaScript 的 Cocos2D-x 2.0 版本。随着 Cocos2D 及其分支的发展,其会有更多跨平台特性,从而可以支持 更多的平台,这会提高开发者的开发效率。相信 Cocos2D-x 将会更加受到广大 开发者的欢迎,Cocos2D-x 引擎也可以扩大其影响,成为全平台的二维游戏引擎。 1.3 可行性分析 Cocos2D 是 针 对 IOS 设 计 的 一 款 游 戏 引 擎 , 随 着 引 擎 的 发 展 , 其 分 支 Cocos2d-x 是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发。而 2009 年 6 月,Google Android 方面也发布了 NDK(Native Develop Kit,原生态本地 开发包),支持开发者使用 C/C++ 语言开发 Android 程序。可见 ios 及 Android 均支持 C++语言在其平台上进行游戏开发,C++开发的软件运行在 Windows 系 统下更是无可争议。所以,对于用 Cocos2D-x 开发的游戏跨平台实现是可行的。 对于斗地主游戏本身,在市场上的开发已经相当成熟,像市面上比较流行的 QQ 斗地主、JJ 斗地主、博雅斗地主等。现对于斗地主的功能进行一个可行性分 析: (1)用户登录注册及验证 通过 Cocos2D-x 提供的场景类,在其场景上布景,添加编辑框、菜单及按钮, 然后利用导演类即可运行场景;利用菜单响应函数可在用户单机注册菜单项是切 换场景到注册界面;验证功能可通过 Cocos2D-x 中支持的游戏存档类 Defaulter 实现数据的存储,可将其看做类似于 Android 的轻量级数据库 Sq Lite 来使用。 据分析此功能可实现。 (2)自动发牌 先让服务器自动随机生成一副牌,然后分发给不同的客服端,利用 Cocos2D-x 中的计时器函数 schedule()来设定一个计时器,每格一段时间调用其定时器函数 (绘制一张牌),多次调用即可实现自动发牌的效果。
分享到:
收藏