TC官方合作论坛
标题:
用TC开发游戏时matchDll.dll溢错误,求解决方案。
[打印本页]
作者:
zgz715
时间:
2012-7-13 20:32
标题:
用TC开发游戏时matchDll.dll溢错误,求解决方案。
TC开发游戏中出现matchDll.dll溢出错误。
开发被迫暂停。求解决方案。
此问题以用线程决绝,有更好的方法可以联系我。
因为线程达不到要求,会影响刷新速度。
以下是出错部分
大概循环11次就会溢出。
如果去掉等待按键的话,可以正常运行。
但是去掉了也就不能控制了。
源码:[attach]4264[/attach]
代码简化原型:
//=============================================//
空间 方块矩阵
//定义默认空间
整型 控制下落
逻辑型 定时下滑
逻辑型[][] 逻辑数组
整型 r
整型 键码
整型 i
整型 j
整型 x0
整型 y0
整型 xx0
整型 yy0
整型 随机
逻辑型 调用
//=============================================//
功能 逻辑型 开始_点击()
i=0
j=0
逻辑数组=逻辑型[10][10]
调用=方块矩阵.开始画线()
返回 真
功能结束
//=============================================//
功能 逻辑型 开始画线()
i=0
j=0
循环(i<10)
逻辑数组[0]
=真
逻辑数组[9]
=真
i=i+1
循环结束
i=0
循环(i<10)
逻辑数组
[0]=真
逻辑数组
[9]=真
i=i+1
循环结束
辅助.等待(50)
调用=方块矩阵.绘制重线()
返回 真
功能结束
//=============================================//
功能 逻辑型 绘制重线()
随机=辅助.随机数(0,1)
选择(随机)
条件 0:
x0=5
y0=1
条件 1:
x0=4
y0=1
选择结束
调用=方块矩阵.下滑绘制()
返回 真
功能结束
//============================================//
功能 逻辑型 下滑绘制()
定时下滑=真
调用=方块矩阵.控制下滑()
返回 真
功能结束
功能 逻辑型 控制下滑()
循环(真)
键码=键盘.等待按键()
//去掉这里可以正常运行。
选择(键码)
条件 9:
y0=y0+1
选择结束
循环结束
返回 真
功能结束
//===========================================//
功能 逻辑型 控制时间_时钟()
如果(定时下滑)
如果(逻辑数组[x0][y0+1])//
判断循环
y0=y0
r=r+1//
每次循环+1
编辑框.设置文本("编辑框0",转换.整型转字符型(r))\\
显示循环次数
调用=方块矩阵.绘制重线()
否则
y0=y0+1
如果结束
如果结束
返回 真
功能结束
//==============================================//
功能 逻辑型 暂停_点击()
//这里添加你要执行的代码
定时下滑=假
返回 真
功能结束
//=============================================//
功能 逻辑型 继续游戏_点击()
//这里添加你要执行的代码
定时下滑=真
返回 真
功能结束
空间结束
//============================================//
[attach]4253[/attach]
[attach]4249[/attach]
[attach]4250[/attach]
[attach]4251[/attach]
[attach]4252[/attach]
作者:
jrflsh
时间:
2012-7-13 21:12
牛人,你还是到官方群内问下导师吧
作者:
板桥
时间:
2012-7-14 09:10
提示:
作者被禁止或删除 内容自动屏蔽
作者:
诚诚
时间:
2012-7-14 09:38
能把具体出现溢出的TC代码发出来吗?我们好跟踪确定下
作者:
zgz715
时间:
2012-7-14 15:30
回复
4楼
诚诚
的帖子
一会我会上传...
作者:
1wangrong
时间:
2012-7-14 15:57
牛人大哥! 求交往啊
作者:
zgz715
时间:
2012-7-14 17:13
回复
4楼
诚诚
的帖子
代码贴上了,帮我跟踪下..........
作者:
小王
时间:
2012-7-16 10:22
回复
1楼
zgz715
的帖子
用线程就是很好的解决方案了,多线程可同时处理多个任务,用在你这种场景最合适不过了,否则 等待按键程序会卡死在等待安检直到你按键来到,你拼命开启它肯定会出问题的,另外开多线程的时候也要注意同一线程不要按多次按钮就开启多次,除非你有意这么写代码!
作者:
Abin
时间:
2012-7-16 10:32
分析了下你的代码! 通过定时器和按钮启动程序,但是定时器会启动很多次的 等待按键 这个功能。
这里我感觉不适合使用定时器来处理。或者你看看下面说的,改下你的代码!
定时器运行原理: 每隔一段指定的时间执行一次定时器事件方法。
定时器处理的方法: 确保定时器的事件方法只运行一遍就结束,否则程序会出意想不到的错误!
你这个定时器的事件方法是一个循环等待按键的功能,所以每次定时器启动之后就会多一个等待按键!其实就相当于开了一个线程,但是不是开线程!
作者:
TC兔子
时间:
2012-7-16 11:39
大牛们的对话~~
作者:
zgz715
时间:
2012-7-17 15:17
回复
9楼
Abin
的帖子
嗯,谢了!
作者:
1021200169
时间:
2013-5-6 16:12
顶。。。。。。。。。。
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1