本帖最后由 seemk 于 2015-12-31 15:10 编辑
首先上图:
之所以敢说界面精美,是因为之前在论坛下载过几个TC象棋程序的源码,发现都是用图片框做的,但是TC的图片框现在有个问题:无法真正意义的显示透明图片.也就是棋子无法透明导致遮挡棋盘影响美观,比如这位同学的作品:
虽然棋子使用了和棋盘相同的颜色,但是遇到棋盘斜线时,明显遮挡住了棋盘线条.
鄙人使用的方法是直接调用api函数贴图,并且使用了双缓冲算法,有效的防止了界面闪屏问题(具体实现,可看源码)
之所以敢说棋力强悍,是因为这个软件的思考部分不是用TC写的,而是鄙人前段时间使用C语言写的一个dll文件,然后TC调用这个dll文件进行思考走棋(如果思考部分也用TC来写执行效率应该会很低,毕竟是脚本语言)
虽然棋力不如主流软件(如旋风,名手)那样强悍,但是对于一般人来说还是很难赢它的.
另外在开发过程中遇到来几个问题和建议,向各位高手和TC官方请教:
1.我是使用消息过程里面拦截WM_PAINT消息来重绘棋盘的,如果窗口拖到界面外再拖回来的时候会触发重绘事件,但是这个重绘的过程显得很慢,明显看到刷新的过程,还想请教各位这是TC执行效率太慢的原因,还是我的代码有问题?
2.在win8系统下,程序关闭的时候会报错,不知什么原因,可能和我调用dll文件有关系,还请各位帮忙调试下原因并告知鄙人(为了解决这个问题,目前我是调用ExitProcess强制退出的)
3.建议TC尽快支持透明png图片显示(现在的图片框显示透明pgn只能透出窗口的颜色,透不出其它元素的颜色)
4.我在调用系统api的时候一般使用p开头的类型去传参(也就是地址传参),但是有一个问题:p开头的类型无法传递NULL,只能用int传0来代替,这样的写法还是比较麻烦的,是不是可以建议TC的p开头类型支持传递NULL参数?
5.建议TC增加位运算操作符,很多时候没有位运算非常不方便
6.TC调试功能目前很不方便,只有"步入"没有"步过",有时候想单步跳过一个函数似乎没有办法
下载链接:http://pan.baidu.com/s/1hrf7O92 密码:p2zj
|