JavaScript Vector2d Math
JavaScript Vector2d Math
我最近开始用JavaScript编写小型画布游戏,并试图了解Vector 2d数学。我了解矢量的基本原理(比如它们表示二维空间中有方向的点,你可以对它们进行加法、乘法、减法和旋转),但我不知道如何在计算游戏中对象的方向和速度时应用矢量。
查看此游戏:http://rem.im/asteroid.html
一个由二维矢量数学驱动的迷你游戏的好例子。
伟大的Seb Lee Delisle正在使用这个JavaScript伪类进行矢量计算:https://github.com/sebleedelisle/JSTouchController/blob/master/js/Vector2.js
我读过一些矢量数学教程,但它们100%专注于数学,没有描述如何用矢量构建游戏,比如控制太空船和子弹。
你能给我介绍一些如何在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。
示例:对象的当前位置为(100200),其当前速度为(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.
相关文章:
- 如何防止Math.max()返回NaN
- Math.min()和Math.max()之间有什么区别?在Javascript中
- JavaScript Vector2d Math
- Math.exp() for bigInt?
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 为什么Math.pow(1,无穷大)返回NaN
- 对变量使用math.max并显示相应的变量
- JavaScript basis 是 math.pow 函数中的十进制数
- Javascript Math.floor 函数失误或实现之谜
- Math.random不断返回相同的答案
- 为什么math.bignumber()返回一个对象?以及我如何使用它
- JS:如何在使用 Math.random() 时排除一系列值
- Math.min.apply 返回 0 表示空值
- Javascript;使用math.random函数随机执行一个操作
- 为什么Java和Javascript Math.round(-1.5)到-1
- Performance: toFixed() vs. Math.floor(x * 10000)
- Math.round MidPointRounding.AwayFromZero in javascript
- Java脚本中的Math.max函数
- 使用Math.round的奇怪方法结果
- 当a是负数,b是非整数时,为什么Math.pow(a,b)是NaN