我想要编写比我已经知道的基本2D东西更复杂的图形2D游戏。我不想做3D编程。只是更复杂的2D东西。在我可以学到很多东西之前,我就高中辍学了,所以我带着足够的代数知识离开了学校,可以平衡我的支票簿,做一些轻量级的2D笛卡尔编程。
对于注意力有限的人(比如我最感兴趣的科目每人20分钟),有没有什么好的资源可以让他逐渐学习,如何在编程中用数学做一些更有用的事情?
发布于 2008-10-09 16:37:26
你需要精通三角函数:Wikipedia和Mathworld
即使你不想做3D编程,2D游戏也使用向量和矩阵。(出自线性代数)
线性代数资源:Wikepedia和Mathworld
在Trig编程中可以节省大量精力的一点是认识到需要atan2()函数,而不是atan()函数。在确定两点之间的方向时,这一点很重要。
能够在不同的坐标系之间移动是一个很大的优势。这将是经验带来的。有两个常见的事情会让人犯错:
a)大多数屏幕系统将原点(0,0)放在左上角,正x轴向右延伸,正y轴向下延伸。标准笛卡尔坐标假设象限1的原点(其中x和y始终为正或零)位于左下角。这需要程序员在某个阶段‘翻转’y方向。
b)典型的地理位置为0度,北度和正度顺时针扫描。所有Trig函数都将0度放置为East,并将正度数逆时针扫描。
最后,尽管我们倾向于以度为单位思考,但真正的库将使用弧度。最佳实践是将角度存储为弧度(在“数学”方向而不是“地理”方向),并在显示调试信息时进行转换。
发布于 2008-10-09 16:24:32
我现在正在看David M. Bourg的"Physics for Game Developers“。到目前为止,我会推荐它。
它提供了物理学背后的数学概念,可以很容易地应用于2D领域,为您的游戏增添一点情趣。
发布于 2008-10-09 16:51:23
GameDev.net有一篇关于数学和物理编码的文章。值得快速浏览一下,看看是否有与您正在尝试做的事情相关的内容。
http://www.gamedev.net/reference/list.asp?categoryid=28
https://stackoverflow.com/questions/188030
复制相似问题