2024年3月11日发(作者:)
Java双缓冲技术
Java的强大特性让其在游戏编程和多媒体动画处理方面也毫不逊色。在Java游戏编程和动画编程中最常
见的就是对于屏幕闪烁的处理。本文从J2SE的一个再现了屏幕闪烁的Java Appilication简单动画实例展开,
对屏幕闪烁的原因进行了分析,找出了闪烁成因的关键:update(Graphics g)函数对于前端屏幕的清屏。由此引
出消除闪烁的方法——双缓冲。双缓冲是计算机动画处理中的传统技术,在用其他语言编程时也可以实现。本文
从实例出发,着重介绍了用双缓冲消除闪烁的原理以及双缓冲在Java中的两种常用实现方法(即在
update(Graphics g)中实现和在paint(Graphics g)中实现),以期读者能对双缓冲在Java编程中的应用能有个
较全面的认识。
关键词:Java 消除闪烁 双缓冲
一、问题的引入
在编写Java多媒体动画程序或用Java编写游戏程序的时候,我们得到的动画往往存在严重的闪烁(或图
片断裂)。这种闪烁虽然不会给程序的效果造成太大的影响,但着实有违我们的设计初衷,也给程序的使用者造
成了些许不便。闪烁到底是什么样的呢?下面的JavaApplication再现了这种屏幕闪烁的情况:
//代码段一[①],闪烁的再现
import .*;
import .*;
public class DoubleBuffer extends Frame//主类继承Frame类
{
public paintThread pT;//绘图线程
public int ypos=-80; //小圆左上角的纵坐标
public DoubleBuffer()//构造函数
{
pT=new paintThread(this);
izable(false);
e(300,300); //设置窗口的首选大小
ible(true); //显示窗口
();//绘图线程启动
}
public void paint(Graphics scr) //重载绘图函数
{
or();//设置小圆颜色
al(90,ypos,80,80); //绘制小圆
}
public static void main(String[] args)
{
DoubleBuffer DB=new DoubleBuffer();//创建主类的对象
dowListener(new WindowAdapter()//添加窗口关闭处理函数
{
发布者:admin,转转请注明出处:http://www.yc00.com/web/1710121075a1704049.html
评论列表(0条)