16

我想编写比我已经知道的基本 2D 东西更复杂的图形 2D 游戏。我不想做 3D 编程。只是更复杂的 2D 东西。我还没来得及学很多东西就辍学了,所以我带着足够的代数知识离开了,以平衡我的支票簿并做一些简单的二维笛卡尔编程。

有没有什么好的资源可以让注意力有限的人(比如我非常感兴趣的主题每人 20 分钟)逐渐学习如何在编程中用数学做一些更有用的事情?

4

11 回答 11

17

你需要精通三角学:维基百科数学世界

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

线性代数资源:维基百科数学世界

在 Trig 编程中可以节省大量精力的一点是意识到需要atan2()函数,而不是 atan() 函数。这在确定两点之间的方向时很重要。

能够在各种坐标系之间移动是一大优势。这将伴随着经验而来。两个常见的绊倒人的事情是:

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

b) 典型的地理将 0 度放置为北,正度顺时针扫过。所有 Trig 函数都将 0 度放置为东,正度逆时针扫过。

最后,即使我们倾向于用度数来思考,真正的库也会使用弧度。最佳实践是将角度存储为弧度(以“数学”方向而不是“地理”方向)并在显示调试信息时进行转换。

于 2008-10-09T16:37:26.097 回答
6

我目前正在阅读David M. Bourg 的“游戏开发者物理学”。到目前为止,我会推荐它。

它提供了物理背后的数学概念,可以轻松应用于 2D 领域,为您的游戏增添趣味。

于 2008-10-09T16:24:31.550 回答
4

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

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

于 2008-10-09T16:51:22.823 回答
2

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

于 2008-11-27T17:18:02.843 回答
2

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

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

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

于 2012-11-23T21:19:50.813 回答
1

如果你想要一个通用的数学网站,我推荐planetmath.org。那里的文章往往比维基百科具有更高的标准(根据我的经验,它在数学方面可能会令人震惊)并且比数学世界更加用户友好。如果您是一名数学家并且需要某个术语的完整正确定义,那么 Mathworld 是不错的选择,但对于日常使用而言,它往往与理论和钝度相去甚远。

于 2008-11-27T17:04:29.797 回答
1

我不得不不同意 Physics for Game Developers 的建议。

我觉得那本书很无聊,我不会把自己的注意力说得那么短。

我想说最擅长的事情是向量,使用三角函数来操纵它们,然后在此基础上应用任何特定于当前项目的物理。

我只是启动 google/wikipedia 并开始在网络上弹跳吸收随机的东西,当你有限的注意力变得焦躁时,再次弹跳。

读那本书可能不会吸引你并激励你。

于 2008-10-09T16:48:26.167 回答
1

您可以从学习处理开始!

然后继续阅读 Daniel Shiffman 的这本令人惊叹的书,名为“代码的本质”。这本书也可以在线获得,其中包含用 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

我们如何才能在软件中捕捉到自然界不可预测的进化和涌现属性?理解物理世界背后的数学原理如何帮助我们创造数字世界?本书重点介绍使用 Processing 对自然系统进行计算机模拟背后的编程策略和技术。

他还写了一本书来教你学习处理的基础知识

http://www.learningprocessing.com/

这本书讲述了一个故事。这是一个解放的故事,是迈出理解计算基础、编写自己的代码和创建自己的媒体的第一步,而无需现有软件工具的束缚。这个故事不是留给计算机科学家和工程师的。这个故事是给你的。

于 2013-03-27T04:28:25.743 回答
0

奇怪的是,我在 Wikipedia 中发现了很多关于线性代数的有用内容:http ://en.wikipedia.org/wiki/Portal:Mathematics

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

于 2008-10-09T16:35:49.610 回答
0

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

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

于 2008-10-09T16:42:09.050 回答
0

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

于 2010-12-28T00:50:02.007 回答