我已经为我的3D引擎开发了一个简单的GUI渲染器,它能够 解析这样的脚本文件:
GUIButton Nameofelement
.pos 10 20
.size 100 50
基本上它会创建GUIButton
类型的对象,将其命名为Nameofelement
,然后应用以.
所有GUI - 元素都是GUIElement类的子类。
我的问题是:任何人都应该能够创建自己的GUIElement子类并注册 他们用于scriptparsing。像这样:
class MyPersonalElement : public GUIElement
{
//all the stuff that belongs in here
}
现在这是我不确定是否可能的部分:
GUI->register("GUIPersonal", MyPersonalElement);
这样你就可以在GUI脚本中使用它了:
GUIPersonal personalObject
.property value
目前,脚本的解析方式如下:
GUIElement* currentElement = NULL;
if(input == "GUIButton")
{
currentElement = new GUIButton();
//...
}
解决此问题的最佳方法是什么?