Cocos2d-x手机游戏开发
随着科技的发展,现在手机的功能也越来越多,越来越强大,不是像过去的那么简单死板,而是发展到了可以和掌上电脑相媲美的程度。手机软件就是可以安装在手机上的软件,用来完善原始系统的不足之处或者通过手机软件使自己的手机更加个性化、更加多功能化。更多的手机软件是为了使手机拥有更多的功能。手机软件下载前需要考虑软件是否适合当前的手机系统。现在市场上较为流行的手机操作系统主要有三种,即:IOS、Android、Windows Phone。这三种系统占据了大约90%的市场份额。这三种主流系统里最为熟知的就是Android了,Android的迅速发展大有赶超IOS的趋势。所以,我的毕业设计题目是:基于Cocos2d-x的跨平台Android手机游戏的开发。 HM000062
游戏主要分为五部分:游戏进入界面、游戏里石块搭建和功能判断、游戏结束界面、场景切换、音乐音效等。其中最核心的部分就是石块的搭建和功能判断,这部分是游戏能运行的关键,也是游戏的基础。其它的如场景切换、音乐音效等是每个游戏必须的部分,有了这些游戏才算是一个完整的游戏。查看完整请+Q:351916072获取
本文利用Visual Studio 2010软件下的cocos2d-x框架,使用C++语言来编写实现主要功能,最后搭建Windows Android环境,使cpp工程文件转化为apk工程文件,从而可以在Android系统上运行,这样就实现了从PC上到Android上的转换,即实现了跨平台的功能。
关键词:Android; Visual Studio 2010; cocos2d-x; C++; 跨平台
2.1 游戏开发软件的选择
本文选择的开发软件为Microsoft Visual Studio,它是微软公司推出的开发环境,也是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。
Microsoft Visual Studio 2010 采用拖曳式便能完成软件的开发。简简单单的操作便可以实现一个界面的生成。但拖曳的界面,也应当有相应的代码来实现功能。Microsoft Visual Studio 2010支持C#、C++ 、VB。 可以快速实现相应的功能。
目前Visual Studio有五个版本:专业版、高级版、旗舰版、学习版和测试版。作为毕业设计所采用的是专业版。Visual Studio 2010相当于当年的6.0版,但是它可以自定义开始页,新增了9项功能,包括:查看完整请+Q:351916072获取
(1)C# 4.0中的动态类型和动态编程;
(2)多显示器支持;
(3)使用Visual Studio 2010的特性支持TDD;
(4)新增基于.NET平台的语言 F#;
(5)使用Visual C++ 2010创建Ribbon界面;
(6)IDE增强;
(7)C++ 0x新特性;
(8)Quick Search特性;
(9)支持Office。
2.2 游戏框架的选择
本文选择的开发框架为Cocos2d-x 。Cocos2d-x是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, IOS 4.1, Android 2.1 及更高版本Windows XP & Windows7,Windows Phone 8.
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-x发展的重点是围绕Cocos2d跨平台。Cocos2d-x提供的框架外,手机游戏可以写在C++或者Lua中,使用API使Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行IOS、Android的三星Bada,黑莓Blackberry操作系统和更多。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,我们可以编写的源代码很容易在桌面操作系统中编辑和调试。
Cocos2d-x的主要功能有:
(1)流程控制(Flow control):非常容易地管理不同场景(scenes)之间的流程控制;
(2)精灵(Sprites):快速而方便的精灵;
(3)动作(Actions):告诉精灵们该做什么。可组合的动作如移动(move)、旋转(rotate)和缩放(scale)等更多;
(4)特效(Effects):特效包括波浪(waves)、旋转(twirl)和透镜(lens)等更多;
(5)平面地图(Tiled Maps):支持包括矩形和六边形平面地图;
(6)转换(Transitions):从一个场景移动到另外一个不同风格的场景;
(7)菜单(Menus):创建内部菜单;
(8)文本渲染(Text Rendering):支持标签和HTML标签动作;
(9)文档(Documents):编程指南、API参考、视频教学,有很多教你如何使用的简单测试例子;
(10)MIT许可; 查看完整请+Q:351916072获取
(11)基于Pyglet:没有外部的依赖;
(12)基于OpenGL:支持硬件加速;
(14)脚本语言:支持Lua,JavaScript语言。
和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成:
导演(CCDiretor):在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCDirector的方法完成游戏初始化或销毁工作,其提供了一些场景管理的方法,如runWithScene、DrawScene、pushScene和replaceScen等。它控制FPS的显示隐藏,窗口大小,游戏的进入和退出,关卡的切换,取得正交模式,取得正在运行的场景,取得GL视图,游戏主循环入口等等。
摄像机(CCCamera):游戏中每个节点都需要摄像机,当节点发生缩放、旋转和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机进行重新渲染。官方对于摄像机的描述是这样的:CCCamera应用于每个CCNode中。在从不同视野观察时起作用,OpenGL中的gluLookAt函数用来定位摄像机。假如这个物体通过缩放、旋转、或者平移,那么这些操作将修改摄像机。注意:使用摄像机或者操作旋转、绽放、平移等属性,你只能选其中一个,假如你使用摄像机,世界坐标就会失去作用。但是其局限性在于有以下几种节点,如CCParallaxNode,CCParticle使用世界节点坐标,并且他们并不能正常工作,假如你使用摄像机移动他们(或者他们的任何父类),在成批的结点上(即一个结点上包含多个节点)如CCSprite对象不会正常工作。当他们都从属于一个CCSpriteBatchNode对象时,推荐只在创建3d特效时使用。对于2d特效来说,用CCFollow动作或者平移、绽放、旋转更好。
场景(CCScene):在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的布景,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理着多个CCLayer进行场景展现、相关业务逻辑的处理等。
布景(CCLayer):从概念上说,布景就是场景里的背景。其实就是层次的概念,这种概念在KJava时代就已经存在,就是手动地把游戏中的场景分层(也有靠地图编辑器实现)。
每个游戏场景中都可以有很多层,每一层有各自的职责任务,例如专门负责显示背景,专门负责显示道具,专门负责显示任务角色等,在每一层上面可以放置不同的元素,包括文本,精灵和菜单等,通过层与层之间的组合关系,我们可以很容易的控制和显示各种各样的界面了。当然,其和photoshop中的层一样,也有透明之说,所以为了能够看到每一层上面的东西,很多层都设置为透明或半透明的,否则只能看到最上面的一层了。
一般一个场景可以有很多层,比如背景图层、物件层、NPC层、角色层、UI层等等,每个层负责自己的功能业务,总的在一个CCScene里共存,随着场景的隐藏而隐藏;不同的层之间可以通过设置不同alpha通道(透明度)进行显示控制。
角色(CCSprite):精灵是整个游戏开发处理的主要对象,包括主角和敌人、NPC等,甚至随机飘过的一片云或飞鸟从技术上讲,也是精灵,因为精灵在cocos2d-x中,就是一个可以不断变化的图片,这些变化包括位置变化,旋转、放大缩小和运动等。
动作(CCAction):角色所具有的动作,一般用于精灵发生动作时使用,如移动、翻转等。
摘要 Ⅳ 查看完整请+Q:351916072获取
ABSTRACT Ⅴ
第1章 绪论 1
1.1 Android手机游戏市场背景 1
1.2 本文的主要工作 2
第2章 项目开发方案选择 3
2.1 游戏开发软件的选择 3
2.2 游戏框架的选择 4
2.3 编程语言选择 6
2.4 Windows 7 Android环境搭建 7
第3章 游戏画面的布局 8
3.1 游戏主构架 8
3.2 游戏目录界面的编写 9
3.2.1 目录界面的石头设置 9
3.2.2 石头上文字显示 10
3.2.3 目录界面背景图片的放置 11
3.3 场景切换 12
3.4 游戏主界面的设置 13
3.4.1 游戏界面的按钮功能 13
3.4.2 游戏界面背景图片的设置 16
3.4.3 石块的排列 17
3.4.4 游戏结束判定石块的设定 18
3.4.5 游戏主界面效果图 19
第4章 游戏算法的实现 21
4.1 遍历相同颜色的石块 21
4.1.1 枚举函数变量 21
4.1.2寻找颜色相同石块 22
4.2 石块动作指令的实现 24
4.2.1 石块的翻转下落 24
4.2.2 石块阵列的整体移动 25
4.3 新石块与道具的生成 28
4.3.1 新石块的生成 28
4.3.2 道具的实现 29
4.4 删除下落的石块 31
4.5 游戏结束的判定 31
4.6 时间进度显示 34
第5章 游戏测试 36
第6章 跨平台的移植 38
结 论 40
参考文献 41
致 谢 42
附录 43
头文件声明 43
一、英文原文 48
二、英文翻译 57
大学本科毕业设计(论文)任务书 64 查看完整请+Q:351916072获取
游戏主要分为五部分:游戏进入界面、游戏里石块搭建和功能判断、游戏结束界面、场景切换、音乐音效等。其中最核心的部分就是石块的搭建和功能判断,这部分是游戏能运行的关键,也是游戏的基础。其它的如场景切换、音乐音效等是每个游戏必须的部分,有了这些游戏才算是一个完整的游戏。查看完整请+Q:351916072获取
本文利用Visual Studio 2010软件下的cocos2d-x框架,使用C++语言来编写实现主要功能,最后搭建Windows Android环境,使cpp工程文件转化为apk工程文件,从而可以在Android系统上运行,这样就实现了从PC上到Android上的转换,即实现了跨平台的功能。
关键词:Android; Visual Studio 2010; cocos2d-x; C++; 跨平台
2.1 游戏开发软件的选择
本文选择的开发软件为Microsoft Visual Studio,它是微软公司推出的开发环境,也是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。Visual Studio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持开发面向Windows 7的应用程序。除了Microsoft SQL Server,它还支持 IBM DB2和Oracle数据库。
Microsoft Visual Studio 2010 采用拖曳式便能完成软件的开发。简简单单的操作便可以实现一个界面的生成。但拖曳的界面,也应当有相应的代码来实现功能。Microsoft Visual Studio 2010支持C#、C++ 、VB。 可以快速实现相应的功能。
目前Visual Studio有五个版本:专业版、高级版、旗舰版、学习版和测试版。作为毕业设计所采用的是专业版。Visual Studio 2010相当于当年的6.0版,但是它可以自定义开始页,新增了9项功能,包括:查看完整请+Q:351916072获取
(1)C# 4.0中的动态类型和动态编程;
(2)多显示器支持;
(3)使用Visual Studio 2010的特性支持TDD;
(4)新增基于.NET平台的语言 F#;
(5)使用Visual C++ 2010创建Ribbon界面;
(6)IDE增强;
(7)C++ 0x新特性;
(8)Quick Search特性;
(9)支持Office。
2.2 游戏框架的选择
本文选择的开发框架为Cocos2d-x 。Cocos2d-x是一个支持多平台的 2D 手机游戏引擎,使用 C++ 开发,基于OpenGL ES,基于Cocos2d-iphone,支持 WOPhone, IOS 4.1, Android 2.1 及更高版本Windows XP & Windows7,Windows Phone 8.
Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-x发展的重点是围绕Cocos2d跨平台。Cocos2d-x提供的框架外,手机游戏可以写在C++或者Lua中,使用API使Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行IOS、Android的三星Bada,黑莓Blackberry操作系统和更多。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,我们可以编写的源代码很容易在桌面操作系统中编辑和调试。
Cocos2d-x的主要功能有:
(1)流程控制(Flow control):非常容易地管理不同场景(scenes)之间的流程控制;
(2)精灵(Sprites):快速而方便的精灵;
(3)动作(Actions):告诉精灵们该做什么。可组合的动作如移动(move)、旋转(rotate)和缩放(scale)等更多;
(4)特效(Effects):特效包括波浪(waves)、旋转(twirl)和透镜(lens)等更多;
(5)平面地图(Tiled Maps):支持包括矩形和六边形平面地图;
(6)转换(Transitions):从一个场景移动到另外一个不同风格的场景;
(7)菜单(Menus):创建内部菜单;
(8)文本渲染(Text Rendering):支持标签和HTML标签动作;
(9)文档(Documents):编程指南、API参考、视频教学,有很多教你如何使用的简单测试例子;
(10)MIT许可; 查看完整请+Q:351916072获取
(11)基于Pyglet:没有外部的依赖;
(12)基于OpenGL:支持硬件加速;
(14)脚本语言:支持Lua,JavaScript语言。
和传统的游戏引擎一样,cocos2d-x作为一个2d的游戏引擎,其也有以下几大概念组成:
导演(CCDiretor):在cocos2d-x引擎中,CCDirector类是整个游戏的组织和控制核心,游戏的运行规则,游戏内的CCScene(场景)、布景(CCLayer)、角色(CCSprite)等的运动,均由CCDirector管理,其在游戏中起着指定游戏规则让游戏内的场景、布景和任务有序的运行。在整个游戏里面,一般只有一个导演,游戏开始和结束时,都需要调用CCDirector的方法完成游戏初始化或销毁工作,其提供了一些场景管理的方法,如runWithScene、DrawScene、pushScene和replaceScen等。它控制FPS的显示隐藏,窗口大小,游戏的进入和退出,关卡的切换,取得正交模式,取得正在运行的场景,取得GL视图,游戏主循环入口等等。
摄像机(CCCamera):游戏中每个节点都需要摄像机,当节点发生缩放、旋转和位置变化时,都需要覆盖摄像机,让这个节点通过摄像机进行重新渲染。官方对于摄像机的描述是这样的:CCCamera应用于每个CCNode中。在从不同视野观察时起作用,OpenGL中的gluLookAt函数用来定位摄像机。假如这个物体通过缩放、旋转、或者平移,那么这些操作将修改摄像机。注意:使用摄像机或者操作旋转、绽放、平移等属性,你只能选其中一个,假如你使用摄像机,世界坐标就会失去作用。但是其局限性在于有以下几种节点,如CCParallaxNode,CCParticle使用世界节点坐标,并且他们并不能正常工作,假如你使用摄像机移动他们(或者他们的任何父类),在成批的结点上(即一个结点上包含多个节点)如CCSprite对象不会正常工作。当他们都从属于一个CCSpriteBatchNode对象时,推荐只在创建3d特效时使用。对于2d特效来说,用CCFollow动作或者平移、绽放、旋转更好。
场景(CCScene):在游戏里,场景就是关卡。关卡由人物角色和背景构成。在电影里,场景就是电影中的各种场面,各种场面主要由人物活动和背景等构成。而在Cocos2d-x 引擎中,场景存放的是需要渲染的布景,任务角色和菜单,它可以作为一个整体,一起渲染,一起销毁,一起被场景切换使用。即游戏关卡的实施者,其管理着多个CCLayer进行场景展现、相关业务逻辑的处理等。
布景(CCLayer):从概念上说,布景就是场景里的背景。其实就是层次的概念,这种概念在KJava时代就已经存在,就是手动地把游戏中的场景分层(也有靠地图编辑器实现)。
每个游戏场景中都可以有很多层,每一层有各自的职责任务,例如专门负责显示背景,专门负责显示道具,专门负责显示任务角色等,在每一层上面可以放置不同的元素,包括文本,精灵和菜单等,通过层与层之间的组合关系,我们可以很容易的控制和显示各种各样的界面了。当然,其和photoshop中的层一样,也有透明之说,所以为了能够看到每一层上面的东西,很多层都设置为透明或半透明的,否则只能看到最上面的一层了。
一般一个场景可以有很多层,比如背景图层、物件层、NPC层、角色层、UI层等等,每个层负责自己的功能业务,总的在一个CCScene里共存,随着场景的隐藏而隐藏;不同的层之间可以通过设置不同alpha通道(透明度)进行显示控制。
角色(CCSprite):精灵是整个游戏开发处理的主要对象,包括主角和敌人、NPC等,甚至随机飘过的一片云或飞鸟从技术上讲,也是精灵,因为精灵在cocos2d-x中,就是一个可以不断变化的图片,这些变化包括位置变化,旋转、放大缩小和运动等。
动作(CCAction):角色所具有的动作,一般用于精灵发生动作时使用,如移动、翻转等。
摘要 Ⅳ 查看完整请+Q:351916072获取
ABSTRACT Ⅴ
第1章 绪论 1
1.1 Android手机游戏市场背景 1
1.2 本文的主要工作 2
第2章 项目开发方案选择 3
2.1 游戏开发软件的选择 3
2.2 游戏框架的选择 4
2.3 编程语言选择 6
2.4 Windows 7 Android环境搭建 7
第3章 游戏画面的布局 8
3.1 游戏主构架 8
3.2 游戏目录界面的编写 9
3.2.1 目录界面的石头设置 9
3.2.2 石头上文字显示 10
3.2.3 目录界面背景图片的放置 11
3.3 场景切换 12
3.4 游戏主界面的设置 13
3.4.1 游戏界面的按钮功能 13
3.4.2 游戏界面背景图片的设置 16
3.4.3 石块的排列 17
3.4.4 游戏结束判定石块的设定 18
3.4.5 游戏主界面效果图 19
第4章 游戏算法的实现 21
4.1 遍历相同颜色的石块 21
4.1.1 枚举函数变量 21
4.1.2寻找颜色相同石块 22
4.2 石块动作指令的实现 24
4.2.1 石块的翻转下落 24
4.2.2 石块阵列的整体移动 25
4.3 新石块与道具的生成 28
4.3.1 新石块的生成 28
4.3.2 道具的实现 29
4.4 删除下落的石块 31
4.5 游戏结束的判定 31
4.6 时间进度显示 34
第5章 游戏测试 36
第6章 跨平台的移植 38
结 论 40
参考文献 41
致 谢 42
附录 43
头文件声明 43
一、英文原文 48
二、英文翻译 57
大学本科毕业设计(论文)任务书 64 查看完整请+Q:351916072获取
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/3256.html