要实现一个什么东西呢?
模拟在几台计算机屏幕上连贯的显示出一条鱼游动的整个动画,即一条鱼从一台计算机的屏幕慢慢游到另一台计算机的屏幕上。游动时,要求看起来像是同一条鱼在一个整体的屏幕上游动。
看起来很神奇吧,这就是我准备拿来熟悉软件结构和语言的一个程序,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);
}
}
这是双缓存部分的代码,各位大神,看出问题的求指教!

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