Math 数学与游戏编程

Math 数学与游戏编程,math,2d,Math,2d,我想编程的图形2D游戏比我已经知道的基本2D游戏更复杂。我不想做3D编程。只是更复杂的2D东西。我还没来得及学很多东西就辍学了,所以我带着足够的代数知识离开了学校,平衡了我的支票簿,做了一些简单的二维笛卡尔编程 对于一个注意力跨度有限的人(比如说我非常感兴趣的一门学科,每人20分钟),有没有什么好的资源可以让他逐渐学会如何在编程中用数学做一些更有用的事情?我目前正在读大卫·m·鲍格的“”一文。到目前为止,我推荐它 它提供了物理学背后的数学-y概念,可以轻松地应用到2D领域,为游戏增添一些趣味。奇

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


对于一个注意力跨度有限的人(比如说我非常感兴趣的一门学科,每人20分钟),有没有什么好的资源可以让他逐渐学会如何在编程中用数学做一些更有用的事情?

我目前正在读大卫·m·鲍格的“”一文。到目前为止,我推荐它


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

奇怪的是,我在维基百科中找到了很多关于线性代数的有用内容:


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

你需要精通三角学:而且

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

线性代数资源:和

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

能够在各种坐标系之间移动是一大优势。这需要经验。两件让人绊倒的常见事情是:

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

b) 典型的地理位置是0度为北,正度为顺时针。所有Trig功能将0度放置为东方,正度逆时针扫掠

最后,尽管我们倾向于以度为单位思考,但真正的库将使用弧度。
最佳做法是将角度存储为弧度(以“数学”方向而不是“地理”)并在显示调试信息时进行转换。

我推荐Wolfram的参考资料:


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

我不同意游戏开发者对物理的建议

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

<>我会说最擅长的是向量,使用TIG来操纵它们,然后在这个基础之上,应用任何特定于当前项目的物理。

我会启动谷歌/维基百科,开始在网上蹦蹦跳跳,吸收随机的东西,当你有限的注意力广度变得不安时,再次蹦蹦跳跳


接受这本书可能不会吸引你,也不会激发你的灵感。

GameDev.net有一节关于数学和物理编码的文章。这是值得一看,看看是否有什么是相关的,你正试图做什么


如果你想要一个通用数学网站,我推荐你。那里的文章往往比维基百科标准更高(根据我的经验,维基百科在数学方面可能会令人震惊),而且比mathworld更容易使用。如果你是一个数学家,需要对某个术语有一个完全正确的定义,那么Mathworld是很好的,但是对于日常使用来说,它往往远远不是理论上的和迟钝的

如果你住在美国,那么去当地社区大学报名参加你错过的数学课程怎么样?他们将提供资源,帮助需要补习技能课程和可能有学习障碍的学生。你有学习的动力,现在你意识到了教育的价值。想要学习没有什么丢脸的。找个学术顾问,他们会帮你的。去做吧。

你可能想看看关于这个主题的任何文章。他们有很好的例子,你可以通过。这将使您更好地了解编程是否适合您。若你们想进入游戏编程领域,最好的方法就是真正开始。只要看一下它,并在问题出现时查找问题的答案(其他回复中的链接)。

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

为此,我找到了这个数学频道:

此外:
你可以从学习开始

然后继续看Daniel Shiffman写的这本名为“”的书。这本书也可以在线获得,其中包含了用Processing.js编写的交互式示例

这本书的封面

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,解释每一章的概念!

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

他还写了一本书来教你基本的知识

这本书讲述了一个故事。这是一个解放的故事,一个夺取胜利的故事 理解计算基础的第一步, 编写自己的代码,创建自己的媒体,而不需要绑定 对现有软件工具的分析。这个故事不是专为计算机而写的 科学家和工程师。这个故事是给你的


+因为你退学了,你是SOI里最酷的家伙。我一直在那个网站上看视频,我想,如果有人能指出哪些东西,那就太酷了