游戏开发的数学和物理
出版信息
[ 日] 加藤洁 / 徐 谦 / 人民邮电出版社 / 59.00元
内容简介
本书严格选取了游戏开发中最常用的数学和物理学知识,通过游戏开发实例,配上丰富的插图,以从易到难的顺序进行讲解。第1章到第5章分别讲解了物体的运动、卷动、碰撞检测、光线的制作、画面切换的细分处理。这五章将2D游戏必需的知识一网打尽,同时还严格挑选了少量3D游戏编程的基础内容以供参考。第6章系统梳理了游戏开发的数学和物理学理论,帮助读者更好地理解前五章的内容。
本书适合网络和手机游戏开发者阅读。
作者简介
作者简介:
加藤洁
毕业于东京理科大学物理专业,后转攻信息科学。现任教于Amusement Media综合学院,主讲游戏数学和3D程序开发。近年来随着游戏开发所需的技术水平越来越高,主张让高中毕业的游戏开发者也能习得这些高深的技巧。日常致力于教育方法的研究工作,希望以简单有效的方式讲解门槛较高的理科知识。著有《PC-9801 PROGRAMMERS Bible》(合著,技术评论社,1994)。
译者简介:
徐谦
7年技术开发及项目经验,曾以技术工程师身份赴日本工作两年,后归国联合创办互联网公司,现居上海继续创业中。侧重Web开发,有若干高并发、实时Web系统的分布式解决案例。热爱开源,曾向多个知名开源项目贡献代码,在Github开源的个人项目(github.com/AlloVince)获得广泛认可。乐于分享技术心得,个人技术博客avnpc.com在国内PHP圈小有影响。
目录
第1章 物体的运动
1.1 让物体沿水平方向运动 【匀速直线运动、x+=v;、 v = -v】 2
1.2 通过键盘控制物体的运动 【键盘输入、斜方向移动、勾股定理】 9
1.3 让物体沿任意方向运动 【三角函数、正弦、余弦、弧度】 20
1.4 在物体运动中加入重力 【抛物运动、重力加速度、计算误差、积分】 28
1.5 物体随机飞溅运动 【随机数、均匀随机数、正态分布】 36
1.6 让物体进行圆周运动 【角速度、向心力】 42
1.7 [ 进阶] 微分方程式及其数值解法 【微分方程、数值解法、欧拉法】 48
第2章 卷动
2.1 将背景从一端卷动到另一端 【镜头位置、卷动幅度、比例关系】 56
2.2 让背景卷动与角色的运动产生联动 【区域坐标、画面坐标】 64
2.3 卷动由地图块组合的地图 【地图、地图块、整数的减法、移位运算、逻辑运算】 71
2.4 波纹式的摇摆卷动 【波纹扭曲、正弦波、波长、振幅、周期】 79
2.5 制作有纵深感的卷动 【透视、比例计算、梯形】 87
2.6 [ 进阶] 透视理论 【视景体、近似】 92
第3章 碰撞检测
3.1 长方形物体间的碰撞检测 【矩形、德摩根定律】 98
3.2 圆形与圆形、圆形与长方形物体间的碰撞检测 【距离、勾股定理、平方比较】 104
3.3 细长形物体与圆形物体间的碰撞检测 【点与线段的距离、内积、微分】 111
3.4 扇形物体的碰撞检测 【条件划分、向量的运算、向量的内分点、圆的方程式】 119
3.5 [ 进阶] 3D的碰撞检测 【2D、3D、维度扩展】 131
第4章 光线的制作
4.1 让物体向任意方向旋转(含缩放效果) 【旋转、基向量、向量加法、向量减法】 136
4.2 任意两点间的光线投射 【向量长度、单位向量】 145
4.3 光线弯曲处理 【圆形、圆周长、伪影】 150
4.4 实现带追踪效果的激光 【左右判定、外积、旋转速度】 155
4.5 [ 进阶] 绘制大幅度弯曲的曲线时的难点 【曲率、曲线的粗细、插值曲线、反射】 162
第5章 画面切换效果
5.1 水平扫描式画面切换 【三角多边形、纹理素材、uv坐标】 168
5.2 斜向扫描式画面切换 【向量形式的直线、剪裁】 175
5.3 使用带模糊效果的分界线进行画面切换 【渐变、Alpha 合成】 181
5.4 使用圆形进行画面切换 【避免重复渲染、环形、a值】 186
5.5 雨刷式画面切换 【避免条件分支】 193
5.6 [ 进阶] 多种多样的画面切换方法 【遮罩图案、可编程着色器、高斯滤波器】 200
第6章 游戏开发的数学和物理学基础理论
6.1 比例、一次函数及直线方程 【比例系数、斜率、截距、参数方程】 204
6.2 算式展开与因式分解 【计算优先级、分配律】 208
6.3 二次函数、二次方程与抛物线 ? 圆 【完全平方、求根公式、圆锥曲线】 213
6.4 三角函数 【直角三角形、单位园、弧度、相位】 218
6.5 向量与矩阵 【长度、方向、一次变换、逆变换】 225
6.6 微分 【变化率、微分系数、极限、合成函数】 235
6.7 级数与积分 【数列、西格玛、原函数、不定积分、积分常数】 243
附 录 示例程序的编译及运行方法 249
——基于Visual Studio 2013、Visual Studio 2012、Visual Studio 2010