太丑陋了!!!!C# + Lua第一天研究成果

今天开始研究WPF + Lua。

总的来说感觉被虐了……

主要是WPF的UI玩不转。

简单来说,WPF里调Lua这都很好实现。。

问题是!!!

我想在Lua的一条指令里实现 一个对UI控件的操作,然后阻塞在对鼠标的响应上。。(就是有鼠标响应之后再执行下一条语句)

这个花了我一晚的时间……而且还是非常非常丑陋的实现。。基本原理和我之前用HGE实现UI渲染机制同出一辙。。

这实在是丑陋得令我自己都忍不了了,放上丑陋的成果。明天继续研究……

丑陋的实现原理:

我实现了一个后台线程作为LuaAPI代理线程,Lua在调用C#功能时先走这个线程代理,由于此线程不能对UI控件进行操作(WPF中禁止跨线程访问UI元素。),我用了一个Dispatcher.BeginInvoke的基于UI线程控制的异步机制来把“代理API”转交到UI。

运行画面:

太丑陋了!!!!C# + Lua第一天研究成果

太丑陋了!!!!C# + Lua第一天研究成果

代码:

LUA代码:

BackImage("battle_back.jpg");
Music("test.mp3");
BindRolePic("测试人物1","2.png");
BindRolePic("测试人物2","MM.png");
Dialog("测试人物1","你说这方法丑不丑陋?");
Dialog("测试人物2","太他妈丑了");
Dialog("测试人物1","好吧,明天再弄。。");
Dialog("测试人物2","嗯。。。。");
Debug("finish script test");

你可能感兴趣的:(lua)