个人经验,写下来会加深自己的记忆,同时看看自己的日志还能够温习一下,也和大家同时分享!
大家都懂得,JavaSE不比Java
ME.ME中曾经内置利用了双缓冲的机制(局部旧式手机不扶持),而JavaSE中的双缓冲机制则要自己来告终。做过Java桌面游戏的人可能会觉察,万一无须双缓冲,在许多时候会揭示白色画面一闪而过,这即便因为图像正在描摹而没描摹完,却提前揭示在窗口内构成的。处理这种情形就必需利用双缓冲机制。
双缓冲机制的原理在下面的代码中曾经有翔实的解析,翔实告终如下:
Image offScreenImage = null;
上面的语句在变量声明局部给出。
在函数调用过程中,写出update措施:
// 双缓冲机制的翔实告终
public void update(Graphics g) {
探路者>if (offScreenImage == null){
offScreenImage= this.createImage(Commens.WINDOW_WITH,
Commens.WINDOW_HEIGHT);
}
Graphics gOffScreen =offScreenImage.getGraphics();//
获得图片内的所有图形,构成虚构窗口
Color c =gOffScreen.getColor();
gOffScreen.setColor(Color.GREEN);//设置屏幕窗口的颜色
gOffScreen.fillRect(0, 0,Commens.WINDOW_WITH,
Commens.WINDOW_HEIGHT);
gOffScreen.setColor(c);
paint(gOffScreen); //把虚构窗口画在图片上
g.drawImage(offScreenImage, 0,0, null);// 把图片画在窗口上
}
这么在描摹时,揭示描摹到缓冲区,再揭示出来,就不会揭示"闪屏"的情形了他倒感受像C++这么的语言的OO,纯是添乱。