用双缓冲消除画面抖动

 cldc2.0 中GameCanvas已经实现了双缓冲功能,而1.0并没有,在1.0下,可以用下列方面自己实现双缓冲

代码如下:

private Image image;
private Graphics bg;
public void update(Graphics g){
     if(image == null){
         image =createImage(getSize().width,getSize().height);
         bg =image.getGraphics();
    }
    //
         此处用bg进行各种绘制动作如bg.drawString, bg.drawLine...
    //
     g.drawImage(image,0,0,this);
}


该段代码的原理:

 1.建立一个Image对象image,通过image=createrImage(int width,int height)来在内存中开辟一个长为width 宽为heithr空间.次空间的大小可以和你动画窗口的大小保持一致,也可以利用getwidth()和getheight()来获得动画窗口的大小.

 2.建立一个Graphics 对象bg通过bg=image.getGraphics();去把要绘制的对象存放到分配好的内存空间中.

 3.利用各种绘制操作,将其全部绘制到内存之中,最后调用我门的paint(Graphics g)方法中的g.drawImage(image,0,0,this)将image全部一次性的绘制到我门的动画窗口

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值