P166的机子连俄罗斯方块都不能玩?
暑假里写了一个俄罗斯方块.昨天拿到学校一试,发现慢得可怜.特别是在消行的时候,更是慢的让人无法忍受.各位老大,这是怎么回事呀?
算法说明:
开辟一个数组,放置每个小方块的数据(按颜色不同,分别置为1-7.如果当前位置没有方块,则置为0).刷新时,先重显示一次背景图案,然后再按照数组中的数据依次画出方块.
消行时,每行从左到右依次消除.为了表现出这个效果,我调用了api的sleep函数. 具体过程是这样的:改写数组(消掉最左边一个方块)-->清屏-->画背景-->依照改写后的数组重画方块-->调用sleep等待一段时间-->改写数组(消掉从左边数第二个方块)... ...
在学校时发现,每消掉一个方块时的等待时间太长了,几乎有一种系统崩溃的感觉.这是怎么回事呀?学校的机器是P166,32M.
另一方面,难道说这种算法会消耗大量的系统资源?不会吧?至少P166也应该能承受吧?
那么,这到底是怎么回事呀?
注:
我家的机器的配置是P3 667, 128M PC100, SIS 630整合.
这个软件可以在CSDN下载:
http://www.csdn.net/soft/openfile.asp?kind=1&id=12801
问题点数:20、回复次数:12Top
1 楼lhjcpu(浪客艳心)回复于 2001-09-01 20:20:33 得分 5
这不是机器的问题,你可以在数组先设置没个不同形状的方块,在开一个数组,表示下面摞的情况,按每行算,完整,则整行消除,数组相前一位,否则,保存,继续循环Top
2 楼mwenyuan(William Ma)回复于 2001-09-01 20:36:46 得分 3
我可以把我的代码给你,你试试看,留下Email或者OicqTop
3 楼zhangxu421(Sniper)回复于 2001-09-01 20:36:47 得分 0
To lhjcpu:
我明白您的意思.但我想问题可能不在这里.
我怀疑每次刷新屏幕时要耗费大量的资源.因为家里的电脑配置较高,因此没有发现问题.但应用在学校的低配置的电脑上却要消耗大量的时间.
但是,这种程序最多能消耗多少资源呢?以至于让P166不堪重负?
请各位高人指点Top
4 楼zhangxu421(Sniper)回复于 2001-09-01 20:38:05 得分 0
To mwenyuan():
zhangxu421@263.net
谢了!Top
5 楼zhangxu421(Sniper)回复于 2001-09-02 22:40:59 得分 0
upTop
6 楼Bonnie_H(小丸子)回复于 2001-09-03 07:59:56 得分 5
我的是P166+32M,上联众玩在线俄罗斯方块也快得不得了。你试一下吧,然后修改你的程序。Top
7 楼zhangxu421(Sniper)回复于 2001-09-03 12:09:28 得分 0
To Bonnie_N(小丸子):
您能否帮我测试一下?我想看看是不是学校的系统有问题.
谢了!
http://www.csdn.net/soft/openfile.asp?kind=1&id=12801
Top
8 楼blow_jj(阿俊)回复于 2001-09-03 12:41:23 得分 5
游戏的引擎有问题!
我的133机器能办很多事呢!
:)Top
9 楼zhangxu421(Sniper)回复于 2001-09-03 23:49:40 得分 0
To blow_jj(纪俊):
您高估我了.我写的是2D游戏,没用引擎.
您能帮我试用一下吗?如果您的机子能玩,那大概就是学校的系统有问题了.
谢了!Top
10 楼()回复于 2001-09-04 00:14:58 得分 2
对游戏不感兴趣Top
11 楼Bonnie_H(小丸子)回复于 2001-09-04 09:05:51 得分 0
To zhangxu421(zhangxu421) :
对不起,我只有这一台“生产”机,所以不能运行别人的程序。Top
12 楼zhangxu421(Sniper)回复于 2001-09-06 19:38:05 得分 0
不好意思,终于发现问题了.其实是把一个本应该在外循环的sleep函数放在内循环了.真见鬼,这么低级的错误怎么一直没有发现?
好了,不耽误大家时间了.
来者有分呀!
Top




