我做了个俄罗斯方块游戏,不过屏幕闪动很大,有什么办法解决??谢谢
我做了个俄罗斯方块游戏,不过屏幕闪动很大,有什么办法解决??谢谢 问题点数:60、回复次数:5Top
1 楼mercury1231(为论文而拼搏,老板就是上帝)回复于 2002-11-23 02:50:09 得分 0
可不可能只对局部进行刷新?Top
2 楼wukuan(阿伍)回复于 2002-11-23 17:46:59 得分 60
闪烁的原因是你作图的时候需要重绘背景,而且你每画一个图形,画面变化一次,这样就显得在闪烁。
解决的办法是使用双缓冲技术,方法是:先将所有的图形画到一个看不到的东西上,然后一次性的把整张图画到要显示的地方。
具体做法:java里有一个类叫做Image,可以把他看作是一个画画的地方,不能直接看到他,他上面是可以作画的,先把所有的东西画到一个Image
上,假如显示的地方是一个JPanel,使用JPanel的Graphics的drawImage方法
可以把那个Image画到JPanel上,也就是显示出来。这样子就不会出现闪烁了。而且,窗体重绘的时候也只需要把Image重新画到JPanel上就行了。
Image img; // 生成引用
......
img = jPanel1.createImage(width,length....); // Image 不能new ,
// 只能这样子创建,假设显示区域是jPanel1
.....
img.getGraphics().drawRectangle(...) //画矩形
img.getGraphics().drawOval(..) // 画圆
......
.....
jPanel1.getGraphics().drawImage( img, ...._) // 显示出来
......
搞定。
Top
3 楼sunni(死猪)回复于 2002-11-23 23:35:40 得分 0
楼上说的对 不过你也看看自己的代码 是不是还有什么要优化的Top
4 楼cno(一一)回复于 2002-11-26 15:51:00 得分 0
队,重复刷新太多Top
5 楼shangxinyu123(龙)回复于 2002-12-13 23:48:07 得分 0
对的,我也做了一个俄罗斯方块,在他预显示的地方闪的比较多Top




