新書推薦:
《
自然之争:1600年以来苏格兰和英格兰北部地区的环境史(新史学译丛)
》
售價:NT$
485.0
《
硝烟下的博弈:工业革命与中西方战争
》
售價:NT$
398.0
《
让内的理性主义 发现无意识之旅
》
售價:NT$
301.0
《
知命不惧:从芝诺到马可·奥勒留的生活艺术
》
售價:NT$
505.0
《
Zemax光学设计从基础到实践
》
售價:NT$
602.0
《
全球化的黎明:亚洲大航海时代
》
售價:NT$
500.0
《
危局
》
售價:NT$
383.0
《
穿裙子的士:叶嘉莹传
》
售價:NT$
245.0
|
編輯推薦: |
《Cocos2d-x游戏实战指南》融合了作者多年的游戏开发经验和丰富的培训经验,深入浅出地介绍了Cocos2d-x各方面的知识,从开发环境搭建,到控件、菜单、Action等常用技术,再到Sprite3D、粒子系统、瓦片地图、物理引擎、骨骼动画、混合开发等高级技术,*后还通过一个完《Cocos2d-x游戏实战指南》融合了作者多年的游戏开发经验和丰富的培训经验,深入浅出地介绍了Cocos2d-x各方面的知识,从开发环境搭建,到控件、菜单、Action等常用技术,再到Sprite3D、粒子系统、瓦片地图、物理引擎、骨骼动画、混合开发等高级技术,*后还通过一个完整的游戏案例《星空大战》来贯穿整个知识体系,帮助读者将理论知识和实际项目开发进行完美的结合。本书配套全新设计的案例演示系统,便于准确寻找对应章节的演示程序;知识点极为丰富,涵盖了所有Cocos2d-x游戏开发的核心内容;通过数万行代码和近百个案例,深入地学习各种开发技巧;商业级游戏案例,体验游戏开发的完整过程。关注本书微信公众号geekculture,获取本书代码文件及更多学习资源。全书涵盖了以下主题:
(1)Cocos2d-x 3.
|
內容簡介: |
本书深入系统地讲解了Cocos2dx 3.10游戏开发的理论与实践,书中内容涵盖了Cocos2dx 3.x各方面的知识点与示例分析。这些内容包括如何搭建Cocos2dx的开发环境iOS和Android平台、Cocos2dx的工程结构、核心类和相关的API、标签、菜单、控件、本地化、事件处理机制、网络技术、动作、调度、绘图API、动画、存储技术、Sprite3D、瓦片地图、粒子系统、物理引擎、骨骼动画、ObjectiveC、Swift、C和Java交互的方式。本书的第18章提供了一个完整的案例星空大战,这个案例是一款完整的射击类游戏,类似于雷电游戏。该游戏使用了本书介绍的基本知识点,通过这个案例,读者可以更进一步巩固基本理论知识。
|
關於作者: |
李宁 曾获东北大学计算机专业硕士学位,拥有超过20年软件开发经验、7年移动应用和手机游戏开发经验,欧瑞科技创始人&CEO。获得CVP(Cocos最有价值专家)荣誉称号。长期担任企业内训讲师(已经为上百家企业提供了移动开发培训,培训学员数千名)、高级技术顾问。10年来,出版过超过30本IT图书,并在个人博客撰写了1000万字以上的技术文章。在移动开发领域有极其丰富的经验,领导过团队开发了大量的移动App及游戏产品。先后为多家培训机构开设了移动开发就业课程,被聘为51CTO学院特级讲师。截至目前,已经发布了53个课程 ,累计2279个课时,包括完全征服React Native从零开始掌握Cocos2d-x 3.xJavaScriptES6ES7系列课程iOS8iOS9系列视频课程苹果Swift语言开发精品套餐课程等,累计培训学员近50万人,好评率达96%。本书配套视频教程《Cocos2d-x 3.x系列》也在51CTO学院独家发布,自上线以来已有近20万名学员学习,受到了51CTO社区广大开发者的一致推崇。
|
目錄:
|
目录
第1章初识Cocos2dx
1.1跨平台的由来
1.2跨平台开发模式的种类和优缺点
1.2.1虚拟机与跨平台技术
1.2.2Web与跨平台技术
1.2.3跨平台编译技术
1.2.4为每个平台定制本地应用
1.3跨平台游戏引擎
1.3.1什么是跨平台游戏引擎
1.3.2有哪些游戏引擎可以跨平台
1.4Cocos2dx横空出世
1.4.1Cocos2dx的前世今生
1.4.2Cocos2dx的特点
1.5小结
第2章搭建和使用跨平台Cocos2dx开发环境
2.1使用Cocos2dx开发游戏需要准备些什么
2.2Cocos2dx 3.10开发环境的最低要求
2.3让Eclipse支持C 11
2.4Cocos2dx 3.10开发环境的安装、配置和使用
2.4.1Cocos2dx 3.10的目录结构
2.4.2使用cocos建立跨平台工程
2.4.3编译和运行Cocos2dx 3.10 for iOSMac程序
2.4.4编译和运行Cocos2dx 3.10 for Android程序
2.4.5编译和运行Cocos2dx 3.10 for Win32程序
2.5Cocos2dx 3.10例子代码的使用
2.6小结
第3章Cocos2dx默认工程模板的架构和源代码分析
3.1Cocos2dx实现跨平台的原理
3.2默认场景类HelloWorldScene的实现原理分析
3.3控制横竖屏切换
3.4小结
第4章Cocos2dx中的核心类
4.1导演类(Director)
4.1.1Director类与初始化Cocos2dx
4.1.2结束、暂停与恢复Cocos2dx程序
4.1.3获取窗口的尺寸和位置
4.1.4Director类中的其他成员方法
4.2节点类(Node)
4.2.1节点类的功能
4.2.2节点类的成员方法
4.2.3Cocos2dx对象的创建、自动释放(Autorelease)与ARC
4.2.4CREATE_FUNC宏与create方法
4.2.5Cocos2dx中的坐标系
4.2.6节点的移动、缩放和旋转
4.3场景类(Scene)
4.3.1创建场景
4.3.2运行和切换场景
4.3.3场景切换的各种特效
4.4图层类(Layer)
4.4.1Layer类的基本应用
4.4.2Layer的子类
4.4.3颜色图层类(LayerColor)
4.4.4颜色渐变图层类(LayerGradient)
4.4.5多图层管理类(LayerMultiplex)
4.5精灵类(Sprite)
4.5.1Sprite类
4.5.2贴图类(Texture2D)和贴图缓冲类(TextureCache)
4.5.3精灵批处理类(SpriteBatchNode)
4.5.4精灵框架类(SpriteFrame)
4.5.5精灵框架缓冲类(SpriteFrameCache)
4.5.6九宫格缩放精灵类(Scale9Sprite)
4.6集合类(Vector和Map)
4.7小结
第5章标签、菜单与控件
5.1标签类
5.1.1LabelTTF标签(使用TTF字体文件)
5.1.2LabelAtlas标签(需要截取图像)
5.1.3LabelBMFont标签(使用FNT字体文件)
5.1.4生成FNT字体文件
5.2菜单(Menu)与菜单项(MenuItem)
5.2.1Menu类
5.2.2标签菜单项(MenuItemLabel)
5.2.3字体菜单项(MenuItemFont)
5.2.4精灵菜单项(MenuItemSprite)
5.2.5图像菜单项(MenuItemImage)
5.2.6开关菜单项(MenuItemToggle)
5.3控件
5.3.1UI布局(Layout)
5.3.2文本控件(Text、TextAtlas和TextBMFont)
5.3.3按钮控件(Button)
5.3.4文本输入框控件(TextField)
5.3.5高级文本输入框控件(EditBox)
5.3.6复选框控件(CheckBox)
5.3.7开关控件(ControlSwitch)
5.3.8图像框控件(ImageView)
5.3.9进度条控件(LoadingBar)
5.3.10滑杆控件(Slider)
5.3.11高级滑杆控件(ControlSlider)
5.3.12步进控件(ControlStepper)
5.3.13列表控件(ListView)
5.3.14表格控件(TableView)
5.3.15滚动视图控件(ScrollView)
5.3.16分页控件(PageView)
5.3.17颜色选择控件(ControlColourPicker)
5.4小结
第6章本地化
6.1自适应屏幕分辨率
6.1.1尺寸类型及屏幕适配原理
6.1.2Cocos2dx中的各种尺寸深度详解
6.1.3分辨率策略(ResolutionPolicy)
6.1.4通过设计尺寸进行屏幕适配
6.1.5通过内容缩放因子进行屏幕适配
6.1.6为每一个Node单独调整尺寸
6.2Cocos2dx多语言适配
6.3小结
第7章Cocos2dx中的事件处理机制
7.1触摸事件与移动节点
7.2多点触摸
7.3键盘响应事件
7.4鼠标响应事件
7.5加速度传感器事件
7.6自定义事件
7.7小结
第8章网络技术
8.1HttpClient类
8.1.1发送HTTP Get请求
8.1.2发送Http Post请求
8.2WebSocket类
8.3SocketIO类
8.4小结
第9章Cocos2dx中的动作类
9.1所有动作的基类(Action)
9.2位置(Position)动作
9.2.1沿直线匀速移动动作(MoveByMoveTo)
9.2.2跳跃动作(JumpByJumpTo)
9.2.3贝塞尔曲线动作(BezierByBezierTo)
9.2.4固定张力的样条曲线动作(CatmullRomByCatmullRomTo)
9.2.5可变张力的样条曲线动作(CardinalSplineByCardinalSplineTo)
9.3旋转与缩放动作
9.3.1旋转动作(RotateByRotateTo)
9.3.2缩放动作(ScaleByScaleTo)
9.4执行规则动作
9.4.1顺序执行动作(Sequence)
9.4.2并行动作(Spawn)
9.4.3重复执行动作(Repeat)
9.4.4无限循环动作(RepeatForever)
9.4.5反序动作(ResverseTime)
9.5控制节点显示和隐藏的动作
9.5.1闪烁动作(Blink)
9.5.2淡入淡出动作(FadeInFadeOut)
9.5.3透明度渐变动作(FadeTo)
9.5.4颜色渐变动作(TintByTintTo)
9.6可立即执行的动作
9.7回调函数动作(CallFuncCallFuncN)
9.8变速动作(Ease Action)
9.8.1幂加速动作(EaseIn)
9.8.2幂减速动作(EaseOut)
9.8.3幂加速减速动作(EaseInOut)
9.8.4指数加速动作(EaseExponentialIn)
9.8.5指数减速动作(EaseExponentialOut)
9.8.6指数加速减速动作(EaseExponentialInOut)
9.8.7正弦加速动作(EaseSineIn)
9.8.8正弦减速动作(EaseSineOut)
9.8.9正弦加速减速动作(EaseSineInOut)
9.8.10弹性加速动作(EaseElasticIn)
9.8.11弹性减速动作(EaseElasticOut)
9.8.12弹性加速减速动作(EaseElasticInOut)
9.8.13弹跳加速动作(EaseBounceIn)
9.8.14弹跳减速动作(EaseBounceOut)
9.8.15弹跳加速减速动作(EaseBounceInOut)
9.8.16回退加速动作(EaseBackIn)
9.8.17回退减速动作(EaseBackOut)
9.8.18回退加速减速动作(EaseBackInOut)
9.9网格动作(Grid Action)
9.9.1实现测试网格动作的基类
9.9.22D波浪动作(Waves)
9.9.33D波浪动作(Waves3D)
9.9.4水平3D翻转动作(FlipX3D)
9.9.5垂直3D翻转动作(FlipY3D)
9.9.63D震动动作(Shaky3D)
9.9.73D透镜动作(Lens3D)
9.9.83D波纹动作(Ripple3D)
9.9.9流体动作(Liquid)
9.9.10旋转变形动作(Twirl)
9.9.113D瓦片震动动作(ShakeTiles3D)
9.9.123D瓦片破碎动作(ShatteredTiles3D)
9.9.133D瓦片洗牌动作(ShuffleTiles)
9.9.14瓦片从左下角到右上角淡出动作(FadeOutTRTiles)
9.9.15瓦片从右上角到左下角淡出动作(FadeOutBLTiles)
9.9.16瓦片向上淡出动作(FadeOutUpTiles)
9.9.17瓦片向下淡出动作(FadeOutDownTiles)
9.9.18关闭瓦片动作(TurnOffTiles)
9.9.193D波浪瓦片动作(WavesTiles3D)
9.9.203D跳跃瓦片动作(JumpTiles3D)
9.9.21拆分行动作(SplitRows)
9.9.22拆分列动作(SplitCols)
9.9.233D翻页动作(PageTurn3D)
9.10其他动作
9.10.1绑定节点和动作(TargetedAction)
9.10.2扭曲动作(SkewBy和SkewTo)
9.10.3轨道照相机动作(OrbitCamera)
9.10.4延迟运行动作(DelayTime)
9.11小结
第10章调度器、绘图API与动画
10.1调度器(Scheduler)
10.1.1update定时器调度
10.1.2设置update定时器的优先级
10.1.3自定义调度器
10.1.4停止调度器
10.2绘图API
10.3动画
10.3.1基于绘图API与调度器的动画
10.3.2帧(Frame)动画
10.4小结
第11章数据存储技术
11.1使用UserDefault读写KeyValue类型的数据
11.2读写流文件
11.3操作XML文件
11.3.1使用tinyxml2生成XML文件
11.3.2使用tinyxml2以DOM方式读取XML文件
11.3.3使用SAXParser以SAX方式读取XML文件
11.4使用rapidjson读写JSON文件
11.5使用SQLite数据库
11.6小结
第12章Sprite3D技术
12.1什么是Sprite3D
12.2Cocos2dx支持哪些3D模型格式
12.3装载obj格式的3D模型文件
12.4装载和使用c3t和c3b格式的3D模型文件
12.4.1使用fbxconv将fbx转换为c3t和c3b格式
12.4.2旋转的3D怪物
12.4.3游泳的海龟
12.5小结
第13章Cocos2dx中的瓦片和地图
13.1瓦片和地图编辑器
13.1.1瓦片地图的种类和用途
13.1.2瓦片地图编辑器(Tiled Map Editor)
13.1.3用Tiled编辑地图
13.2在Cocos2dx中使用地图
13.2.1在程序中显示地图
13.2.2隐藏和显示图层
13.2.3编辑图块
13.2.4获取图块的属性值
13.2.5在地图中添加精灵
13.2.6让精灵只在道路上移动
13.2.7改变遮挡关系(zOrder和PositionZ)
13.2.8拖动地图
13.2.9在45度角地图上种树
13.2.10使用对象层
13.3小结
第14章粒子系统
14.1Cocos2dx内置的标准粒子特效
14.1.1群星闪烁
14.1.2幽灵鬼火
14.1.3群星爆炸
14.2粒子特效属性详解
14.3自定义粒子特效
14.3.1五彩旋转戒指
14.3.2放大版的群星闪烁
14.4可视化粒子特效设计器
14.4.1Particle Designer(仅适用于OS X)
14.4.2Particle Editor(只适用于Windows系统)
14.5通过plist文件实现粒子特效
14.5.1彗星特效
14.5.2用plist文件实现放大版的群星闪烁
14.6燃烧的圣火
14.7小结
第15章物理引擎
15.1物理引擎概述
15.1.1什么是物理引擎
15.1.2物理引擎在游戏中的地位
15.1.3Box2D和Chipmunk的对比
15.2Cocos2dx 3.x中抽象封装的物理引擎
15.2.1抽象物理引擎概述
15.2.2使用抽象物理引擎创建Body(刚体)
15.3Android平台如何使用物理引擎
15.4改变Android和iOS平台默认的物理引擎
15.5碰撞检测
15.6只撞击一侧边缘的碰撞检测
15.7足球撞击特效
15.8骷髅堆中的足球
15.9用重力感应控制的足球
15.10小结
第16章骨骼动画
16.1骨骼动画概述
16.2骨骼动画的优势
16.3Spine骨骼动画
16.3.1Spine骨骼动画简介
16.3.2在Cocos2dx中使用Spine骨骼动画
16.3.3Spine简介
16.3.4用Spine导入骨骼动画图像资源
16.3.5完成图像的摆放
16.3.6绑定骨骼
16.3.7在骨骼上旋转图像
16.3.8设计骨骼动画
16.4Armature骨骼动画
16.4.1安装和运行Cocos Studio
16.4.2将图像导入工程
16.4.3使用图像资源
16.4.4创建骨骼
16.4.5绑定骨骼和图像
16.4.6设计骨骼动画
16.4.7导出骨骼动画
16.4.8在Cocos2dx中使用骨骼动画
16.5小结
第17章ObjectiveC、Swift、C 和Java交互
17.1C 与ObjectiveC的交互
17.1.1C 调用ObjectiveC API
17.1.2通过ObjectiveC获取Web数据
17.1.3ObjectiveC调用C API
17.1.4.mm文件到底起什么作用
17.2C 调用Swift API
17.2.1创建Swift文件
17.2.2编写Swift类
17.2.3自动生成的头文件的位置和命名规则
17.2.4自动生成的头文件的内容
17.2.5自动生成头文件非得用@objc吗
17.2.6用ObjectiveC调用Swift API
17.2.7C 调用Swift API
17.3Swift调用ObjectiveC API
17.3.1在桥接头文件中引用ObjectiveC的头文件
17.3.2在Swift源代码文件中调用Objective API
17.3.3ObjectiveC调用Swift API
17.3.4声明和实现C 风格的方法
17.3.5C 调用Swift API
17.4Android平台多语言交互
17.4.1C 调用Java类的无参数静态方法
17.4.2C 调用有参数的静态Java方法
17.4.3C 调用Java类的非静态方法
17.4.4C 调用Java API向SQLite数据库中插入信息(获取Context对象)
17.4.5C 调用Java API查询SQLite数据库中的记录
17.4.6Java调用C API
17.5小结
第18章项目实战: 星空大战
18.1游戏概述
18.2滚动背景
18.2.1滚动游戏背景
18.2.2让云彩在背景上移动
18.3创建战机
18.3.1创建战机类
18.3.2创建战机图层
18.3.3让战机移动
18.3.4为战机添加光子鱼雷武器
18.3.5为战机添加激光束武器
18.3.6为战机添加带有自动跟踪功能的导弹
18.3.7让战机发射武器
18.4创建敌机
18.4.1创建小敌机
18.4.2创建大敌机
18.4.3敌机发送炮弹
18.5小结
|
內容試閱:
|
前言
Cocos2dx是目前最热门的2D3D开源游戏引擎,国内外已经有很多游戏开发厂商使用Cocos2dx开发自己的游戏产品。在写作本书时,Cocos2dx的最新版本是Cocos2dx310,可能在读者拿到本书时,Cocos2dx的版本会再次升级,不过这并不影响您使用本书,因为Cocos2dx3.x的API是比较稳定的,基本能向下兼容。
从理论上来说,Cocos2dx可以同时实现桌面游戏Windows、MacOSX和Linux和移动游戏iOS和Android,不过考虑到Cocos2dx的主要应用场景是手机,所以本书着重介绍了Cocos2dx在Android和iOS设备上的开发和实现。这里推荐使用MacOSX系统,因为Cocos2dx与XCode的兼容性特别好,而且很容易调试;此外,MacOSX可以同时开发iOS和Android版的游戏,而Windows只能开发Android版本的游戏。
本书的编写历经9个月,于2016年4月完成初稿。期间经历了Cocos2dx的多次版本升级,为力求让本书采用的技术保持最新,在完成初稿的最后时刻,将Cocos2dx升级到3.10。而且,笔者特意为本书精心做了一个Demo,通过Demo中的菜单,可以进入每一章和每一节的代码演示界面,这也大大方便了读者观看本书的代码演示。
本书的源代码和勘误都将通过微信公众号提供,读者可以扫描下方的二维码加公众号。
本书作者的技术博客网址为http:geekori.com。QQ交流群号为264268059。
本书配套视频教程:http:edu.51cto.compackviewid16.html。
李宁2016年9月
|
|