ホーム
ダウンロード
ドキュメント
一覧
チュートリアル
コマンドリファレンス
タイトル画面の作り方
フォントの変更方法
コンフィグ一覧
WMSの使い方
よくある質問
バグ報告の一覧
機能要望の一覧
Wikiトップ
検索
利用作品紹介
English
Light
Dark
Auto
Light
Dark
Auto
WMSの使い方 をテンプレートにして作成 - Suika2 Wiki
Wikiトップ
編集
新規作成
複製
名称変更
アップロード
添付ファイル一覧
バックアップ
開始行:
* WMSの使い方 [#ree096e2]
Suika2のWMSのマニュアルです。
** WMSとは [#vb6bdfee]
Suika2を拡張するための独自言語です。 プログラマでなくても...
** 基本の使い方 [#x0edba37]
例えば文字の色は conf/config.txt の中で次のように指定され...
font.color.r=255
font.color.g=255
font.color.b=255
WMSを使うと、これをゲーム中に変更することができます。
次のスクリプトを wms/change-color.txt として保存してくだ...
func main() {
s2_set_config("font.color.r", "128");
s2_set_config("font.color.g", "128");
s2_set_config("font.color.b", "128");
}
そして、init.txt の中で次のように呼び出してみてください。
今から文字の色が変わります。
@wms change-color.txt
文字の色が変わりました。
使い方の基本はこれだけです。
今後はエフェクトなどのプラグイン制作も可能にしていきます...
** 文法 [#k8eee33d]
汎用的なプログラミングが行えます。ここでは文法について説...
*** プログラムは main() 関数から始まる [#ve447c00]
func main() {
// これはコメントです
print("Hello, world!");
}
*** 関数は他の関数を呼び出しできる [#t63a9cec]
func main() {
foo(0, 1, 2);
}
func foo(a, b, c) {
return a + b + c;
}
*** 文字列変数による間接呼び出しが可能 [#udea14de]
func main() {
myfunc = "foo";
myfunc(0, 1, 2);
}
func foo(a, b, c) {
return a + b + c;
}
func myfunc(a, b, c) {
// この関数は呼び出されません。foo()が呼び出されます。
}
*** 型と変数 [#c4b3e092]
プログラムは整数、浮動小数点数、文字列、配列の変数と値を...
func main() {
// 整数
a = 1;
if(isint(a)) {
print("a is int");
}
// 浮動小数点数
b = 1.0;
if(isfloat(b)) {
print("b is float");
}
// 文字列
c = "string";
if(isstr(c)) {
print("c is string");
}
// 配列 (整数インデックス)
d[0] = 0;
if(isarray(d)) {
print("d is array");
}
// 配列 (文字列インデックス)
e["abc"] = 0;
if(isarray(e)) {
print("e is array");
}
// 配列の配列
f["key"] = e;
}
*** 計算 [#a23c4133]
整数と浮動小数点数は加算、減算、乗算、除算が可能です。
整数は下記のようになります。
a = 1;
b = 2;
c = a + b;
// a += b; の形式はサポートされていません。
また、浮動小数点は下記のようになります。
a = 1.0;
b = 2.0;
c = a + b;
整数と浮動小数点数を組み合わせると、結果は浮動小数点数に...
a = 1;
b = 2.0;
c = a + b; // cは浮動小数点数
整数は除算の余り(剰余)を求めることができます。
a = 3;
b = a % 2; // 結果は3÷2の余りである1
文字列は+で連結可能です。
a = "aaa";
b = "bbb";
c = a + b;
文字列+整数は文字列ですが、整数+文字列は整数です。
*** ループ [#a4e9c3cb]
指定した回数の繰り返し:
func main() {
for(i in 0..9) {
print(i);
}
}
*** 配列の値についての繰り返し: [#p32524ac]
func main() {
a[0] = 0;
a[1] = 1;
a[2] = 2;
for(v in a) {
print(v);
}
}
*** 配列のキー/値ペアについての繰り返し: [#v869a19f]
func main() {
a["key1"] = 0;
a["key2"] = 1;
a["key3"] = 2;
for(k, v in a) {
print(k + "=" + v);
}
}
*** 単純な while ループ: [#v2184be0]
func main() {
a = 10;
while (a > 0) {
print(a);
a = a - 1;
}
}
*** break と continue: [#bb6d1913]
func main() {
for(i in 0..9) {
if(i == 2) {
continue;
}
if(i == 7) {
break;
}
}
}
*** 分岐 [#y973e414]
プログラムは if - else if - else で分岐できます。
func main() {
a = foo();
if(a > 10) {
print("a > 10");
} else if(a > 5) {
print("a > 5");
} else {
print("else");
}
}
func foo() {
return 6;
}
*** 配列 [#w10a441d]
配列の要素はキー(インデックス)を持ち、キーには整数、浮動...
1つの配列の中で、整数、浮動小数点数、文字列のキーを混在...
配列を作成するには、値を [key] の文法で代入します。
func main() {
a[0] = 0;
print(a);
}
配列の要素を削除するには、remove() を使います。
func main() {
a[0] = 0;
remove(a, 0);
print(a);
}
配列の要素数を取得するには、size() を使います。
func main() {
a[0] = 0;
print(size(a));
}
*** 型変換 [#c195c3f4]
整数から文字列:
s = "" + 123;
浮動小数点数から文字列:
s = "" + 1.23;
整数から浮動小数点数:
f = 0.0 + 123;
文字列から整数:
i = 0 + "123";
文字列から浮動小数点数:
f = 0.0 + "1.23";
文法については以上です。
** Suika2 エンジンの呼び出し [#q13d0114]
Suika2 エンジンの本体は、WMSからエンジンを操作するための...
*** フラグ用変数の値を取得する [#q769fca2]
s2_get_variable() はフラグ用変数のインデックスを受け取り...
value = s2_get_variable(100);
*** フラグ用変数の値を設定する [#u22f6395]
s2_set_variable() はフラグ用変数のインデックスと値を受け...
s2_set_variable(100, 1);
*** ランダムな数(乱数)を取得する [#q7307a57]
s2_random() はランダムな整数を返します。戻り値の範囲は 0 ...
value = s2_random();
*** コンフィグを書き換える [#n83b5a5a]
s2_set_config() はコンフィグ名の文字列と、コンフィグ値の...
// これらは即座に反映されます
s2_set_config("msgbox.x", "0");
s2_set_config("msgbox.speed", "20.0");
// この変更はファイルの再読み込みが必要なので、ただちに...
s2_set_config("msgbox.bg.file", "msgbox-bg.png");
*** メッセージボックスと名前ボックスのアップデート [#l579...
s2_reflect_msgbox_and_namebox_config() は、 メッセージボ...
s2_reflect_msgbox_and_namebox_config();
*** フォントのアップデート [#s197af5b]
かつてはs2_reflect_font_config()がありましたが、現在では...
終了行:
* WMSの使い方 [#ree096e2]
Suika2のWMSのマニュアルです。
** WMSとは [#vb6bdfee]
Suika2を拡張するための独自言語です。 プログラマでなくても...
** 基本の使い方 [#x0edba37]
例えば文字の色は conf/config.txt の中で次のように指定され...
font.color.r=255
font.color.g=255
font.color.b=255
WMSを使うと、これをゲーム中に変更することができます。
次のスクリプトを wms/change-color.txt として保存してくだ...
func main() {
s2_set_config("font.color.r", "128");
s2_set_config("font.color.g", "128");
s2_set_config("font.color.b", "128");
}
そして、init.txt の中で次のように呼び出してみてください。
今から文字の色が変わります。
@wms change-color.txt
文字の色が変わりました。
使い方の基本はこれだけです。
今後はエフェクトなどのプラグイン制作も可能にしていきます...
** 文法 [#k8eee33d]
汎用的なプログラミングが行えます。ここでは文法について説...
*** プログラムは main() 関数から始まる [#ve447c00]
func main() {
// これはコメントです
print("Hello, world!");
}
*** 関数は他の関数を呼び出しできる [#t63a9cec]
func main() {
foo(0, 1, 2);
}
func foo(a, b, c) {
return a + b + c;
}
*** 文字列変数による間接呼び出しが可能 [#udea14de]
func main() {
myfunc = "foo";
myfunc(0, 1, 2);
}
func foo(a, b, c) {
return a + b + c;
}
func myfunc(a, b, c) {
// この関数は呼び出されません。foo()が呼び出されます。
}
*** 型と変数 [#c4b3e092]
プログラムは整数、浮動小数点数、文字列、配列の変数と値を...
func main() {
// 整数
a = 1;
if(isint(a)) {
print("a is int");
}
// 浮動小数点数
b = 1.0;
if(isfloat(b)) {
print("b is float");
}
// 文字列
c = "string";
if(isstr(c)) {
print("c is string");
}
// 配列 (整数インデックス)
d[0] = 0;
if(isarray(d)) {
print("d is array");
}
// 配列 (文字列インデックス)
e["abc"] = 0;
if(isarray(e)) {
print("e is array");
}
// 配列の配列
f["key"] = e;
}
*** 計算 [#a23c4133]
整数と浮動小数点数は加算、減算、乗算、除算が可能です。
整数は下記のようになります。
a = 1;
b = 2;
c = a + b;
// a += b; の形式はサポートされていません。
また、浮動小数点は下記のようになります。
a = 1.0;
b = 2.0;
c = a + b;
整数と浮動小数点数を組み合わせると、結果は浮動小数点数に...
a = 1;
b = 2.0;
c = a + b; // cは浮動小数点数
整数は除算の余り(剰余)を求めることができます。
a = 3;
b = a % 2; // 結果は3÷2の余りである1
文字列は+で連結可能です。
a = "aaa";
b = "bbb";
c = a + b;
文字列+整数は文字列ですが、整数+文字列は整数です。
*** ループ [#a4e9c3cb]
指定した回数の繰り返し:
func main() {
for(i in 0..9) {
print(i);
}
}
*** 配列の値についての繰り返し: [#p32524ac]
func main() {
a[0] = 0;
a[1] = 1;
a[2] = 2;
for(v in a) {
print(v);
}
}
*** 配列のキー/値ペアについての繰り返し: [#v869a19f]
func main() {
a["key1"] = 0;
a["key2"] = 1;
a["key3"] = 2;
for(k, v in a) {
print(k + "=" + v);
}
}
*** 単純な while ループ: [#v2184be0]
func main() {
a = 10;
while (a > 0) {
print(a);
a = a - 1;
}
}
*** break と continue: [#bb6d1913]
func main() {
for(i in 0..9) {
if(i == 2) {
continue;
}
if(i == 7) {
break;
}
}
}
*** 分岐 [#y973e414]
プログラムは if - else if - else で分岐できます。
func main() {
a = foo();
if(a > 10) {
print("a > 10");
} else if(a > 5) {
print("a > 5");
} else {
print("else");
}
}
func foo() {
return 6;
}
*** 配列 [#w10a441d]
配列の要素はキー(インデックス)を持ち、キーには整数、浮動...
1つの配列の中で、整数、浮動小数点数、文字列のキーを混在...
配列を作成するには、値を [key] の文法で代入します。
func main() {
a[0] = 0;
print(a);
}
配列の要素を削除するには、remove() を使います。
func main() {
a[0] = 0;
remove(a, 0);
print(a);
}
配列の要素数を取得するには、size() を使います。
func main() {
a[0] = 0;
print(size(a));
}
*** 型変換 [#c195c3f4]
整数から文字列:
s = "" + 123;
浮動小数点数から文字列:
s = "" + 1.23;
整数から浮動小数点数:
f = 0.0 + 123;
文字列から整数:
i = 0 + "123";
文字列から浮動小数点数:
f = 0.0 + "1.23";
文法については以上です。
** Suika2 エンジンの呼び出し [#q13d0114]
Suika2 エンジンの本体は、WMSからエンジンを操作するための...
*** フラグ用変数の値を取得する [#q769fca2]
s2_get_variable() はフラグ用変数のインデックスを受け取り...
value = s2_get_variable(100);
*** フラグ用変数の値を設定する [#u22f6395]
s2_set_variable() はフラグ用変数のインデックスと値を受け...
s2_set_variable(100, 1);
*** ランダムな数(乱数)を取得する [#q7307a57]
s2_random() はランダムな整数を返します。戻り値の範囲は 0 ...
value = s2_random();
*** コンフィグを書き換える [#n83b5a5a]
s2_set_config() はコンフィグ名の文字列と、コンフィグ値の...
// これらは即座に反映されます
s2_set_config("msgbox.x", "0");
s2_set_config("msgbox.speed", "20.0");
// この変更はファイルの再読み込みが必要なので、ただちに...
s2_set_config("msgbox.bg.file", "msgbox-bg.png");
*** メッセージボックスと名前ボックスのアップデート [#l579...
s2_reflect_msgbox_and_namebox_config() は、 メッセージボ...
s2_reflect_msgbox_and_namebox_config();
*** フォントのアップデート [#s197af5b]
かつてはs2_reflect_font_config()がありましたが、現在では...
ページ名: