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

Complete API Reference

Editor内でもショート形式で利用可能: image.png

Asset Constructors

コンストラクタは、エディタで使用される主要なアセットタイプを作成します。変数に割り当てると、エディタはそれを認識し、Ctrl+Clickで一致するアセットエディタを開くことができます。

Function Description
Sprite(width, height) 指定された寸法のスプライトアセットを作成します
Scene() or Scene(name) シーンアセットを作成します
Audio() 小さなトラッカー形式のオーディオアセットを作成します
Object() or Object(name) ゲームオブジェクトを作成します

List Methods

[]または[value1, value2, ...]でリストを作成します。list[index]でエントリを読み取り、上書きし、for (var i = 0; i < list.length(); i = i + 1)で繰り返します。

Function Description
list.add(value) リストの末尾に値を追加します
list.length() リストの要素数を返します
list.remove(index) 指定されたインデックスの要素を削除します
list.clear() リストからすべての要素を削除します

Operators

演算子は、一般的な計算を行うための小さな記号です。剰余演算子は、タイマー、インデックス、アニメーションステップ、または繰り返しパターンをラップする際に特に便利です。

Operator Description
% 剰余。割り算の余りを返します

Object Properties

オブジェクトは、スクリプトが通常移動させたり変更したりするものです。これらの関数は、オブジェクトの位置、スプライト、衝突動作、レイヤー、ビジュアルティントを読み取ったり更新したりします。

Function Description
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) 衝突タイプを設定します

Sprite Functions

スプライト関数は、スプライトのピクセルデータとアニメーション速度を検査または変更できます。ほとんどのゲームはエディタでスプライトを描画しますが、これらの関数は手続き型効果、デバッグ、または簡単なランタイムの変更に便利です。

Function Description
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) スプライトのアニメーション速度をフレーム/秒で設定します

Animation Functions

アニメーション関数は、複数のフレームを持つスプライトを使用するオブジェクトに作用します。コードで現在のアニメーションフレームを検査したり強制したりしたいときに使用します。

Function Description
getFrame(obj) オブジェクトの現在のアニメーションフレームインデックスを返します
setFrame(obj, frameIndex) オブジェクトのアニメーションフレームを設定します(タイマーをリセットします)
getFrameCount(obj) オブジェクトのスプライトのフレーム数を返します

Transform Functions (Flip/Rotation)

変換関数は、オブジェクトのスプライトがどのように描画されるかを、スプライト自体を編集せずに変更します。複数の方向で1つのスプライトを再利用するのに適しています。

Function Description
getFlipX(obj) オブジェクトが水平方向にフリップされているかどうかを返します
setFlipX(obj, flip) 水平フリップを設定します。true = フリップ、false = 通常
getFlipY(obj) オブジェクトが垂直方向にフリップされているかどうかを返します
setFlipY(obj, flip) 垂直フリップを設定します。true = フリップ、false = 通常
getRotation(obj) オブジェクトの時計回りの回転角度を度単位で返します
setRotation(obj, degrees) オブジェクトの時計回りの回転角度を度単位で設定します
move(obj, x, y) オブジェクトをローカル回転軸で移動させます。正のXは右に、正のYは下に移動します
getCenterOffset(obj) 正規化された回転ピボットを[x, y]として返します
setCenterOffset(obj, x, y) 正規化された回転ピボットを設定します。値は0から1に制限されます
getCenterOffsetX(obj) 正規化されたピボットXを返します
setCenterOffsetX(obj, x) 正規化されたピボットXを設定します
getCenterOffsetY(obj) 正規化されたピボットYを返します
setCenterOffsetY(obj, y) 正規化されたピボットYを設定します
getCenter(obj) 回転ピボットのワールド位置を[x, y]として返します
setCenter(obj, x, y) オブジェクトを移動して、その回転ピボットがワールド位置(x, y)に来るようにします
getCenterX(obj) 回転ピボットのワールドX位置を返します
setCenterX(obj, x) オブジェクトを移動して、そのピボットがワールドXxになるようにします
getCenterY(obj) 回転ピボットのワールドY位置を返します
setCenterY(obj, y) オブジェクトを移動して、そのピボットがワールドYyになるようにします
getDirectionRight(obj) オブジェクトの回転した右方向を[x, y]として返します
getDirectionDown(obj) オブジェクトの回転した下方向を[x, y]として返します
getDirectionLeft(obj) オブジェクトの回転した左方向を[x, y]として返します
getDirectionUp(obj) オブジェクトの回転した上方向を[x, y]として返します

デフォルトの中心オフセットは[0.5, 0.5]で、スプライトの中央を回転します。[0, 0]はオブジェクトの左上の位置を中心に回転させ、[1, 1]location + (width, height)を回転の中心にします。

古いプロジェクトへの警告: Tiniest2D 1.8以降、getRotation()setRotation()は四分の一回転の値ではなく度数を使用します。回転したオブジェクトのコライダーは物理学やシーンクエリに影響を与えます。

Collision Types

衝突タイプは、オブジェクトが衝突チェックにどのように参加するかを決定します。オブジェクトの役割に応じてタイプを選択します: 壁は通常静的で、プレイヤーは通常動的で、ピックアップはしばしばトリガーとなります。

Constant Value Description
COLLISION_NONE() 0 衝突検出なし
COLLISION_STATIC() 1 衝突するが移動しない
COLLISION_DYNAMIC() 2 衝突し、押し出される
COLLISION_TRIGGER() 3 衝突を検出するがブロックしない

Scene Functions

シーン関数は、アクティブなシーン、シーン内のオブジェクト、背景色や重力などのシーン全体の設定を制御します。また、位置や名前によってオブジェクトを見つけるための検索ヘルパーも提供します。

Function Description
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) 指定された衝突タイプを持つすべてのオブジェクトを返します

Audio Playback

オーディオ再生関数は、スクリプトからオーディオアセットを開始および停止します。playAudio()はハンドルを返し、後でその特定の再生インスタンスを停止したり確認したりできます。

Function Description
playAudio(audio) オーディオアセットを開始し、再生ハンドルIDを返します
stopAudio(handle) playAudio()によって返された再生ハンドルを停止します
isAudioPlaying(handle) 再生ハンドルがまだアクティブな間はtrueを返します

Screen Functions

画面関数は、ウィンドウサイズを知る必要がある場合や、画面ピクセルからワールド位置に変換する必要がある場合に役立ちます。これは、マウスの狙い、クリック検出、カメラ対応のUIに便利です。

Function Description
getScreenWidth() 画面/ウィンドウの幅(ピクセル)を返します
getScreenHeight() 画面/ウィンドウの高さ(ピクセル)を返します
screenToWorld(screenX, screenY) 画面のピクセル座標を世界座標に変換します。 [worldX, worldY] を返します
worldToScreen(worldX, worldY) 世界座標を画面ピクセル座標に変換します。 [screenX, screenY] を返します

Window Mode

エクスポートされたゲームのウィンドウモードを制御します。これらの関数はエディタ内でプレイする際には効果がありません(エディタはウィンドウ状態に対してより高い権限があります)。

Constant Value Description
WINDOW_WINDOWED() 0 通常のウィンドウモード
WINDOW_MAXIMIZED() 1 最大化されたウィンドウ(デフォルト)
WINDOW_FULLSCREEN() 2 ボーダーレスフルスクリーン
Function Description
getWindowMode() 現在のウィンドウモード定数を返します
setWindowMode(mode) ウィンドウモードを設定します。エクスポートされたゲームでのみ動作します

Example:

func start() {
    // ウィンドウモードを設定します(WINDOW_MAXIMIZEDはエクスポートされたゲームのデフォルトです)
    setWindowMode(WINDOW_MAXIMIZED())
}

Note: エクスポートされたゲームで setWindowMode() が呼ばれない場合、デフォルトは WINDOW_MAXIMIZED です。

UI Functions

UIは仮想スクリーンスペース解像度を使用します。デフォルトのUI空間は 100 x 100 です。 フォントサイズは、uiPushFontSize(size) で次のテキストウィジェットのために拡張でき、uiPopFontSize() で元に戻します。フォントの色は、uiPushFontColor(r, g, b[, a]) でスタックでき、UI要素の塗りつぶしは uiPushElementColor(r, g, b[, a]) でスタックできます。即時モードUIの残りと同様に、これらのオーバーライドは現在のフレームのUIを構築する際に適用されます。押されたサイズが 0 またはそれ以下の場合、エンジンは自動サイズを使用します。

Function Description
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_*() 状態定数の1つを返します
uiToggle(text, value, x, y, w, h) トグルを描画し、更新されたブール値を返します
uiSlider(text, value, min, max, x, y, w, h) スライダーを描画し、更新された数値を返します
uiSprite(sprite, x, y) UI空間でスプライトを描画し、UI単位の自然なサイズを使用します
uiSprite(sprite, x, y, w, h) 明示的なサイズでUI空間でスプライトを描画します
uiImageButton(sprite, x, y, w, h) スプライトボタンを描画し、UI_*() 状態定数の1つを返します

UI State Constants

UI関数は状態定数を返しますので、スクリプトはウィジェットがアイドル、ホバー、保持、またはクリックされているかどうかを知ることができます。通常、ボタンアクションのためにチェックする値は UI_CLICKED() です。

Constant Value Description
UI_IDLE() 0 ウィジェットがホバーでもプレスでもない
UI_HOVERED() 1 マウスがウィジェットの上にあります
UI_HELD() 2 マウスボタンがウィジェットの上で押されています
UI_CLICKED() 3 ウィジェットがこのフレームでクリックされました

Camera Functions

カメラ位置はビューの中心を表します。ズームは画面サイズに関係なく一貫した垂直ワールドビューを維持します。

Function Description
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単位を表示します。

Zoom behavior: ズームはウィンドウサイズやアスペクト比に関係なく一貫した垂直ワールドビューを維持します。広い画面ではより多くの水平方向が表示されますが、垂直方向は同じ量が表示されます。

Input Functions

入力関数はゲームがキーボードとマウスの状態に反応できるようにします。 Pressed は一フレームのアクション、Held は連続的な動き、Released はボタンが離されたときに発生するアクションに使用します。

Function Description
isKeyPressed(key) キーが押されたフレームにのみTrue
isKeyHeld(key) キーが押されている間True
isKeyReleased(key) キーが離されたフレームにのみTrue
getMouseX() 画面座標でのマウスXを返します
getMouseY() 画面座標でのマウスYを返します
getMouseDeltaX() このフレームのマウスXの動きを返します
getMouseDeltaY() このフレームのマウスYの動きを返します
isMouseButtonPressed(button) マウスボタンが押されたフレームにのみTrue
isMouseButtonHeld(button) マウスボタンが押されている間True
isMouseButtonReleased(button) マウスボタンが離されたフレームにのみTrue
getFPS() 現在のフレーム毎秒を返します

Mouse Button Constants

マウスボタン定数はマウス入力関数に渡されます。生の数字よりもコードを読みやすくします。

Constant Description
MOUSE_LEFT() 左マウスボタン
MOUSE_RIGHT() 右マウスボタン
MOUSE_MIDDLE() 中央マウスボタン

Key Constants

キー定数はキーボード入力関数に渡されます。エンジンは文字、数字、ファンクションキー、矢印、そして少数の一般的な特別キーを公開します。

Letters: KEY_A() から KEY_Z()

Numbers: KEY_0() から KEY_9()

Function keys: KEY_F1() から KEY_F12()

Special keys: | Constant | Key | |----------|-----| | 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() | エンド |

Math Functions

数学のヘルパーは、移動、アニメーション、ランダム性、および値の制限に使用される一般的な計算をカバーします。スクリプトを短く、読みやすく保ちます。

Function Description
abs(n) 絶対値
min(a, b) 2つの数のうち小さい方を返します
max(a, b) 2つの数のうち大きい方を返します
clamp(value, min, max) 値を最小値と最大値の間にクランプします
lerp(a, b, t) a から b までを t を使用して線形補間します
floor(n) 最も近い整数に切り下げます
ceil(n) 最も近い整数に切り上げます
round(n) 最も近い整数に四捨五入します
sign(n) 入力の符号に応じた -10、または 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) ラジアンを度に変換します

Utility Functions

ユーティリティ関数は、特定のアセットタイプに属さない一般的なヘルパーです。 print() は学習中に特に役立ちます。スクリプトが何をしているのかを示します。

Function Description
print(value) デバッグ出力に印刷します(ゲーム内に表示される)
quitGame() ゲームを終了します。エディタではプレイモードを停止します。エクスポートされたゲームではアプリケーションを閉じます

String Functions

文字列関数は、テキスト値で操作します。現時点では、このセクションは意図的に小さいです。

Function Description
strlen(string) 文字列の長さ(文字数)を返します

Storage Functions

ゲームデータをファイルに保存および読み込みします。数値、文字列、ブール値、リスト(入れ子のリストを含む)をサポートします。スプライト、シーン、オブジェクト、またはオーディオ値はサポートしていません。

Function Description
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 を返します(データはゴミになります)
  • 保存時にディレクトリは自動的に作成されます