3

我最近开始用 JavaScript 编写小型画布游戏,并试图围绕 Vector 2d 数学。我了解向量的基本知识(就像它们代表二维空间中的一个点,你可以添加、乘、减和旋转它们)但我不明白如何在计算方向和速度时应用向量游戏中的对象。

看看这个游戏: http ://rem.im/asteroid.html

2d 矢量数学驱动的迷你游戏的一个很好的例子。

伟大的 Seb Lee Delisle 正在使用这个 JavaScript 伪类进行矢量计算: https ://github.com/sebleedelisle/JSTouchController/blob/master/js/Vector2.js

我已经阅读了一些关于矢量数学的教程,但它们具有 100% 纯数学重点,并且没有描述如何使用矢量构建游戏,例如控制太空船和子弹。

你能给我一些关于如何在 JavaScript 游戏中应用矢量数学的教程吗?

谢谢!

4

1 回答 1

4

您可以将元素的位置视为向量 (x,y),它还定义了从坐标原点 (0,0) 到该点的方向。

速度是每单位时间的位置变化率。因此,例如(1,5)意味着每个时间单位(比如说每帧)x坐标将改变+1,y坐标将改变+5。所以新位置将是 (x,y)+(1,5) = (x+1, y+5)

加速度是每单位时间的速度变化率。假设您的加速度为 (1,1),那么速度将在 x 方向上变化 +1,在 y 方向上变化 +1。

示例:对象的当前位置为 (100, 200),其当前速度为 (5,0),加速度为 (1,1)。

Position in frame 0: (100,200), velocity (5,0)
Position in frame 1: (100,200) + (5,0) = (105,200), new velocity (5,0) + (1,1) = (6,1)
Position in frame 2: (105,200) + (6,1) = (111,201), new velocity (6,1) + (1,1) = (7,2)

etc.
于 2012-09-05T07:25:27.867 回答