我正在使用OGRE在C ++中制作3D游戏,我想实现脚本。所以我有一个子项目引擎直接"谈话"使用OGRE和另一个子项目v8脚本,它提供了一个V8Interface类,它目前有一个函数init。我的main.cpp是两者之间的黄油,并调用Interface的init并运行引擎。所以Interface init包含一个简单的hello世界,现在我想实现scriopting。这是我想在js中获得的一个例子:
Engine.on("update", function(event) {
// called on every ogre frameQueued
});
var ent = Engine.getEntityById("0x2A");
ent.setPosition(20, 20, 20);
我不想问如何使用v8编写这样的界面,我想知道如何使暴露函数的c ++实现与引擎通信我' d。引擎不关心v8脚本(因为我也可能提供lua和mono),V8Interface可能直接使用引擎但是如果main.cpp绑定所有东西最好。
我知道我可以将函数传递给函数,但由于可能存在很多函数,所以它会变得混乱。