-
Notifications
You must be signed in to change notification settings - Fork 7
Tutorial
Silica edited this page Sep 2, 2012
·
3 revisions
#Tutorial
PSLを利用するには
##導入 gitの使い方が分かる人はそれでいいでしょう
https://github.com/Silica/PSL/zipball/master
ここgithub内からzipballを
https://skydrive.live.com/?cid=85BB9456A2A8D41D&id=85BB9456A2A8D41D!1939
またはWinバイナリをダウンロードします
その中から必要なのはPSL内のヘッダファイルのみです
- あなたのプロジェクトにコピーする
- コンパイラのincludeディレクトリにコピーする
- PSLを解凍した場所をinclude先に指定する
等の方法でソースからヘッダを参照出来る様にします
分からない場合はPSLディレクトリごとあなたのソースファイルがある場所へコピーして下さい
後はPSL/PSL.hをincludeするだけです
単純にスクリプトを実行する最もシンプルなサンプルコードは次の形になります
// sample.cpp
#include "PSL/PSL.h"
int main(void)
{
using namespace PSL;
PSLVM p;
if (p.loadScript("sample.psl"))
return 1;
p.run();
return 0;
}
// sample.psl
print("Hello, world!");
sample.pslというスクリプトを読み込んで実行します
##C++関数をスクリプトから呼び出す
// sample.cpp
#include "PSL/PSL.h"
int mul(int a, int b) {return a * b;}
int main(void)
{
using namespace PSL;
PSLVM p;
if (p.loadScript("sample.psl"))
return 1;
p.addFunction("mul", &mul);
p.run();
return 0;
}
// sample.psl
print(mul(4,5));
##スクリプト関数をC++コード中から呼び出す
// sample.cpp
#include "PSL/PSL.h"
int main(void)
{
using namespace PSL;
PSLVM p;
if (p.loadScript("sample.psl"))
return 1;
p.run();
variable mul = p.get("mul");
int i = mul(6, 7);
std::printf("%d\n", i);
return 0;
}
// sample.psl
mul(a,b) a*b;
##スクリプトに値を渡す
// sample.cpp
#include "PSL/PSL.h"
int main(void)
{
using namespace PSL;
PSLVM p;
if (p.loadScript("sample.psl"))
return 1;
p.add("value", 1024);
p.run();
return 0;
}
// sample.psl
print(value);
##スクリプトから値を受け取る
// sample.cpp
#include "PSL/PSL.h"
int main(void)
{
using namespace PSL;
PSLVM p;
if (p.loadScript("sample.psl"))
return 1;
p.run();
variable value = p.get("value");
int i = value;
std::printf("%d\n", i);
return 0;
}
// sample.psl
global value = 256;
##スクリプト実行時の引数と返り値
// sample.cpp
#include "PSL/PSL.h"
int main(void)
{
using namespace PSL;
PSLVM p;
if (p.loadScript("sample.psl"))
return 1;
variable v = p.run(10);
int i = v;
std::printf("\n%d\n", i);
return 0;
}
// sample.psl
print(arg);
return arg + 5;
STG01はPSLを利用したサンプルゲームでソースの一部も公開しています