TC官方合作论坛

标题: 关于软件改进的7点建议 [打印本页]

作者: simonw    时间: 2013-8-23 18:14
标题: 关于软件改进的7点建议
用了一周了, 说几个特别严重的,因为这些我一度想再用回按键精灵,但按键精灵的结构化太差代码长了没法整.

1. 数据类型匮乏,不支持对象, 函数等数据类型,很多复用的写法都没法实现.
2. 鼠标不支持上下滚轮的监控, 少了2个重要的映射方式, 严重影响脚本可用性.
3. 缺乏必要的数据结构, dictionary, list, 很影响编程的简单性.

再提几个优先级没那么高的:
1. 如果能支持面向对象就好多了, 现在的命名空间和摆设似的, 不如引入一个标准语言像lua, 不过可能影响tc的商业策略吧.
2. 键鼠如果能有非阻塞的监控方法就更好了, 像按键精灵的getlastkey, getlastclick, 能监听到双击就更完美了
3. 界面上增加个删除事件的方法吧
4. 增加英文代码示例, 不反对面向初级, 但全中文代码的看的太让人崩溃


作者: TC    时间: 2013-8-23 19:45
谢谢您的建议
我来一一回答下

1. 数据类型匮乏,不支持对象, 函数等数据类型,很多复用的写法都没法实现.           
2. 鼠标不支持上下滚轮的监控, 少了2个重要的映射方式, 严重影响脚本可用性.
3. 缺乏必要的数据结构, dictionary, list, 很影响编程的简单性.

1,TC里面支持常规类型都内部处理了,这里的对象是指COM对象还是?TC支持COM对象,TC的功能就是封装函数的,
2,这个没太理解,可以留个联系方式,了解细节
3,这些在数组空间里面有变向支持
作者: simonw    时间: 2013-8-23 22:09
回复 2楼TC的帖子

感谢,这么快就回答了,看好这个软件.
再详细描述下问题
1. 不是com对象,用tc,按键这类的软件而不是用常规语言写就是因为封装的简单,写起来快. 希望能支持基于对象的封装,面向对象不需要太急. 例如可以定义obj,struct一类的结构,当然说的不是com,如果这些简单的封装我都用com实现就丧失了tc的简单性. namespace本来可以凑合当这个用, 但无法当作变量赋值传递也就没意义了. 函数变量类型就是函数指针了, 能把函数当变量传进去.
2.这个主要是waitclick捕获不到上下滚轮的消息. 比如我想在游戏中鼠标上滚轮开始跑路,鼠标下滚轮的时候停止.鼠标上的按键方式利用的越多人用起来越方便一个手就能操作很多事情了, 少2个按键少了不少功能. 这块可以参照按键精灵
3.的确能做但很不方便,也很别扭.起码提供个无需操心大小的集合吧,hashtable也是很需要的.

新问题:
4.又发现个问题 数组不支持引用传递,不得不拷贝一次.
var aaa
function test()
    var bbb = array[2]
    bbb[0] = 210
    bbb[1] = 300
    aaa = bbb
endfunction

5.能否增加些屏幕提示功能, 这样用户在游戏中按下什么操作也能及时看到状态. 例如气泡或屏幕文字渐隐, 论坛里有几个这样的插件,但问题太多.这里也应该参考按键精灵.

最后强烈建议,如果不能引入lua,那就多参考下lua,极致精简却完整.在构造上无束缚感,但用tc语法感觉就是碍手碍脚的,希望能尽快改进越做越好.




作者: jianqiumy    时间: 2013-8-23 23:16
回复 3楼simonw的帖子

路过看了一下~~话多了说几句
谁说TC封装函数要用com实现?
鼠标上滚轮开始跑路,鼠标下滚轮的时候停止,这也没问题能实现啊

var aaa
function test()
    var bbb = array[2]
    bbb[0] = 210
    bbb[1] = 300
    aaa = bbb
endfunction
你bbb不是数组吗? aaa = bbb(这是数组格式吗?)
aaa = bbb[0]&bbb[1]或者aaa = bbb[0]&","&bbb[1]
你看看行不行?
虽然也有些地方要改进,个人觉得TC不是按键能比的,再起码你要的功能都可以实现的
按键能的TC都能,不能的TC也能,偶很喜欢TC,可能你不了解吧,
说完了!闪人~~~~~~~~~~~~

作者: simonw    时间: 2013-8-23 23:36
回复 4楼jianqiumy的帖子

这个...你貌似没仔细看
我没问封装函数用com. 数组这个我要的不是字符串拼接啊.
不过鼠标滚轮跑路这个怎么实现啊,给个思路吧
作者: 大脚    时间: 2013-8-23 23:47
4.又发现个问题 数组不支持引用传递,不得不拷贝一次.
var aaa
function test()
    var bbb = array[2]
    bbb[0] = 210
    bbb[1] = 300
    aaa = bbb
endfunction

这个没看懂
作者: simonw    时间: 2013-8-23 23:52
回复 6楼大脚的帖子

是我没说清楚
经过 aaa = bbb 赋值后
期望 aaa持有bbb这个数组的引用, 也就是aaa[0] == 210, aaa[1]==300
实际情况aaa里面是空的
作者: jimye0526    时间: 2013-8-26 21:56
回复 3楼simonw的帖子

我只想说 tc支持数组引用传递
作者: 贱哥    时间: 2013-8-27 00:42
TC是支持数组引用的
例子
空间 例子
功能 哈哈()
a=数组[2]
例子.数组引用(a)
功能结束
功能 数组引用(&数组)
辅助.消息框(数组[0])
功能结束
空间结束




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1