开始编写脚本编辑器

开始编写脚本编辑器了,意味着就确定使用当前这个脚本系统了。唉~~~真是好痛苦啊,从准备到决定做编辑器花了近2个月的时间。

本来是想就是用LUA的,但很多功能都是有时间性质的。比如脚本:
让角色A移动到(X,Y)
A说话“你好,世界”。

MoveChar(A,X,Y)
Say(A,"你好,世界")
本意是当角色移动到(X,Y)之后再说话,但实际直接用lua来实现的话就会很麻烦,因为MoveChar调用之后直接调用的Say,就等不到角色到达目的地就开口说话了。。
类似这样的问题还有需要等待X秒后在执行某个动作,当A说完之后B再说话等等。
可能是我经验不足能力不行啊,这种游戏中应该是很常见的逻辑到了我这却难倒我了。所以查看了不少脚本相关的资料。最后经过这一个多月的不断地编写各种辛苦但最后发现不能用的代码之后,还是回到了最初看到的脚本实现,是《DX做RPG》那本书中使用的脚本,发现只要稍改一下这套脚本的逻辑就能满足以上的还有其他的各种需求了。
改的地方,就是规定了部分脚本的执行动作完成后通知脚本系统,脚本系统接收到通知后才能执行小一条。。。哈哈,多简单的逻辑啊,多简单啊。。。多简单。。。
原本的教程里是将配置的脚本内容直接写到二进制文件里面了,我又修改为用lua配置,这样调试起来比较方便。
好了,今天开始计划编辑器的编写。打算参考《魔兽争霸三》的地图编辑器中的脚本编辑器。
EX}`5ONYMK4N%)CZEB2SMBG
直接用鼠标点来点去的应该是最方便的。
今天下午主要试着实验一下其中的链接。也即图中蓝色的部分。当点击后会打开相关的界面,而这个的实现我是直接从codeProject下载的(在这里),当然想直接就拿来用,但实际还是要做些修改的,首先就是对于中文的链接会出现乱码,主要是因为其中有直接对字符的操作。因为中文是2个字符的,所以要修改下。
同时为了实现点击不同的链接可以响应不同的处理,所以也对其中的数据结构也作了修改,添加了几个字段用来区分不同的链接。
整体上这个功能应该是可以实现了,接下来就是要好好规划下各种界面各种脚本的显示什么的了。

%5M7S`IY47U59Z7GSG]))Q4

发表评论

邮箱地址不会被公开。 必填项已用*标注

* Copy This Password *

* Type Or Paste Password Here *