内容介绍
Cocos2d是一个开源框架,可用于构建游戏和应用程序,它可以让用户在创建自己的多平台游戏时节省很多的时间。 本书介绍了使用Cocos2d进行跨平台游戏开发的相关知识。全书内容共分为11章,分别介绍了精灵与动画、场景与菜单、各类交互方法、物理引擎、声音、AI与A*寻路、数据存储与取回、游戏效果、辅助工具、Swift/SpriteBuilder,同时还介绍了如何将所开发的游戏移植到Android平台下。 本书经过了精心编排和设计,包含丰富且实用的开发示例,能够让读者轻松获取知识并掌握开发技巧,非常适合对Cocos2d有一些了解的读者阅读,也适合有相关游戏开发经验的人员阅读。
作者介绍
Siddharth Shekar是一位游戏开发者,拥有超过5年的游戏行业开发经验。他开发了几款游戏,并把它们发布到iOS、Android、Amazon、Windows Phone App Stores中。 除了开发游戏之外,他还在较大的工程院校开设游戏开发讲习班,在游戏开发机构担任客座讲师。Siddharth也是《Learning Cocos2d-x Game Development》与《Learning iOS 8 Game Development Using Swift》两本书的作者。
目录
- 第1章 精灵与动画 1
- 1.1 内容简介 1
- 1.2 下载并安装Coscos2d 2
- 1.2.1 准备工作 2
- 1.2.2 操作步骤 5
- 1.2.3 工作原理 7
- 1.3 2D坐标系统 7
- 1.4 访问主场景(MainScene) 8
- 1.4.1 准备工作 8
- 1.4.2 操作步骤 8
- 1.4.3 工作原理 11
- 1.5 添加精灵到场景 11
- 1.5.1 准备工作 11
- 1.5.2 操作步骤 12
- 1.5.3 工作原理 13
- 1.6 使用RenderTexture创建精灵 13
- 1.6.1 准备工作 13
- 1.6.2 操作步骤 14
- 1.6.3 工作原理 15
- 1.6.4 更多内容 16
- 1.7 创建自定义精灵类 16
- 1.7.1 准备工作 17
- 1.7.2 操作步骤 18
- 1.7.3 工作原理 19
- 1.8 让精灵动起来 20
- 1.8.1 准备工作 20
- 1.8.2 操作步骤 20
- 1.8.3 工作原理 22
- 1.9 添加动作到精灵 23
- 1.9.1 准备工作 23
- 1.9.2 操作步骤 23
- 1.9.3 工作原理 23
- 1.9.4 更多内容 24
- 1.10 绘制gIPrimitives 26
- 1.10.1 准备工作 26
- 1.10.2 操作步骤 26
- 1.10.3 工作原理 27
- 1.10.4 更多内容 27
- 1.11 添加视差效果 31
- 1.11.1 准备工作 31
- 1.11.2 操作步骤 32
- 1.11.3 工作原理 35
- 第2章 场景与菜单 37
- 2.1 内容简介 37
- 2.2 添加主菜单(MainMenu)场景 38
- 2.2.1 准备工作 38
- 2.2.2 操作步骤 38
- 2.2.3 工作原理 39
- 2.3 使用CCLabel添加文本 40
- 2.3.1 准备工作 40
- 2.3.2 操作步骤 41
- 2.3.3 工作原理 41
- 2.3.4 更多内容 42
- 2.4 使用CCMenu向场景添加按钮 43
- 2.4.1 准备工作 43
- 2.4.2 操作步骤 44
- 2.4.3 工作原理 46
- 2.5 添加Gameplay场景 46
- 2.5.1 准备工作 46
- 2.5.2 操作步骤 46
- 2.5.3 工作原理 48
- 2.6 在场景之间进行过渡切换 49
- 2.6.1 准备工作 49
- 2.6.2 操作步骤 49
- 2.6.3 工作原理 49
- 2.6.4 更多内容 50
- 2.7 添加过渡效果 51
- 2.7.1 准备工作 51
- 2.7.2 操作步骤 51
- 2.7.3 工作原理 51
- 2.7.4 更多内容 52
- 2.8 添加难度选择场景 53
- 2.8.1 准备工作 53
- 2.8.2 操作步骤 53
- 2.8.3 工作原理 60
- 2.9 滚动难度级别选择场景 63
- 2.9.1 准备工作 63
- 2.9.2 操作步骤 64
- 2.9.3 工作原理 69
- 第3章 手势、触屏与加速度传感器 72
- 3.1 内容简介 72
- 3.2 理解轻扫手势 73
- 3.2.1 准备工作 73
- 3.2.2 操作步骤 74
- 3.2.3 工作原理 75
- 3.2.4 更多内容 76
- 3.3 实现轻击手势 77
- 3.3.1 准备工作 77
- 3.3.2 操作步骤 77
- 3.3.3 工作原理 78
- 3.4 添加长按手势 78
- 3.4.1 准备工作 78
- 3.4.2 操作步骤 78
- 3.4.3 工作原理 79
- 3.5 添加捏合/缩放控制 80
- 3.5.1 准备工作 80
- 3.5.2 操作步骤 80
- 3.5.3 工作原理 81
- 3.6 添加旋转手势 82
- 3.6.1 准备工作 82
- 3.6.2 操作步骤 82
- 3.6.3 工作原理 83
- 3.7 添加拖动手势(Pan Gesture) 84
- 3.7.1 准备工作 84
- 3.7.2 操作步骤 84
- 3.7.3 工作原理 85
- 3.8 添加触屏动作 86
- 3.8.1 准备工作 86
- 3.8.2 操作步骤 86
- 3.8.3 工作原理 87
- 3.9 使用touchBegan创建对象 88
- 3.9.1 准备工作 88
- 3.9.2 操作步骤 88
- 3.9.3 工作原理 88
- 3.9.4 更多内容 89
- 3.10 使用touchMoved移动对象 91
- 3.10.1 准备工作 91
- 3.10.2 操作步骤 91
- 3.10.3 工作原理 92
- 3.11 在精灵类中自定义触屏动作 92
- 3.11.1 准备工作 92
- 3.11.2 操作步骤 92
- 3.11.3 工作原理 93
- 3.12 添加加速度传感器 95
- 3.12.1 准备工作 95
- 3.12.2 操作步骤 95
- 3.12.3 工作原理 96
- 3.13 添加方向键面板 97
- 3.13.1 准备工作 97
- 3.13.2 操作步骤 97
- 3.13.3 工作原理 101
- 3.13.4 更多内容 101
- 第4章 物理引擎(Physics) 103
- 4.1 内容简介 103
- 4.2 添加physics到游戏场景 104
- 4.2.1 准备工作 104
- 4.2.2 操作步骤 104
- 4.3 添加物理对象 106
- 4.3.1 准备工作 106
- 4.3.2 操作步骤 106
- 4.3.3 工作原理 107
- 4.4 了解不同的body类型 108
- 4.4.1 准备工作 108
- 4.4.2 操作步骤 108
- 4.4.3 工作原理 110
- 4.5 向物理对象添加精灵纹理 112
- 4.5.1 准备工作 112
- 4.5.2 操作步骤 112
- 4.5.3 工作原理 114
- 4.6 创建复合体 114
- 4.6.1 准备工作 114
- 4.6.2 操作步骤 115
- 4.6.3 工作原理 116
- 4.7 创建复杂形状 117
- 4.7.1 准备工作 117
- 4.7.2 操作步骤 119
- 4.7.3 工作原理 120
- 4.8 修改body属性 122
- 4.8.1 准备工作 122
- 4.8.2 操作步骤 122
- 4.8.3 操作步骤 123
- 4.8.4 更多内容 123
- 4.9 使用触摸控制施加冲量 124
- 4.9.1 准备工作 124
- 4.9.2 操作步骤 124
- 4.9.3 工作原理 125
- 4.10 通过加速度计添加作用力 127
- 4.10.1 准备工作 127
- 4.10.2 操作步骤 128
- 4.10.3 工作原理 129
- 4.11 碰撞检测 129
- 4.11.1 准备工作 129
- 4.11.2 操作步骤 130
- 4.11.3 工作原理 132
- 4.12 添加旋转关节 134
- 4.12.1 准备工作 134
- 4.12.2 操作步骤 134
- 4.12.3 工作原理 136
- 4.13 添加马达关节 136
- 4.13.1 准备工作 136
- 4.13.2 操作步骤 137
- 4.13.3 工作原理 138
- 4.14 添加游戏主循环与计分 138
- 4.14.1 准备工作 138
- 4.14.2 操作步骤 139
- 4.14.3 工作原理 142
- 第5章 声音 144
- 5.1 内容简介 144
- 5.2 添加背景音乐 144
- 5.2.1 准备工作 145
- 5.2.2 操作步骤 149
- 5.2.3 工作原理 149
- 5.3 添加音效 150
- 5.3.1 准备工作 150
- 5.3.2 操作步骤 150
- 5.3.3 工作原理 151
- 5.4 添加静音按钮 151
- 5.4.1 准备工作 152
- 5.4.2 操作步骤 153
- 5.4.3 工作原理 155
- 5.5 添加音量滑块 156
- 5.5.1 准备工作 157
- 5.5.2 操作步骤 157
- 5.5.3 工作原理 159
- 5.6 添加暂停与继续按钮 159
- 5.6.1 准备工作 160
- 5.6.2 操作步骤 160
- 5.6.3 工作原理 161
- 第6章 游戏AI与A*寻路 163
- 6.1 内容简介 163
- 6.2 敌人巡逻行为 163
- 6.2.1 准备工作 164
- 6.2.2 操作步骤 164
- 6.2.3 工作原理 169
- 6.3 抛射体射击敌人 172
- 6.3.1 准备工作 172
- 6.3.2 操作步骤 173
- 6.3.3 工作原理 179
- 6.4 敌人追赶行为 180
- 6.4.1 准备工作 181
- 6.4.2 操作步骤 181
- 6.4.3 工作原理 184
- 6.5 A*寻路 186
- 6.5.1 准备工作 186
- 6.5.2 操作步骤 186
- 6.5.3 工作原理 198
- 第7章 数据存储与取回 200
- 7.1 内容简介 200
- 7.2 加载XML文件数据 201
- 7.2.1 准备工作 201
- 7.2.2 操作步骤 202
- 7.2.3 工作原理 206
- 7.3 存储数据到XML文件 207
- 7.3.1 操作步骤 207
- 7.3.2 工作原理 209
- 7.4 从JSON文件加载数据 210
- 7.4.1 准备工作 210
- 7.4.2 操作步骤 212
- 7.4.3 工作原理 214
- 7.5 从PLIST文件加载数据 214
- 7.5.1 准备工作 215
- 7.5.2 操作步骤 216
- 7.5.3 工作原理 217
- 7.6 存储数据到PLIST文件 218
- 7.6.1 准备工作 218
- 7.6.2 操作步骤 218
- 7.6.3 工作原理 222
- 7.7 使用NSUserDefaults 223
- 7.7.1 操作步骤 223
- 7.7.2 工作原理 224
- 第8章 效果 225
- 8.1 内容简介 225
- 8.2 CCEffects 225
- 8.2.1 准备工作 226
- 8.2.2 操作步骤 226
- 8.2.3 工作原理 232
- 8.3 添加玻璃效果 233
- 8.3.1 准备工作 233
- 8.3.2 操作步骤 233
- 8.3.3 工作原理 234
- 8.4 添加拖尾效果 235
- 8.4.1 准备工作 235
- 8.4.2 操作步骤 235
- 8.4.3 工作原理 236
- 8.5 添加粒子效果 237
- 8.5.1 准备工作 237
- 8.5.2 操作步骤 237
- 8.5.3 工作原理 238
- 8.5.4 更多内容 239
- 8.6 添加2D照明 241
- 8.6.1 准备工作 241
- 8.6.2 操作步骤 244
- 8.6.3 工作原理 245
- 8.6.4 更多内容 246
- 第9章 游戏开发辅助工具 252
- 9.1 内容简介 252
- 9.2 Glyph Designer 253
- 9.2.1 准备工作 253
- 9.2.2 操作步骤 255
- 9.2.3 工作原理 256
- 9.3 粒子系统 257
- 9.3.1 准备工作 257
- 9.3.2 操作步骤 263
- 9.3.3 工作原理 264
- 9.4 TexturePacker 264
- 9.4.1 准备工作 265
- 9.4.2 工作原理 270
- 9.5 PhysicsEditor 271
- 9.5.1 准备工作 271
- 9.5.2 操作步骤 275
- 9.5.3 工作原理 277
- 第10章 Swift/SpriteBuilder基础 278
- 10.1 内容简介 278
- 10.2 了解Swift语法 278
- 10.2.1 准备工作 279
- 10.2.2 操作步骤 279
- 10.3 Cocos2d Swift 305
- 10.3.1 准备工作 305
- 10.3.2 操作步骤 305
- 10.3.3 工作原理 308
- 10.4 SpriteBuilder基础 309
- 10.4.1 准备工作 309
- 10.4.2 操作步骤 309
- 10.4.3 工作原理 318
- 第11章 移植到Android 319
- 11.1 内容简介 319
- 11.2 安装Android Xcode插件 320
- 11.2.1 准备工作 320
- 11.2.2 操作步骤 320
- 11.3 启用设备中的USB调试功能 323
- 11.4 在设备上运行SpriteBuilder项目 325
- 11.5 移植项目到Android中 328
- 11.6 No Java runtime错误 334
- 11.7 Provision profile错误 335
- 11.8 Blank screen错误 336
- 11.9 有用的资源 336