3

私は最近、JavaScript で小さなキャンバス ゲームのプログラミングを開始し、Vector 2d 数学に頭を悩ませようとしています。ベクトルの基本的なことは理解していますが (方向のある 2 次元空間の点を表し、それらを加算、乗算、減算、回転できるなど)、たとえば方向と速度を計算するときにベクトルを適用する方法がわかりません。ゲーム内オブジェクトの。

このゲームをチェックしてください: 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

要素の位置は、座標原点 (0,0) からこの点への方向も定義するベクトル (x,y) として表示できます。

速度は、単位時間あたりの位置の変化率です。したがって、たとえば (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 に答える