User Tools

Site Tools


picopicoscript_のapi

PicoPicoScript の API

すべての API 関数は 1 つのパラメータを取ります。 そのパラメータは辞書でなければならず、引数はキーと値のペアとして格納されます。

骨組み

func setup() {
    return {
        width:  1920,
        height: 1080,
        title:  "My Game"
    };
}
 
func start() {
    playerTex = Engine.loadTexture({
                    file: "player.png"
                });
}
 
func frame() {
    Engine.draw({
        texture: playerTex,
        x:       Engine.mousePosX,
        y:       Engine.mousePosY
    });
}

時間

絶対的な時間

変数 説明
Engine.millisec 起動からの時間(ミリ秒)
func frame() {
    var dt = (Engine.millisec - lastTime) * 0.001;
 
    update(dt);
    render();
}

Engine.getDate()

日付を表す辞書を返します。

func frame() {
    var date = Engine.getDate({});
 
    var year  = date.year;
    var month = date.month;
    var day   = date.day;
    var hour  = date.hour;
    var min   = date.minute;
    var sec   = date.second;
}

入力

マウス状態

これらは変数であり、関数ではありません。

変数 説明
Engine.mousePosX マウスX座標
Engine.mousePosY マウスY座標
Engine.isMouseLeftPressed 左マウスボタン
Engine.isMouseRightPressed 右マウスボタン
func update() {
    if (Engine.isMouseLeftPressed) {
        player.x = player.x + 100;
    }
}

レンダリング

Engine.createColorTexture()

この API は指定された色のテクスチャを作成して返します。

引数名 説明
width テクスチャの幅
height テクスチャの高さ
r 色の R 値 (0-255)
g 色の G 値 (0-255)
b 色の B 値 (0-255)
a アルファ値 (0-255)
func createBlockTexture() {
    blockTex = Engine.createColorTexture({
                   width:  16,
                   height: 16,
                   r:      255,
                   g:      255,
                   b:      255,
                   a:      255
               });
}

Engine.loadTexture()

この API はアセットからテクスチャをロードし、テクスチャを返します。

引数名 説明
file ロードするファイルの名前
func loadPlayerTexture() {
   playerTex = Engine.loadTexture({
                   file: "player.png"
               });
 
   var width = playerTex.width;
   var height = playerTex.height;
}

Engine.destroyTexture()

この API はテクスチャを破棄します。

引数名 説明
texture テクスチャ
func destroyPlayerTexture() {
    Engine.loadTexture({
        texture: playerTex
    });
}

Engine.renderTexture()

この API はテクスチャをスクリーンに描画します。

引数名 説明
dstLeft スクリーン X 座標
dstTop スクリーン Y 座標
dstWidth スクリーンでの幅
dstHeight スクリーンでの高さ
texture テクスチャ
srcLeft テクスチャの左上 X 座標
srcTop テクスチャの左上 Y 座標
srcWidth テクスチャ矩形の幅
srcHeight テキスチャ矩形の高さ
alpha アルファ値 (0-255)
func renderPlayer() {
    Engine.renderTexture({
        dstLeft:   playerPos.x,
        dstTop:    playerPos.y,
        dstWidth:  playerTex.width,
	dstHeight: playerTex.height,
        texture:   playerTex,
        srcLeft:   0,
        srcTop:    0,
        srcWidth:  playerTex.width,
        srcHeight: playerTex.height,
        alpha:     255
    });
}

Engine.draw()

この API はテキスチャをスクリーンに描画します。 Engine.renderTexture() のシンプル版です。

引数名 説明
texture テクスチャ
x スクリーン X 座標
y スクリーン Y 座標
func renderPlayer() {
    Engine.draw({
        texture: playerTex,
        x:       playerPos.x,
        y:       playerPos.y
    });
}

Engine.renderTexture3D()

この API はテクスチャを 3D 変形してスクリーンに描画します。

引数名 説明
x1 スクリーン座標 X1
y1 スクリーン座標 Y1
x2 スクリーン座標 X2
y2 スクリーン座標 Y2
x3 スクリーン座標 X3
y3 スクリーン座標 Y3
x4 スクリーン座標 X4
y4 スクリーン座標 Y4
texture テクスチャ
srcLeft テクスチャ左上 X 座標
srcTop テクスチャ左上 Y 座標
srcWidth テクスチャ矩形の幅
srcHeight テクスチャ矩形の高さ
alpha アルファ値 (0-255)
func renderPlayer() {
    Engine.renderTexture({
        dstLeft:   playerPos.x,
        dstTop:    playerPos.y,
        dstWidth:  playerTex.width,
	dstHeight: playerTex.height,
        texture:   playerTex,
        srcLeft:   0,
        srcTop:    0,
        srcWidth:  playerTex.width,
        srcHeight: playerTex.height,
        alpha:     255
    });
}

Engine.loadFont()

この API はフォントファイルをフォントスロットにロードします。

Argument Name Description
slot フォントスロット番号 (0-3)
file ロードするファイルの名前
func loadNotoSansFont() {
    Engine.loadFont({ slot: 0, file: "NotoSans.ttf" });
}

Engine.createTextTexture()

この API はテキストを描画したテクスチャを描画します。

^引数名 ^説明 ^

slot フォントスロット番号 (0-3)
text 描画するテキスト
size フォントサイズ
r 色の R 値 (0-255)
g 色の G 値 (0-255)
b 色の B 値 (0-255)
a アルファ値 (0-255)
func createScoreTexture() {
    scoreTex = Engine.createTextTexture({
                   slot: 0,
                   text: "Score: " + score,
                   size: 32,
                   r:    255,
                   g:    255,
                   b:    255,
                   a:    255
               });
}

サウンド

Engine.playSound()

この API はサウンドをサウンドトラック上で再生します。

引数名 説明
stream トラック番号 (0-3)
file 再生するファイルの名前
func playJumpSound() {
    Engine.playSound({ stream: 0, file: "jump.ogg" });
}

Engine.stopSound()

この API はサウンドトラック上のサウンド再生を停止します。

引数名 説明
stream Track index. (0-3)
func playJumpSound() {
    Engine.stopSound({ stream: 0 });
}

Engine.setSoundVolume()

この API はサウンドトラックのボリュームを設定します。

引数名 説明
stream トラック番号 (0-3, -1 ならマスター)
volume ボリューム値 (0-1.0)
func playJumpSound() {
    Engine.setSoundVolume({
        stream: 0,
        volume: 1.0
    });
}
picopicoscript_のapi.txt · Last modified: by picopicop