返回

继续一点小的建议和问题的提出

继续提问,我现在就是遇到一个问题,我自己有一套UI, 代码借鉴的是halflife2中的代码,它里面的基础类是Panel,然后通过消息分发,现在我的UI 中,我已经在C++中创建了个CUIButton类,有一个按钮实例 button2, 希望点了后能够在.lua代码中实现 color=CreateObject("CColor"); //在C++中创建了一个颜色对象 button2:SetColor(setcolor); //反正希望能够传入一个color对象给这个实例 getcolor=button2:GetColor(); //也希望能够得到一个颜色对象 int r=getcolor.r; int g=getcolor.g; int b=getcolor.b;由于我很反感用零散的lua代码去编写内部的C++程序,使用了 LuaPlus库,其实在http://ly4cn.cnblogs.com/archive/2005/11/27/285439.aspx这个里面已经有很完整的代码可以使用,清晰的封装对象了,static int ConstructorHelper(LuaState* state, Object* pObj) { std::string metaname("MetaClass_"); metaname += typeid(Object).raw_name();

LuaObject obj = state->BoxPointer(pObj); obj.SetMetaTable(state->GetGlobal(metaname.c_str())); obj.PushStack(); return 1; }

当这个obj压入到堆栈的时候就已经把一个表返回给了lua脚本代码,关键是这样的代码也只能把简单的int,dword,const char *等数据压入,可是对于颜色这样的对象呢,

我不知道你是否使用luaplus,我觉得很好用,因为它的封装作的很好,我也不希望你能回答我的问题,只是希望觉得在脚本与c++的对象传递中,自己总找不到一个很好的传递方法,,最好能开个专题,如果你已经成功的作到来去自入的传递对象参数,希望兄弟能做个研究,或能讲一下你对这种情况的做法,比如你的实际应用,我发现国内对脚本叙述很多,可是把脚本的设计用到游戏中的时候,就很不实际了,毕竟我们在脚本中不只是传递小的整数,或是字符串,许多时候需要的实在的对象参数传递。沐枫做的不错,不过他把游戏的结合就作的不太好了。还有,谢谢你的快速回复。

名字: 自动排版 密码:

回复 | (1122) | tcguitar | 2006-06-05 03:17:42