概要
NeosVRのオブジェクトを外部で生成するコンパイラを開発した。
俺コードのコンパイラ仕様を見直しする。
俺コードのコンパイラ仕様変更
- elixir製オブジェクトサーバーを取りやめる。
- obj.jsを採用。
サンプルコード
var out = document.getElementById("out");
var src = document.getElementById("src");
var a = {};
function run() {
var str = src.value;
var lines = str.split("\n");
for (var i = 0; i < lines.length; i++)
{
if (lines[i].substring(0, 1) == "{")
{
lines[i] = lines[i].replace("{", "");
var code = lines[i].split("} =");
var va = code[0].split(",");
var vb = code[1].split(" ");
switch (va[0])
{
case "a":
switch (vb[1])
{
case "LogiX.T":
a.Source = LogiX.T.Components.Data[0].Data.ID;
a.SetupSource = LogiX.T.Components.Data[0].Data.ID;
a.TargetSlot = LogiX.T.Children[0].Children[0].Children[0].Children[0].Children[0].ID;
break;
case "LogiX.Display":
alert("d")
break;
default:
break;
}
break;
case "":
switch (vb[1])
{
case "LogiX.T":
switch (vb[2])
{
case "":
alert("t3")
break;
case "a":
alert("d3")
break;
default:
break;
}
break;
case "LogiX.Display":
switch (vb[2])
{
case "":
alert("t4")
break;
case "a":
LogiX.Display.Components.Data[1].Data.Source.Data = a.Source;
LogiX.Display.Children[0].Children[0].Children[0].Children[0].Children[0].Components.Data[0].Data.SetupSource.Data = a.SetupSource;
LogiX.Display.Children[0].Children[0].Children[0].Children[0].Children[0].Components.Data[0].Data.TargetSlot.Data = a.TargetSlot;
LogiX.Display.Children[0].Children[0].Children[0].Children[0].Children[0].Children[0].Active.Data = true
break;
default:
break;
}
break;
default:
break;
}
break;
default:
break;
}
}
else
{
var code = lines[i].split(" ");
switch (code[0])
{
case "use":
switch (code[1])
{
case "Ore":
Ore.Object.Name.Data = code[2];
break;
default:
alert(i);
break;
}
break;
case "new":
switch (code[1])
{
case "LogiX.T":
//make("LogiX.T");
break;
case "LogiX.Display":
//make("LogiX.Display");
break;
default:
break;
}
break;
case "add":
switch (code[1])
{
case "LogiX.T":
Ore.Object.Children.push(LogiX.T);
break;
case "LogiX.Display":
Ore.Object.Children.push(LogiX.Display);
break;
default:
break;
}
break;
default:
//alert(lines[i]);
break;
}
}
}
out.value = JSON.stringify(Ore);
}
成果物
実行確認の手順。
- 環境は、windows10
- NeosVRは、Streemじゃない方
- 上のページで生成されたjsonを、メモ帳で「test2.json」で保存する。
- NeosVRを起動して、セッションに入る。
- NeosVRでファイルブラウザを開いて、「test2.json」をダブルクリックする。
- NeosVRで以下のように表示されれば、成功です。
- できれば、実行確認の報告、お願いします。
以上。