| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4490 人关注过本帖
标题:继之前的帖子
取消只看楼主 加入收藏
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
结帖率:92.31%
收藏
 问题点数:0 回复次数:4 
继之前的帖子
前面的帖子地址 https://bbs.bccn.net/viewthread.php?tid=465198&pid=2570150&page=1#pid2570150

经过我的思考,我修改了点的移动方式,将所有的点的移动分配到了多个Timer上面,每个Timer仅仅计算50个点的移动,大幅提升了游戏速度,但是有一些小BUG,我找不到问题出在哪里,故在这里放上源代码,请各位帮忙看看
改动点:加入加载timer1的代码(由本来负责加入新的点的Timer2负责,刷新频率5S,所有负责点的移动的timer1加入控件数组,通过算法让每个timer1负责50个点的移动
问题1:游戏结束后会莫名其妙的重新加载Form_Load,导致页面无限刷新(我调试就因为这害的我只能强制关掉编译环境,建议在调试的时候加入断点,否则哭都没地哭去)
问题2:在第三次加载Timer1之前会有一部分点不会移动(未找到原因)

这个解决方式我想了很久,原来只需要基本语句就可以完成了……大家想太多了,都牵扯到结构体和VB的动画效果了,实际上没那么深奥滴……
希望大家能再祝我一臂之力,谢谢啦
(注:这个帖子是补充的帖子,所以不发专家分了,见谅)
下面放上源代码
小游戏.zip (5.29 KB)


注意:这个版本是最早期的版本,大家不用下载了,可以看下面的帖子更新

[此贴子已经被作者于2016-5-28 20:35编辑过]

搜索更多相关主题的帖子: 源代码 游戏 
2016-05-28 20:02
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
个人思考了一下问题1,觉得原因可能是Timer处于控件数组之中,一个Timer结束了它的工作,运行Unload语句的时候,其他Timer仍然需要运行,致使窗体重新加载的问题
我的解决方案:单个Timer1的结束代码前面加入循环语句,在运行UNLOAD之前,将所有Timer的Enabled属性全部调为False
还没尝试,不知道有没有效

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2016-05-28 20:04
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
之前所述的方式无效,同时发现另外BUG:
1.加载新的点之后,这些点在下一次重加载Timer1之前都无法运动,同时新的点的运动速度不可控,不知道为什么……
2.有时在加载新的点时,会莫名其妙的触发“死亡机制”,莫名其妙的判定死亡,游戏结束

另外,测试发现了异常情况:问题1的触发是随机的,5次测试,有1次成功完成退出操作,没有触发Load事件

[此贴子已经被作者于2016-5-28 20:14编辑过]


编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2016-05-28 20:08
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
已经查出了楼上的2号错误的原因:Timer的分配机制不当,同时On error resume next 的存在使得读取不存在的点的数据的时候不会报错,致使判定失误,触发死亡

接下来给出更新了两次的新源代码:
小游戏.zip (5.92 KB)


需要注意的是,现在还是有特别致命的错误:窗体无法退出,一旦退出会触发窗体加载事件,原因不明,请大家优先帮我解决这个问题,谢谢

[此贴子已经被作者于2016-5-28 20:37编辑过]


编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2016-05-28 20:34
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
谢谢楼上的帮助,看来还是不能绕过多线程啊,只能去学习多线程了……

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2016-05-29 12:16
快速回复:继之前的帖子
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016063 second(s), 10 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved