Tiniest2Dで2Dゲームを作る
エンジンAPIリファレンス
Lesson 8 of 11 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
API Reference
完全なAPIリファレンス
エディタ内でもショートフォームで利用可能です:

アセットコンストラクタ
コンストラクタは、エディタで使用される主要なアセットタイプを作成します。変数に割り当てると、エディタがそれを認識し、Ctrl+Clickで対応するアセットエディタを開くことができます。
| 関数 | 説明 |
|---|---|
Sprite(width, height) |
指定された寸法のスプライトアセットを作成します |
Scene() または Scene(name) |
シーンアセットを作成します |
Audio() |
小型トラッカースタイルのオーディオアセットを作成します |
Object() または Object(name) |
ゲームオブジェクトを作成します |
リストメソッド
[] または [value1, value2, ...] でリストを作成します。list[index] でエントリを読み取り上書きし、for (var i = 0; i < list.length(); i = i + 1) で反復します。
| 関数 | 説明 |
|---|---|
list.add(value) |
リストの末尾に値を追加します |
list.length() |
リスト内の要素数を返します |
list.remove(index) |
指定されたインデックスの要素を削除します |
list.clear() |
リストからすべての要素を削除します |
演算子
演算子は、一般的な計算を行う小さな記号です。剰余演算子は、タイマー、インデックス、アニメーションステップ、または繰り返しパターンをラップするのに特に便利です。
| 演算子 | 説明 |
|---|---|
% |
剰余。除算後の余りを返します |
オブジェクトプロパティ
オブジェクトは、スクリプトが通常ゲーム中に移動や変更を行うものです。これらの関数は、オブジェクトの位置、スプライト、衝突挙動、レイヤー、および視覚的な色合いを読み取ったり更新したりします。
| 関数 | 説明 |
|---|---|
getX(obj) |
オブジェクトのX位置を返します |
setX(obj, x) |
オブジェクトのX位置を設定します |
getY(obj) |
オブジェクトのY位置を返します |
setY(obj, y) |
オブジェクトのY位置を設定します |
getVelocityX(obj) |
オブジェクトのX速度を返します |
setVelocityX(obj, vx) |
オブジェクトのX速度を設定します |
getVelocityY(obj) |
オブジェクトのY速度を返します |
setVelocityY(obj, vy) |
オブジェクトのY速度を設定します |
getName(obj) |
オブジェクトの名前を返します |
setName(obj, name) |
オブジェクトの名前を設定します |
getSprite(obj) |
オブジェクトのスプライトを返します |
setSprite(obj, sprite) |
オブジェクトにスプライトを割り当てます (アニメーションをフレーム0にリセット) |
getLayer(obj) |
オブジェクトの描画レイヤーを返します |
setLayer(obj, layer) |
オブジェクトの描画レイヤーを設定します (高いほど後に描画されます) |
getTint(obj) |
色合いを [r, g, b, a] リストとして返します |
setTint(obj, r, g, b, a) |
オブジェクトの色合いを設定します (0-255それぞれ) |
getCollisionType(obj) |
衝突タイプ番号を返します |
setCollisionType(obj, type) |
衝突タイプを設定します |
スプライト関数
スプライト関数は、スプライトのピクセルデータやアニメーション速度を検査または変更するためのものです。ほとんどのゲームはエディタでスプライトを描画しますが、これらの関数は手続き的な効果、デバッグ、または単純なランタイム変更に便利です。
| 関数 | 説明 |
|---|---|
fillSprite(sprite, r, g, b, a) |
すべてのフレームのすべてのピクセルを単色RGBA色 (0-255) で塗りつぶします |
getPixel(sprite, frame, x, y) |
指定されたフレームの(x,y)にあるピクセルの [r,g,b,a] を返します。範囲外の場合はnull |
setPixel(sprite, frame, x, y, r, g, b, a) |
指定されたフレームの(x,y)にあるピクセルの色を設定します。範囲外の場合は何も行いません |
getAnimationFPS(sprite) |
スプライトのアニメーション速度をフレーム毎秒単位で返します |
setAnimationFPS(sprite, fps) |
スプライトのアニメーション速度をフレーム毎秒単位で設定します |
アニメーション関数
アニメーション関数は、複数のフレームを持つスプライトを使用するオブジェクトで機能します。コードによって現在のアニメーションフレームを検査または強制したい場合に使用します。
| 関数 | 説明 |
|---|---|
getFrame(obj) |
オブジェクトの現在のアニメーションフレームインデックスを返します |
setFrame(obj, frameIndex) |
オブジェクトのアニメーションフレームを設定します (タイマーをリセット) |
getFrameCount(obj) |
オブジェクトのスプライト内のフレーム数を返します |
変換関数 (反転/回転)
変換関数は、オブジェクトのスプライトが描画される方法を変更しますが、スプライト自体は編集しません。複数の方向で1つのスプライトを再利用するのに適しています。
| 関数 | 説明 |
|---|---|
getFlipX(obj) |
オブジェクトが水平方向に反転しているかどうかを返します |
setFlipX(obj, flip) |
水平反転を設定します。 true = 反転、false = 通常 |
getFlipY(obj) |
オブジェクトが垂直方向に反転しているかどうかを返します |
setFlipY(obj, flip) |
垂直反転を設定します。 true = 反転、false = 通常 |
getRotation(obj) |
オブジェクトの90度回転を返します (0-3) |
setRotation(obj, rot) |
90度の回転を設定します: 0=0, 1=90, 2=180, 3=270度時計回り |
注: これらの変換はレンダー時のみ適用されます。衝突ボックスや実際のスプライトピクセルデータには影響しません。
衝突タイプ
衝突タイプは、オブジェクトが衝突チェックにどのように参加するかを決定します。オブジェクトの役割に基づいてタイプを選択します: 壁は通常静的で、プレイヤーは通常動的で、ピックアップはしばしばトリガーとなります。
| 定数 | 値 | 説明 |
|---|---|---|
COLLISION_NONE() |
0 | 衝突検出なし |
COLLISION_STATIC() |
1 | 衝突するが動かない |
COLLISION_DYNAMIC() |
2 | 衝突して押し出される |
COLLISION_TRIGGER() |
3 | 衝突を検出するがブロックしない |
シーン関数
シーン関数は、どのシーンがアクティブで、どのオブジェクトがその中に属しているか、背景色や重力などのシーン全体の設定を制御します。また、位置や名前でオブジェクトを検索するためのヘルパーも提供します。
| 関数 | 説明 |
|---|---|
addObject(scene, obj) |
シーンにオブジェクトを追加します |
removeObject(scene, obj) |
シーンからオブジェクトを削除します |
setScene(scene) |
アクティブなシーンを設定します |
getScene() |
現在のアクティブなシーンを返します |
resetScene(scene) |
シーンを初期状態にリセットします (エディタで設計された通り) |
setBackgroundColor(scene, r, g, b) |
シーンの背景色を設定します (RGB 0-255) |
getBackgroundColor(scene) |
背景色を [r, g, b] リストとして返します |
getGravityX(scene) |
シーンの重力X成分を返します |
setGravityX(scene, gx) |
シーンの重力X成分を設定します |
getGravityY(scene) |
シーンの重力Y成分を返します |
setGravityY(scene, gy) |
シーンの重力Y成分を設定します (正は下方向) |
getObjectAt(scene, x, y) |
(x,y)の点にある最初のオブジェクトを返します。存在しない場合はnull |
getObjectsAt(scene, x, y) |
(x,y)の点にあるすべてのオブジェクトのリストを返します |
getObjectsInBox(scene, x, y, w, h) |
ボックス内のすべてのオブジェクトを返します |
getObjectByName(scene, name) |
名前でオブジェクトを見つけます。見つからない場合はnull |
getObjectCount(scene) |
シーン内のオブジェクトの数を返します |
getAllObjects(scene) |
シーン内のすべてのオブジェクトのリストを返します |
isObjectInScene(scene, obj) |
オブジェクトがシーン内にある場合はtrueを返します |
getObjectsBySprite(scene, sprite) |
指定されたスプライトを使用しているすべてのオブジェクトを返します |
getObjectsByCollisionType(scene, type) |
指定された衝突タイプのすべてのオブジェクトを返します |
オーディオ再生
オーディオ再生関数は、スクリプトからオーディオアセットを開始および停止します。playAudio()はハンドルを返すので、後でその特定の再生インスタンスを停止またはチェックできます。
| 関数 | 説明 |
|---|---|
playAudio(audio) |
オーディオアセットを開始し、再生ハンドルIDを返します |
stopAudio(handle) |
playAudio()によって返された再生ハンドルを停止します |
isAudioPlaying(handle) |
再生ハンドルがまだアクティブな間はtrueを返します |
スクリーン関数
スクリーン関数は、ウィンドウサイズを知ったり、スクリーンピクセルとワールド位置間を変換したりする際に役立ちます。これは、マウスの照準、クリック検出、およびカメラ意識のUIに便利です。
| 関数 | 説明 |
|---|---|
getScreenWidth() |
ピクセル単位でのスクリーン/ウィンドウの幅を返します |
getScreenHeight() |
ピクセル単位でのスクリーン/ウィンドウの高さを返します |
screenToWorld(screenX, screenY) |
スクリーンピクセル座標をワールド座標に変換します。 [worldX, worldY] を返します |
worldToScreen(worldX, worldY) |
ワールド座標をスクリーンピクセル座標に変換します。 [screenX, screenY] を返します |
ウィンドウモード
エクスポートされたゲームのウィンドウモードを制御します。これらの関数は、エディタでプレイする場合には効果がなく (エディタがウィンドウ状態に対して高い権限を持っているため)、エクスポートされたゲームにのみ効果があります。
| 定数 | 値 | 説明 |
|---|---|---|
WINDOW_WINDOWED() |
0 | 通常のウィンドウモード |
WINDOW_MAXIMIZED() |
1 | 最大化されたウィンドウ (デフォルト) |
WINDOW_FULLSCREEN() |
2 | 枠なしフルスクリーン |
| 関数 | 説明 |
|---|---|
getWindowMode() |
現在のウィンドウモード定数を返します |
setWindowMode(mode) |
ウィンドウモードを設定します。エクスポートされたゲームでのみ機能します |
例:
func start() {
// ウィンドウモードを設定します (WINDOW_MAXIMIZEDはエクスポートされたゲームのデフォルトです)
setWindowMode(WINDOW_MAXIMIZED())
}
注: エクスポートされたゲームでsetWindowMode()が呼び出されない場合、デフォルトは WINDOW_MAXIMIZED です。
UI関数
UIは仮想スクリーンスペース解像度を使用します。デフォルトのUIスペースは100 x 100です。
フォントサイズは、uiPushFontSize(size)を使用して後続のテキストウィジェットにプッシュでき、uiPopFontSize()で復元できます。フォントカラーは、uiPushFontColor(r, g, b[, a])でスタックでき、UIエレメントの塗りもuiPushElementColor(r, g, b[, a])でスタックできます。その他の即時モードUIと同様に、これらのオーバーライドは、現在のフレームのUIを構築する際に適用されます。プッシュされたサイズが 0 かそれ以下の場合、エンジンは自動サイズを使用します。
| 関数 | 説明 |
|---|---|
getUIResolutionX() |
現在の仮想UI幅を返します |
setUIResolutionX(width) |
後続のUI呼び出しに使用する仮想UI幅を設定します |
getUIResolutionY() |
現在の仮想UI高さを返します |
setUIResolutionY(height) |
後続のUI呼び出しに使用する仮想UI高さを設定します |
uiPushFontSize(size) |
後続のUIテキストのフォントサイズスケールをプッシュします。値 <= 0 は自動サイズを使用します |
uiPopFontSize() |
最も最近のUIフォントサイズのオーバーライドをポップします |
uiPushFontColor(r, g, b) または uiPushFontColor(r, g, b, a) |
後続のUIテキストのフォントカラーオーバーライドをプッシュします |
uiPopFontColor() |
最も最近のUIフォントカラーのオーバーライドをポップします |
uiPushElementColor(r, g, b) または uiPushElementColor(r, g, b, a) |
ボックス、ボタン、トグル、スライダー、画像ボタンのための塗りつぶしカラーオーバーライドをプッシュします |
uiPopElementColor() |
最も最近のUI要素カラーのオーバーライドをポップします |
uiLabel(text, x, y) |
仮想UI座標にスクリーンスペーステキストを描画します |
uiBox(x, y, w, h) |
シンプルなパネルボックスを描画します |
uiButton(text, x, y, w, h) |
ボタンを描画し、UI_*() 状態定数のいずれかを返します |
uiToggle(text, value, x, y, w, h) |
トグルを描画し、更新されたブール値を返します |
uiSlider(text, value, min, max, x, y, w, h) |
スライダーを描画し、更新された数値を返します |
uiSprite(sprite, x, y) |
スプライトの天然サイズを使用してUIスペースにスプライトを描画します |
uiSprite(sprite, x, y, w, h) |
明示的なサイズでUIスペースにスプライトを描画します |
uiImageButton(sprite, x, y, w, h) |
スプライトボタンを描画し、UI_*() 状態定数のいずれかを返します |
UI状態定数
UI関数は状態定数を返し、スクリプトがウィジェットがアイドル中、ホバー中、保持中、またはクリックされたかを判断できるようにします。通常、ボタンアクションのためにチェックする値は UI_CLICKED() です。
| 定数 | 値 | 説明 |
|---|---|---|
UI_IDLE() |
0 | ウィジェットはホバーされても押されてもいない |
UI_HOVERED() |
1 | マウスがウィジェットの上にホバーしている |
UI_HELD() |
2 | マウスボタンがウィジェットの上で押されている |
UI_CLICKED() |
3 | このフレームでウィジェットがクリックされた |
カメラ関数
カメラの位置はビューの中心を表します。ズームは画面のサイズに関係なく一貫した垂直ワールドビューを維持します。
| 関数 | 説明 |
|---|---|
getCameraX(scene) |
カメラのX位置(ビューの中心)を返します |
setCameraX(scene, x) |
カメラのX位置を設定します |
getCameraY(scene) |
カメラのY位置(ビューの中心)を返します |
setCameraY(scene, y) |
カメラのY位置を設定します |
getCameraZoom(scene) |
カメラのズームレベルを返します |
setCameraZoom(scene, zoom) |
カメラのズームを設定します。ズーム1.0は垂直に720ワールド単位を表示し、3.0は240単位を表示します。 |
ズームの挙動: ズームはウィンドウのサイズやアスペクト比に関係なく、一貫した垂直ワールドビューを維持します。ワイドな画面では水平方向により多く表示されますが、垂直方向では同じ量が表示されます。
入力関数
入力関数はゲームがキーボードおよびマウスの状態に反応できるようにします。Pressedはワンフレームのアクションに、Heldは連続的な動きに、Releasedはボタンが放されたときに発生するアクションに使用します。
| 関数 | 説明 |
|---|---|
isKeyPressed(key) |
キーが押されたフレームのみ真 |
isKeyHeld(key) |
キーが押され続けている間真 |
isKeyReleased(key) |
キーが放されたフレームのみ真 |
getMouseX() |
スクリーン座標でのマウスXを返します |
getMouseY() |
スクリーン座標でのマウスYを返します |
getMouseDeltaX() |
このフレームでのマウスXの動きを返します |
getMouseDeltaY() |
このフレームでのマウスYの動きを返します |
isMouseButtonPressed(button) |
マウスボタンが押されたフレームのみ真 |
isMouseButtonHeld(button) |
マウスボタンが押され続けている間真 |
isMouseButtonReleased(button) |
マウスボタンが放されたフレームのみ真 |
getFPS() |
現在のフレーム毎秒を返します |
マウスボタン定数
マウスボタン定数はマウス入力関数に渡されます。これは生の数値よりもコードを読みやすくします。
| 定数 | 説明 |
|---|---|
MOUSE_LEFT() |
左マウスボタン |
MOUSE_RIGHT() |
右マウスボタン |
MOUSE_MIDDLE() |
中央マウスボタン |
キー定数
キー定数はキーボード入力関数に渡されます。エンジンは文字、数字、ファンクションキー、矢印、小さなセットの一般的な特殊キーを公開しています。
文字: KEY_A() から KEY_Z()
数字: KEY_0() から KEY_9()
ファンクションキー: KEY_F1() から KEY_F12()
特殊キー:
| 定数 | キー |
|----------|-----|
| KEY_SPACE() | スペースバー |
| KEY_ENTER() | エンター/リターン |
| KEY_ESCAPE() | エスケープ |
| KEY_TAB() | タブ |
| KEY_BACKSPACE() | バックスペース |
| KEY_DELETE() | 削除 |
| KEY_SHIFT() | シフト |
| KEY_CTRL() | コントロール |
| KEY_ALT() | アルト |
| KEY_LEFT() | 左矢印 |
| KEY_RIGHT() | 右矢印 |
| KEY_UP() | 上矢印 |
| KEY_DOWN() | 下矢印 |
| KEY_HOME() | ホーム |
| KEY_END() | エンド |
数学関数
数学ヘルパーは移動、アニメーション、乱数、値の制限でよく使われる計算をカバーします。スクリプトを短く、読みやすくします。
| 関数 | 説明 |
|---|---|
abs(n) |
絶対値 |
min(a, b) |
2つの数字のうち小さい方を返します |
max(a, b) |
2つの数字のうち大きい方を返します |
clamp(value, min, max) |
値を最小と最大の間に制限します |
lerp(a, b, t) |
a から b への線形補間を行います |
floor(n) |
最も近い整数に切り下げます |
ceil(n) |
最も近い整数に切り上げます |
round(n) |
最も近い整数に四捨五入します |
sign(n) |
入力の符号に応じて -1、0、または 1 を返します |
sqrt(n) |
平方根 |
pow(base, exponent) |
ベースを指数に上げます |
sin(radians) |
ラジアンでの角度のサイン |
cos(radians) |
ラジアンでの角度のコサイン |
tan(radians) |
ラジアンでの角度のタンジェント |
random() |
0.0 と 1.0 の間で乱数を返します |
randomRange(min, max) |
最小と最大の間で乱数を返します |
randomInt(min, max) |
最小と最大の間で乱数の整数を返します(包括的) |
PI() |
π(3.14159...)を返します |
TAU() |
τ(2 * π = 6.28318...)を返します |
TWOPI() |
2 * π を返します(TAUと同じ) |
E() |
オイラー数 e(2.71828...)を返します |
deg2rad(degrees) |
度をラジアンに変換します |
rad2deg(radians) |
ラジアンを度に変換します |
ユーティリティ関数
ユーティリティ関数は特定のアセットタイプに属さない一般的なヘルパーです。print() は学習中に特に便利で、スクリプトが何をしているのかを表示します。
| 関数 | 説明 |
|---|---|
print(value) |
デバッグ出力に印刷します(ゲーム内に表示) |
quitGame() |
ゲームを終了します。エディターではプレイモードを停止します。エクスポートされたゲームでは、アプリケーションを閉じます |
文字列関数
文字列関数はテキスト値で機能します。今のところ、このセクションは意図的に小さいです。
| 関数 | 説明 |
|---|---|
strlen(string) |
文字列の長さ(文字数)を返します |
ストレージ関数
ゲームデータをファイルに保存および読み込みます。数字、文字列、ブール値、リスト(ネストされたリストを含む)をサポートします。スプライト、シーン、オブジェクト、またはオーディオ値はサポートしていません。
| 関数 | 説明 |
|---|---|
save(path, data) |
データをバイナリ形式でファイルに保存します。成功時に true を返します |
save(path, data, format) |
指定された形式でデータを保存します:"binary" または "text" |
save(path, data, format, key) |
提供されたキー文字列を使用してデータを暗号化し保存します |
load(path) |
ファイルからデータを読み込みます。失敗した場合はデータを返します。null |
load(path, key) |
提供されたキー文字列を使用して暗号化されたデータを読み込みます |
fileExists(path) |
指定されたパスにファイルが存在する場合は true を返します |
deleteFile(path) |
指定されたパスにあるファイルを削除します。成功時に true を返します |
getAppDataPath() |
AppData/Tiniest2Dフォルダーのパスを返します(必要に応じて作成) |
getDocumentsPath() |
ユーザーのドキュメントフォルダのパスを返します |
getGamePath() |
ゲーム実行可能ファイルがあるディレクトリを返します |
例: プレイヤー進捗の保存と読み込み
// プレイヤーデータを保存
var playerData = [100, "Player1", true, [1, 2, 3]]
var savePath = getAppDataPath() + "/MyGame/save.dat"
if (save(savePath, playerData)) {
print("ゲームが保存されました!")
}
// プレイヤーデータを読み込み
if (fileExists(savePath)) {
var loaded = load(savePath)
if (loaded != null) {
var health = loaded[0]
var name = loaded[1]
var hasKey = loaded[2]
var inventory = loaded[3]
}
}
// 暗号化された保存(カジュアルな検査からデータを隠すため)
var secretData = ["secret", 12345]
save(getAppDataPath() + "/MyGame/config.dat", secretData, "binary", "mySecretKey")
var decrypted = load(getAppDataPath() + "/MyGame/config.dat", "mySecretKey")
// テキスト形式(人間が読める、デバッグに便利)
save(getAppDataPath() + "/MyGame/debug.txt", playerData, "text")
注意:
- バイナリ形式(デフォルト)はコンパクトで高速です
- テキスト形式は人間が読めるため、デバッグに便利です
- 間違った暗号化キーは
nullを返し(データはゴミになります) - 保存時にディレクトリが自動的に作成されます