TC官方合作论坛

 找回密码
 立即注册
查看: 1618|回复: 11
打印 上一主题 下一主题

[已解决] 用TC开发游戏时matchDll.dll溢错误,求解决方案。

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-13 20:32:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
                                TC开发游戏中出现matchDll.dll溢出错误。
                                        开发被迫暂停。求解决方案。



                                   此问题以用线程决绝,有更好的方法可以联系我。
                                   因为线程达不到要求,会影响刷新速度。


以下是出错部分
大概循环11次就会溢出。
如果去掉等待按键的话,可以正常运行。
但是去掉了也就不能控制了。
源码:
代码简化原型:
//=============================================//
空间 方块矩阵
//定义默认空间
整型 控制下落
逻辑型 定时下滑
逻辑型[][]  逻辑数组
整型 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
如果结束
如果结束
返回 真
功能结束
//==============================================//
功能 逻辑型 暂停_点击()
//这里添加你要执行的代码
定时下滑=假
返回 真
功能结束
//=============================================//
功能 逻辑型 继续游戏_点击()
//这里添加你要执行的代码
定时下滑=真
返回 真
功能结束
空间结束

//============================================//
















本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

9#
发表于 2012-7-16 10:32:14 | 只看该作者
分析了下你的代码!   通过定时器和按钮启动程序,但是定时器会启动很多次的 等待按键 这个功能。

这里我感觉不适合使用定时器来处理。或者你看看下面说的,改下你的代码!

定时器运行原理: 每隔一段指定的时间执行一次定时器事件方法。
定时器处理的方法: 确保定时器的事件方法只运行一遍就结束,否则程序会出意想不到的错误!

你这个定时器的事件方法是一个循环等待按键的功能,所以每次定时器启动之后就会多一个等待按键!其实就相当于开了一个线程,但是不是开线程!
回复 支持 反对

使用道具 举报

沙发
发表于 2012-7-13 21:12:51 | 只看该作者
牛人,你还是到官方群内问下导师吧
回复 支持 反对

使用道具 举报

板桥 该用户已被删除
板凳
发表于 2012-7-14 09:10:09 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

地板
发表于 2012-7-14 09:38:58 | 只看该作者
能把具体出现溢出的TC代码发出来吗?我们好跟踪确定下
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2012-7-14 15:30:30 | 只看该作者
回复 4楼诚诚的帖子

一会我会上传...
回复 支持 反对

使用道具 举报

6#
发表于 2012-7-14 15:57:03 | 只看该作者
牛人大哥! 求交往啊
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2012-7-14 17:13:19 | 只看该作者
回复 4楼诚诚的帖子

代码贴上了,帮我跟踪下..........
回复 支持 反对

使用道具 举报

8#
发表于 2012-7-16 10:22:35 | 只看该作者
回复 1楼zgz715的帖子

用线程就是很好的解决方案了,多线程可同时处理多个任务,用在你这种场景最合适不过了,否则 等待按键程序会卡死在等待安检直到你按键来到,你拼命开启它肯定会出问题的,另外开多线程的时候也要注意同一线程不要按多次按钮就开启多次,除非你有意这么写代码!
回复 支持 反对

使用道具 举报

10#
发表于 2012-7-16 11:39:45 | 只看该作者
大牛们的对话~~
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-10-4 20:45 , Processed in 0.240729 second(s), 26 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表