数学与游戏编程

时间:2008-10-09 16:20:49

标签: math 2d

我想编程比我已经知道的基本2D内容更复杂的图形2D游戏。我不想做3D编程。只是更复杂的2D东西。在我学到很多东西之前,我放弃了高中学习,所以我带走了足够的代数知识来平衡我的支票簿并做一些简单的2D笛卡尔编程。

对于一个注意力有限的人(对于我非常感兴趣的一个主题每个20分钟)来说,是否有任何好的资源可以逐渐学习如何在编程中对数学做更有用的事情?< / p>

11 个答案:

答案 0 :(得分:17)

你需要胜任三角学:WikipediaMathworld

即使您不想进行3D编程,2D游戏也会使用矢量和矩阵。 (来自线性代数)

线性代数资源:WikepediaMathworld

在Trig编程中节省大量精力的一点是实现了对atan2()函数的需求,而不是atan()函数。在确定两点之间的方向时,这很重要。

能够在各种坐标系之间移动是一大优点。这将带来经验。绊倒人们的两件常见事情是:

a)大多数屏幕系统将原点(0,0)放在左上角,正x轴向右延伸,正y轴向下延伸。标准笛卡尔坐标假设左下角的象限1(其中x和y总是正或零)的原点。这需要程序员在某个阶段“翻转”y方向。

b)典型地理位置为0度为北,正度为顺时针方向。所有Trig功能都以0度为东,逆度顺时针扫描正度。

最后,即使我们倾向于以度为单位思考,真实的图书馆也会使用弧度。 最佳做法是将角度存储为弧度(以“数学”方向而非“地理位置”),并在显示调试信息时进行转换。

答案 1 :(得分:6)

我目前正在经历David M. Bourg的“Physics for Game Developers”。到目前为止,我推荐它。

它提供了物理学背后的数学概念,可以很容易地应用于2D领域,为你的游戏增添几分色彩。

答案 2 :(得分:4)

GameDev.net有一段关于数学和物理编码的文章。值得快速浏览一下,看看是否有任何与你想做的事情有关。

http://www.gamedev.net/reference/list.asp?categoryid=28

答案 3 :(得分:2)

如果你住在美国,那么如何在当地社区大学就读你错过的数学课程呢?他们将有资源帮助需要补习技能课程且可能有学习障碍的学生。你有学习的动力,现在你意识到教育的价值。想要学习并不羞耻。看到学术顾问,他们会帮助你。去吧。

答案 4 :(得分:2)

我非常相信从视频系列中学习是学习中最快的方式,也就是说,如果你想快速学习你愿意学习的东西。 你可以花很多时间阅读一个页面,只是为了获得视频在一两分钟内给你的一小部分信息!

为此,我找到了这个数学频道: https://www.youtube.com/user/patrickJMT

此外: https://www.youtube.com/playlist?list=PL233FC7AA6FE11E0E

答案 5 :(得分:1)

我不同意物理学对游戏开发者的推荐。

我发现这本书很无聊,我不会把自己的注意力放在那个上。

我会说最好的东西是矢量,使用trig来操纵它们,然后在这个基础之上你应用任何物理特定于你当前的项目。

我只是启动谷歌/维基百科并开始在网络上反复吸收随机的东西,当你的注意力范围有限时,会再次反弹。

接受这本书可能不会让你感到沮丧并激励你。

答案 6 :(得分:1)

如果你想要一个普通的数学网站,我建议planetmath.org。那里的文章往往比维基百科更高标准(在我的经验中,在数学方面可能是彻头彻尾的骇人听闻),并且比mathworld更加用户友好。如果你是一名数学家并且需要对某个术语进行完全正确的定义,那么Mathworld是很好的,但对于日常使用,它往往远非理论和钝。

答案 7 :(得分:1)

您可以通过学习Processing!

开始

然后转到Daniel Shiffman写的一本名为“The Nature of Code”的神奇书中。这本书也可以通过Processing.js

编写的交互式示例在线获取

http://natureofcode.com/book/

这本书涵盖了

1. VECTORS
2. FORCES
3. OSCILLATION
4. PARTICLE SYSTEMS
5. PHYSICS LIBRARIES
6. AUTONOMOUS AGENTS
7. CELLULAR AUTOMATA
8. FRACTALS
9. THE EVOLUTION OF CODE
10. NEURAL NETWORKS

他还向Vimeo上传了视频,解释了每章的概念! http://vimeo.com/shiffman/videos/sort:date/format:detail

  

我们如何捕捉不可预测的进化和紧急情况   软件中的自然属性?怎么能理解   我们物质世界背后的数学原理帮助我们创造   数字世界?本书侧重于编程策略和   计算机模拟自然系统的技术   处理

他还写了一本书,教你Learning processing

的基础知识

http://www.learningprocessing.com/

  

这本书讲述了一个故事。这是一个关于解放的故事   了解计算基础的第一步,   编写自己的代码,并在没有债券的情况下创建自己的媒体   现有的软件工具。这个故事不是为计算机保留的   科学家和工程师。这个故事适合你。

答案 8 :(得分:0)

奇怪的是,我在维基百科的线性代数中发现了许多有用的东西:http://en.wikipedia.org/wiki/Portal:Mathematics

一般来说,它不是最好的知识来源,但数学还可以。

答案 9 :(得分:0)

我推荐Wolfram的资源:http://mathworld.wolfram.com

它们很厚,但我知道没有更好的在线资源。

答案 10 :(得分:0)

您可能想查看有关该主题的任何OReilly文字。他们有很好的例子,你可以通过。这将使您更好地了解编程是否适合您。如果你想进入游戏编程,最好的方法是实际开始game programming。在它出现时,只需查看问题的答案(此处其他回复中的链接)即可。

相关问题