【露】鱼儿鱼儿 你别闪了

要实现一个什么东西呢?

模拟在几台计算机屏幕上连贯的显示出一条鱼游动的整个动画,即一条鱼从一台计算机的屏幕慢慢游到另一台计算机的屏幕上。游动时,要求看起来像是同一条鱼在一个整体的屏幕上游动。

看起来很神奇吧,这就是我准备拿来熟悉软件结构和语言的一个程序,16页代码,我竟然真的打出来了!!!好佩服我自己!

编译的时候使用

java -encoding UTF-8 -d . *.java

-encoding UTF-8 是为了避免乱码,不然会是这样


最后会自动根据程序中的package设置,形成文件夹,非常方便

运行结果

服务器端


客户端


客户端界面


看起来很完美吧,其实鱼儿是在一闪一闪的,这一条完整的截图了好久可怜

给你们看半条鱼


好可怜!从中斩断!

书上说让我双缓存技术,没办法,翻到前几章把这块儿看了一下,又从网上百度了一堆代码,改啊改,鱼儿闪啊闪,要崩溃了抓狂

	public void paintComponent(Graphics g)
	{
		super.paintComponent(g);
		if((getSize().width != 600)||(getSize().height!=468))
		initOffGraphics();
		if(offImage!=null)
			g.drawImage(offImage,0,0,this);
	}
	
	public void initOffGraphics()
	{
		int width = getWidth();
		int height = getHeight();
		offImage = createImage(width,height);
		offGraphics = offImage.getGraphics();
		offPaint(offGraphics);
	}
	
	public void offPaint(Graphics g)
	{
		g.drawImage(imageOfBackground,0,0,getWidth(),getHeight(),this);
		try
		{
			//加载背景图片后,等待30毫秒
			Thread.sleep(30);
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
		}
		//鱼向左右游动时显示的图片不同
		if(fish.right == 1)
		{
			g.drawImage(imageOfFishOnRight,fish.x,fish.y,this);
		}
		else
		{
			g.drawImage(imageOfFishOnLeft,fish.x,fish.y,this);
		}
	}

这是双缓存部分的代码,各位大神,看出问题的求指教! 可怜

明天理清程序思路,画出程序结构图。各位加油!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值