gpt4 book ai didi

JavaScript Vector2d 数学

转载 作者:行者123 更新时间:2023-11-30 13:15:10 31 4
gpt4 key购买 nike

我最近开始使用 JavaScript 编写小型 Canvas 游戏,并试图全神贯注于 Vector 2d 数学。我了解 Vectors 的基础知识(比如它们代表 2d 空间中具有方向的点,您可以对它们进行加、乘、减和旋转)但我不明白如何在例如计算方向和速度时应用向量游戏中的对象。

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

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

伟大的 Seb Lee Delisle 在他的向量计算中使用了这个 JavaScript 伪类: https://github.com/sebleedelisle/JSTouchController/blob/master/js/Vector2.js

我读过一些关于向量数学的教程,但它们 100% 专注于纯数学,并没有描述如何使用向量构建游戏,例如控制 spaceship 和子弹。

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

谢谢!

最佳答案

您可以将元素的位置视为向量 (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.

关于JavaScript Vector2d 数学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12276124/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com