【StoneStoryRPG/Stonescript】8-1.ネイティブ関数(環境音・色・描画・整数)
カスタム関数は独自に定義する関数でしたが、ネイティブ関数はStoneScriptにデフォルトで定義されている関数です。宣言を必要とせず、コマンドと同じような感覚で使用することができます。
環境音
ambient (環境音ID一括取得)
再生中の環境音(オーディオ設定の「雰囲気」に該当する音)のIDをコンマ区切りの文字列で返します。デフォルトでステージに流れている環境音も取得します。
>`0,0,再生中の環境音 = @ambient@
ambient.Add([環境音ID]) (環境音追加)
指定されたIDの環境音を流します。環境音は4つまで同時に鳴らせます。それ以上追加された場合は、古い順に削除されます。
?loc.begin
ambient.Add(ambient_rocky)
ambient.Stop() (環境音全停止)
?time = 3
ambient.Stop()
ambient.Add(ambient_mines)
色
color.FromRGB([r値],[g値],[b値]) (RGBをカラーコードに変換)
RGB(0~255の値が3つ)をカラーコードに変換した文字列を返します。
var c = color.FromRGB(255, 0, 128)
>`0,0,@c@, @c@
color.ToRGB([カラーコード]) (カラーコードをRGBに変換)
カラーコードをRGBに変換し、3つの数の配列として返します。
var c = color.Random()
var rgb = color.ToRGB(c)
var r = rgb[0]
var g = rgb[1]
var b = rgb[2]
>`0,0,@c@, @c@ \n @r@ \n @g@ \n @b@
color.Lerp([カラーコード],[カラーコード],[割合]) (色の線形補間)
割合0では1番目の色、割合1では2番目の色になるように、指定した割合でのカラーコードを返します。
var c1 = "#ff4400"
var c2 = "#8888ff"
var t = 0.5
var c
t = math.sin(time*0.1) / 2 + 0.5
c = color.Lerp(c1, c2, t)
>`0,1,@c@,@c@\n ██████
color.Random() (ランダムカラー)
ランダムな色コードを返します。常に実行する場合は、色がわちゃわちゃ変わります。
var c
c = color.Random()
>`0,0,@c@,@c@\n ██████
描画
draw.Bg([x座標], [y座標], [カラーコード]) (指定マスの背景色変更)
指定された座標の文字の背景色を変更します。
draw.Bg(5, 4, #red)
draw.Bg([x座標], [y座標], [カラーコード], [幅], [高さ]) (指定範囲の背景色変更)
指定された座標から指定された幅と高さの中にある全ての文字の背景色を変更します。
draw.Bg(5, 4, #cyan, 10, 6)
draw.Box([x座標], [y座標], [幅], [高さ], [カラーコード], [スタイル番号]) (指定範囲に四角描画)
色付き枠の黒い四角を描画します。奥から順に、ステージ→四角→文字の順で重ねて描画されます。スタイル番号は0~10番の11種類あります。
スタイル番号
0:枠なし(=真っ黒)
1:細枠
2:頂点が点
3:二重枠
4:下だけ二重
5:下と左だけ二重
6:下と左だけ二重
7:太枠
8:太枠 (※7と違いが判らなかった)
9:上下のみ
10:全部枠線(=全面着色)
//キーボードの左右入力で枠線のデザインを切り替える
var style = 1
?key = leftBegin
style--
?key = rightBegin
style++
draw.Box(10, 5, 30, 15, #333333, style)
備考:スタイル番号に0~10以外を設定した場合、絶対値を11で割った余りと同じスタイル番号とみなされます。例:15→4、-1→1
draw.Clear() (描画全消去)
ステージと四角の描画を消去します。表示させている文字は消えません。普通に呼び出すと文字以外真っ暗になります。
draw.GetSymbol([x座標], [y座標]) (指定マスの文字取得)
指定された座標の文字を返します。
//キーボード上下左右入力で取得する文字の座標を変える
var s
var x = 20
var y = 10
var drawX
?key=leftBegin
x--
?key=rightBegin
x++
?key=upBegin
y--
?key=downBegin
y++
s = draw.GetSymbol(x, y)
>`0,1,文字 = @s@
drawX = x - 1
>`@drawX@,@y@,[#]
draw.Player() (プレーヤー再描画)
draw.Clear()した後にこれを呼ぶと、プレーヤーだけを表示することができます。
整数
int.Parse([文字列]) (文字列を整数値に変換)
文字列として表記された数字を、数値(整数)に変換して返します。数字ではない文字列を変換しようとするとエラーを吐きます。
補足:プログラミングの世界には、変数の「型」というものが存在します。例えば、int型(整数)、string型(文字列)、var型(自動)などがあります。StoneScriptにおいては、そこまで強く意識する必要はないと思います。
この記事が気に入ったらサポートをしてみませんか?