Skip to main content
sim.*require なしで使える名前空間です。メンバーは2種類あります。
sim という名前のフォルダは作れません。この名前空間と衝突するためです。 ファイルとしての sim.lua は置けますが、require の対象外です。

ライブラリ関数

Storm Code に同梱されており、バージョンは固定です。利用者が選ぶことはできません。 これは Stormworks の公式ライブラリではありません。

sim.clamp(value, lo, hi)

value[lo, hi] の範囲に収めます。
lo > hi の場合の挙動は未定義です。引数の検証は行いません (マイクロコントローラー上での実行コストを抑えるためです)。

sim.lerp(a, b, t)

a から b への線形補間です。t = 0at = 1b を返します。
**t[0, 1] の外でもクランプしません。**外挿されます。 範囲を保証したい場合は sim.clamp と組み合わせてください。

sim.map(value, inMin, inMax, outMin, outMax)

value を入力範囲から出力範囲へ線形に変換します。
**出力範囲へクランプしません。**入力が範囲外なら外挿されます。 inMin == inMax の場合はゼロ除算になります。検査は行いません。

シミュレータ専用 API

Storm Code の中にしか存在しません。ゲーム内には無いため、 エクスポートするコードから参照すると environment-only-api エラーになります。 デバッグ実行では実在するので、実行自体は妨げられません。
これらは通常、手で書くものではありません。 Sim I/O パネルが マーカーで区切ったブロックとして自動生成します。 このブロックは minify の前に取り除かれるため、パネルから設定している限りエラーにはなりません。

使えない書き方