Repository files navigation
Web上で動作する物理エンジンです
TypeScript、JavaScriptで記述されています
※エンジンの最適化がされていないため、オブジェクトを生成しすぎると重くなります
この物理エンジンはPDB法による衝突判定を行い演算しています
デモサイト から誰でも自由に利用可能です
このコード又はプログラムを利用する場合はLICENSEをお読みください
デモサイトでの使い方を1番上から説明しています
操作の一部はタッチパネルにも対応しています
物体(円、四角、ロープ)はエンティティーで構成され、全ての物体の最小単位になります
地面のみエンティティーで構成されていません
物体は上下左右10000pxを超えると負荷削減のため削除されます
エンジンが停止状態でTキーを入力すると1フレームずつ進められます
重力加速度を設定します
エンティティーで構成される物体(質量がある場合のみ)がこの影響を受けます
摩擦係数を設定します
エンティティーの移動、回転に影響します(エンティティーの衝突には影響しません)
負の値を設定すると徐々にエンティティーが加速します
描画の拡大と縮小を設定します
キャンバスの中央を中心として拡大縮小します
物理演算の処理速度を変更します
負荷が高い場合処理速度が上がらない場合があります
デバッグモードの有効/無効を切り替えます
有効にすると座標表示、エンティティーの速度ベクトルが表示されます
物体の通過後を表示します
100ミリ秒(初期設定)ごとに履歴が残ります
トラッキングが多すぎると動作が重くなる可能性があります
地面を含む全ての物体を削除します
トラッキングデータは削除されません
演算の開始と停止を切り替えます
停止した場合、物体処理は止まりますが、描画処理は継続されます
現在の物理演算状態をローカルストレージ上に保存します
データをJSON形式で保存・共有する場合は後述のエクスポートを使用する必要があります
保存されたデータを読み込みます
保存後の状態は削除されます
保存データが存在しない場合空のデータとして読み込まれます
保存されているデータをエクスポートします
保存を先に実行されていないとエクスポートされません
JSON形式で保存されます
エクスポートされたデータを読み込みます
保存されたデータが破損している場合、正常に読み込み、演算ができない可能性があります
ツールを選択します
選択している間ツールの操作が有効になります
種類は以下の通りです
円: 標準的な円 一つのエンティティーで構成されます
四角: 擬似的な四角(完全な四角ではありません) 4つのエンティティーで構成されています
ロープ: 擬似的なロープ(完全なロープではありません) 設置には2点間をクリックする必要があります 長さに応じて必要なエンティティーが設定され構成されています
地面: 標準的な地面 重力の影響は受けません 設置には2点間をクリックする必要があります 完全に固定された平な面です
曲線: 曲がった地面 重力の影響は受けません 設置には3点間をクリックする必要があります 完全に固定された曲線です
ブースター: 設定された速度方向へ接触した物体を加速、減速させます
アトラクター: 設定された速度で設置点から指定された半径の中で引力、斥力を発生させます
移動: エンティティーを右クリックを押している間、任意の位置に移動できます
接続: エンティティー同士を接続します 二つのエンティティーをクリックする必要があります
接続解除: 接続の逆の操作をします 接続された二つのエンティティーをクリックする必要があります
操作: クリックして選択したエンティティーをWASDで操作します
画面移動: WASDで描画している場所を移動します デバッグモードを使用すると位置が確認できます
エンティティーのサイズの半径
地面の場合は地面の幅に影響します
物体の質量を設定します
地面は質量の影響を受けません
質量を0に設定することで物体を常に停止させることができます
エンティティーの衝突の跳ね返りやすさを設定します
特に理由がない場合は0.5から1の間に設定してください
0に設定すると物理演算がされません
物体の色を設定します
画像が設定されている場合、この設定は無視されます
物体にサブカラーが存在する場合にこの設定が使用されます
この機能は危険です
設定したコードがアップデート時に実行されます
object変数からコードが設定された物体にアクセスできます
物体に設定する画像URLやファイルを設定します
URLとファイルは後から設定した値が優先されます
画像は自動的にリサイズされます
背景の色を設定します
背景画像が設定されている場合この設定は無視されます
背景に設定する画像URLやファイルを設定します
URLとファイルは後から設定した値が優先されます
画像は自動的にリサイズされます
※ Node.js、NPMがインストールされている必要があります
git clone https://github.com/Taka005/JSEngine.gitを実行してレポジトリをクローンします
npm iを実行して依存関係をインストール
npm run bundleを実行してコンパイル
正常にビルドされるとpublicフォルダの中にEngine.jsが生成されます
public/index.htmlを開いてデモサイトを起動できます
About
Web上で動作する軽量な物理エンジン
Resources
License
Stars
Watchers
Forks
You can’t perform that action at this time.