3D少儿游戏编程(原书第2版)

作者
[美] 克里斯·斯特罗姆(Chris Strom)
丛书名
出版社
机械工业出版社
ISBN
9787111637691
简要
简介
内容简介书籍计算机书籍 本书主要面向初中学生,理解能力较好且数学基础较强的小学生也可以尝试阅读。本书以互联网应用开发中的主力编程语言JavaScript为编程基础,基于流行的网页3D图形库组合:Three.js、Physijs和Tween.js来开发3D图形、动画和简单游戏。同时本书原作者自创的程序编辑器又帮助初次接触编程的读者隐藏了编程中许多枯燥的繁文冗节,使读者可以快速进入状态,并将注意力集中在程序的主要逻辑上。
目录
赞誉
译者序
前言
致谢
第1章 项目:创建简单形体 / 1
1.1 使用3DE代码编辑器来编程 / 2
1.2 在JavaScript中创建形体 / 5
1.3 创建Sphere / 5
1.3.1 大小:SphereGeometry(100) / 6
1.3.2 光滑度:SphereGeometry(100, 20, 15) / 6
1.4 用Cube形体来创建立体方块 / 8
1.5 使用Cylinder创建多种形体 / 11
1.5.1 大小:CylinderGeometry(20, 20, 100) / 11
1.5.2 金字塔:CylinderGeometry(1, 100, 100, 4) / 13
1.6 用Plane创建平面 / 14
1.7 用Torus创建甜甜圈 / 15
1.7.1 大小:TorusGeometry(100, 25) / 16
1.7.2 光滑度:TorusGeometry(100, 25, 8, 25) / 16
1.7.3 吃掉甜甜圈:TorusGeometry(100, 25, 8, 25, 3.14) / 17
1.8 让形体们动起来 / 17
1.9 完整代码 / 18
1.10 下一步我们做什么 / 19
第2章 调试:出错时如何修复代码 / 20
2.1 让我们开始吧 / 21
2.2 利用3DE来调试:红色的叉 / 22
2.3 被3DE怀疑的代码:黄色的三角 / 23
2.4 打开和关闭JavaScript控制台 / 24
2.5 利用JavaScript控制台来调试 / 24
2.6 3D程序中的常见错误 / 27
2.6.1 可能会遇到的错误1:Not a Constructor / 28
2.6.2 可能会遇到的错误2:Three Is Not Defined / 28
2.6.3 可能会遇到的错误3:Not a Function / 29
2.7 当3DE代码编辑器卡住时该如何恢复 / 30
2.8 下一步我们做什么 / 31
第3章 项目:创建游戏角色 / 32
3.1 让我们开始吧 / 33
3.2 形体的光滑度 / 33
3.3 把零件拼成整体 / 35
3.4 把整体拆成零件 / 36
3.5 添加能走路的脚 / 38
3.6 挑战一下:设计自己的游戏角色 / 40
3.7 让角色翻跟头 / 40
3.8 完整代码 / 43
3.9 下一步我们做什么 / 43
第4章 项目:移动游戏角色 / 44
4.1 让我们开始吧 / 45
4.2 利用键盘事件创建交互系统 / 46
4.3 根据键盘事件控制游戏角色移动 / 48
4.4 挑战一下:开始和停止动画 / 49
4.5 添加树木的函数 / 51
4.6 让摄像机跟随游戏角色 / 53
4.7 完整代码 / 57
4.8 下一步我们做什么 / 57
第5章 函数:一遍又一遍地执行 / 58
5.1 让我们开始吧 / 59
5.2 基本函数 / 60
5.3 返回数值的函数 / 62
5.4 使用函数 / 65
5.5 搞坏函数 / 67
5.6 进阶代码1:随机颜色 / 69
5.7 进阶代码2:飞行控制 / 71
5.8 完整代码 / 73
5.9 下一步我们做什么 / 73
第6章 项目:摆臂和迈步 / 74
6.1 让我们开始吧 / 75
6.2 移动手臂 / 75
6.3 让双手和双脚一起摆动 / 79
6.4 边走边动作 / 80
6.5 完整代码 / 84
6.6 下一步我们做什么 / 84
第7章 深入理解JavaScript基础知识 / 85
7.1 让我们开始吧 / 86
7.2 在JavaScript中描述事物 / 87
7.2.1 var关键字 / 88
7.2.2 JavaScript变量的值 / 89
7.2.3 代码和注释 / 89
7.3 JavaScript中的数字、文字以及其他东西 / 90
7.3.1 数字 / 90
7.3.2 几何 / 93
7.3.3 字符串 / 94
7.3.4 布尔值 / 96
7.3.5 无 / 98
7.3.6 数据列表 / 98
7.3.7 映射表 / 100
7.4 控制结构 / 101
7.4.1 当某件事为真时才执行的代码 / 101
7.4.2 循环 / 103
7.5 下一步我们做什么 / 105
第8章 项目:让游戏角色转身 / 106
8.1 让我们开始吧 / 107
8.2 面向特定的方向 / 107
8.3 拆开看看 / 109
8.3.1 为什么是rotation.y / 109
8.3.2 别忘记avatar.rotation / 110
8.3.3 停止走动时该面对哪个方向 / 110
8.4 用动画来转身 / 111
8.5 完整代码 / 112
8.6 下一步我们做什么 / 113
第9章 那些自动生成的代码 / 114
9.1 让我们开始吧 / 115
9.2 初识HTML / 115
9.3 设置3D场景 / 117
9.4 使用摄像机拍摄场景 / 118
9.5 使用渲染器绘制场景 / 119
9.6 探索不同类型的摄像机 / 120
9.7 下一步我们做什么 / 122
第10章 项目:碰撞 / 123
10.1 让我们开始吧 / 124
10.2 射线和交点 / 125
10.3 完整代码 / 129
10.4 下一步我们做什么 / 129
第11章 水果狩猎 / 130
11.1 让我们开始吧 / 131
11.2 记分牌 / 132
11.3 让树有点摆动 / 133
11.4 跳跃得分 / 135
11.5 让我们的游戏更好 / 138
11.5.1 添加动画和声音 / 138
11.5.2 我们还可以添加什么 / 140
11.6 完整代码 / 141
11.7 下一步我们做什么 / 141
第12章 使用灯光和材质 / 142
12.1 让我们开始吧 / 143
12.2 发光 / 145
12.3 环境光 / 146
12.4 点光源 / 146
12.5 阴影 / 148
12.6 聚光灯和阳光 / 150
12.7 纹理 / 152
12.8 进一步探索 / 153
12.8.1 获得更好的视野 / 153
12.8.2 最后的调整 / 154
12.9 完整代码 / 155
12.10 下一步我们做什么 / 155
第13章 项目:月相 / 156
13.1 让我们开始吧 / 157
13.2 太阳在中心 / 158
13.3 游戏与模拟逻辑 / 159
13.4 本地坐标 / 162
13.5 多摄像机动作 / 165
13.6 进阶代码1:星星 / 167
13.7 进阶代码2:飞行控制 / 168
13.8 了解月相 / 169
13.9 不完美但伟大的模拟 / 172
13.10 完整代码 / 173
13.11 下一步我们做什么 / 173
第14章 项目:紫色水果怪物游戏 / 174
14.1 让我们开始吧 / 175
14.1.1 准备物理程序库 / 175
14.1.2 准备2D场景 / 177
14.2 构思游戏 / 177
14.3 添加游戏场地 / 179
14.4 添加简单角色 / 180
14.4.1 重置位置 / 181
14.4.2 主动物理模拟 / 183
14.4.3 运动控制 / 183
14.5 添加评分 / 184
14.6 游戏玩法 / 185
14.6.1 发射水果 / 185
14.6.2 吃水果和显示分数 / 187
14.6.3 游戏结束 / 188
14.7 改进 / 191
14.8 完整代码 / 191
14.9 下一步我们做什么 / 191
第15章 倾斜板子游戏 / 192
15.1 让我们开始吧 / 193
15.1.1 重力和其他设置 / 193
15.1.2 灯光、相机、阴影 / 194
15.2 构思游戏 / 195
15.2.1 添加灯光 / 195
15.2.2 添加游戏球 / 196
15.2.3 添加游戏板 / 197
15.2.4 重置游戏 / 198
15.2.5 添加游戏控制 / 200
15.2.6 添加游戏目标 / 201
15.2.7 就这样了 / 204
15.3 进阶代码1:添加背景 / 205
15.4 进阶代码2:制造火 / 205
15.5 挑战 / 208
15.6 完整代码 / 208
15.7 下一步我们做什么 / 208
第16章 了解JavaScript对象 / 209
16.1 让我们开始吧 / 210
16.2 简单的对象 / 211
16.3 属性和方法 / 214
16.4 复制对象 / 214
16.5 构建新对象 / 216
16.6 JavaScript中最糟糕的事情:失去了这个 / 218
16.7 挑战 / 220
16.8 完整代码 / 220
16.9 下一步我们做什么 / 220
第17章 项目:预备,稳定,发射 / 221
17.1 让我们开始吧 / 223
17.2 发射器 / 223
17.3 记分牌 / 228
17.4 篮子和目标 / 228
17.5 风 / 232
17.6 完整代码 / 235
17.7 下一步我们做什么 / 235
第18章 项目:双人游戏 / 236
18.1 让我们开始吧 / 237
18.2 两个发射器 / 238
18.3 两个记分牌 / 243
18.4 让篮子更新正确的记分牌 / 246
18.5 共享键盘 / 247
18.6 游戏重新开始 / 249
18.7 完整代码 / 251
18.8 下一步我们做什么 / 251
第19章 项目:河道漂流 / 252
19.1 让我们开始吧 / 253
19.2 推拉形状 / 255
19.3 崎岖的地形 / 259
19.4 挖一条河 / 261
19.5 记分牌 / 266
19.6 建造木筏 / 266
19.7 重置游戏 / 268
19.8 键盘控制 / 269
19.9 终点线 / 270
19.10 进阶代码:保持分数 / 272
19.10.1 基于时间的评分 / 273
19.10.2 蓄能点数 / 274
19.11 完整代码 / 278
19.12 下一步我们做什么 / 278
第20章 将代码放到网上 / 280
20.1 无所不能的浏览器 / 281
20.2 免费网站 / 284
20.3 将代码放在另一个站点上 / 285
20.4 完整代码 / 289
20.5 下一步我们做什么 / 289
附录A 项目代码 / 290
附录B JavaScript程序库 / 350
参考文献 / 356




有问题微信扫码联系

推荐

Understand China
桂ICP备20004708号-4