SimpleAnimationTest.html<title>SimpleAnimation Test</title>
<hr>
<applet code="SimpleAnimationTest.class" width=450 height=250>
</applet>
<hr>SimpleAnimationTest.javaimport java.applet.Applet;
import java.net.URL;import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;public class SimpleAnimationTest extends Applet
{
public void init()
{
setLayout(new BorderLayout());
add(new Label("Simple Animation - Mouse Down Starts/Stops"),"North");
add(new SimpleAnimationTestPanel(this),"Center");
}
}class SimpleAnimationTestPanel extends Panel
{
public SimpleAnimationTestPanel(Applet applet)
{
setLayout(new BorderLayout());
add(new SimplePlayfield(applet),"Center");
} public void update(Graphics g)
{
paint(g);
}
}class SimplePlayfield extends Playfield
{
private Applet applet;
private URL cb;
private Sprite javaDrinker;
private Sequence spinSequence; public SimplePlayfield(Applet applet)
{
this.applet = applet;
cb = applet.getCodeBase(); makeSequencesAndSprites(); setWallpaperImage(applet.getImage(cb,"Gifs/background.gif")); addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent event)
{
if(running() == true)
{
stop();
}
else
{
start();
}
}
});
} public void edgeCollision(Sprite sprite,Orientation orientation)
{
if(orientation == Orientation.RIGHT || orientation == Orientation.LEFT)
{
sprite.reverseX();
}
else
{
sprite.reverseY();
}
} private void makeSequencesAndSprites()
{
String file;
Point startLoc = new Point(10,10);
Image[] spinImages = new Image[19]; for(int i = 0;i < spinImages.length;++i)
{
file = "Gifs/spin"; if(i < 10)
{
file += "0" + i + ".gif";
}
else
{
file += i + ".gif";
}
spinImages[i] = applet.getImage(cb,file);
}
spinSequence = new Sequence(this,spinImages);
javaDrinker = new Sprite(this,spinSequence,startLoc); javaDrinker.setMoveVector(new Point(1,1));
add(javaDrinker);
}
}
Playfield.javaimport java.util.Vector;import java.awt.Component;public class Playfield extends DoubleBufferedContainer implements Runnable,CollisionArena
{
private boolean running = false;
private Thread animationThread;
private CollisionDetector spriteDetector,edgeDetector; public Playfield()
{
edgeDetector = new EdgeCollisionDetector(this);
spriteDetector = new SpriteCollisionDetector(this);
setLayout(new BulletinLayout());
} public void spriteCollision(Sprite sprite,Sprite other)
{} public void edgeCollision(Sprite sprite,Orientation o)
{} public void stop()
{
running = false;
} public boolean running()
{
return running;
} public void start()
{
animationThread = new Thread(this);
running = true;
animationThread.start();
} public void run()
{
while(running == true)
{
edgeDetector.detectCollisions();
spriteDetector.detectCollisions(); animateSprites();
try
{
Thread.currentThread().sleep(50);
}
catch(Exception e)
{
e.printStackTrace();
}
}
animationThread = null;
} public Vector getSprites()
{
int ncomps = getComponentCount();
Component comp;
Vector vector = new Vector(); for(int i = 0;i < ncomps;++i)
{
if((comp = getComponent(i))instanceof Sprite)
{
vector.addElement(comp);
}
}
return vector;
} protected void animateSprites()
{
int ncomps = getComponentCount();
Component comp; for(int i = 0;i < ncomps;++i)
{
if((comp = getComponent(i))instanceof Sprite)
{
((Sprite)comp).animate();
}
}
}
}
<hr>
<applet code="SimpleAnimationTest.class" width=450 height=250>
</applet>
<hr>SimpleAnimationTest.javaimport java.applet.Applet;
import java.net.URL;import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Label;
import java.awt.Panel;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;public class SimpleAnimationTest extends Applet
{
public void init()
{
setLayout(new BorderLayout());
add(new Label("Simple Animation - Mouse Down Starts/Stops"),"North");
add(new SimpleAnimationTestPanel(this),"Center");
}
}class SimpleAnimationTestPanel extends Panel
{
public SimpleAnimationTestPanel(Applet applet)
{
setLayout(new BorderLayout());
add(new SimplePlayfield(applet),"Center");
} public void update(Graphics g)
{
paint(g);
}
}class SimplePlayfield extends Playfield
{
private Applet applet;
private URL cb;
private Sprite javaDrinker;
private Sequence spinSequence; public SimplePlayfield(Applet applet)
{
this.applet = applet;
cb = applet.getCodeBase(); makeSequencesAndSprites(); setWallpaperImage(applet.getImage(cb,"Gifs/background.gif")); addMouseListener(new MouseAdapter()
{
public void mousePressed(MouseEvent event)
{
if(running() == true)
{
stop();
}
else
{
start();
}
}
});
} public void edgeCollision(Sprite sprite,Orientation orientation)
{
if(orientation == Orientation.RIGHT || orientation == Orientation.LEFT)
{
sprite.reverseX();
}
else
{
sprite.reverseY();
}
} private void makeSequencesAndSprites()
{
String file;
Point startLoc = new Point(10,10);
Image[] spinImages = new Image[19]; for(int i = 0;i < spinImages.length;++i)
{
file = "Gifs/spin"; if(i < 10)
{
file += "0" + i + ".gif";
}
else
{
file += i + ".gif";
}
spinImages[i] = applet.getImage(cb,file);
}
spinSequence = new Sequence(this,spinImages);
javaDrinker = new Sprite(this,spinSequence,startLoc); javaDrinker.setMoveVector(new Point(1,1));
add(javaDrinker);
}
}
Playfield.javaimport java.util.Vector;import java.awt.Component;public class Playfield extends DoubleBufferedContainer implements Runnable,CollisionArena
{
private boolean running = false;
private Thread animationThread;
private CollisionDetector spriteDetector,edgeDetector; public Playfield()
{
edgeDetector = new EdgeCollisionDetector(this);
spriteDetector = new SpriteCollisionDetector(this);
setLayout(new BulletinLayout());
} public void spriteCollision(Sprite sprite,Sprite other)
{} public void edgeCollision(Sprite sprite,Orientation o)
{} public void stop()
{
running = false;
} public boolean running()
{
return running;
} public void start()
{
animationThread = new Thread(this);
running = true;
animationThread.start();
} public void run()
{
while(running == true)
{
edgeDetector.detectCollisions();
spriteDetector.detectCollisions(); animateSprites();
try
{
Thread.currentThread().sleep(50);
}
catch(Exception e)
{
e.printStackTrace();
}
}
animationThread = null;
} public Vector getSprites()
{
int ncomps = getComponentCount();
Component comp;
Vector vector = new Vector(); for(int i = 0;i < ncomps;++i)
{
if((comp = getComponent(i))instanceof Sprite)
{
vector.addElement(comp);
}
}
return vector;
} protected void animateSprites()
{
int ncomps = getComponentCount();
Component comp; for(int i = 0;i < ncomps;++i)
{
if((comp = getComponent(i))instanceof Sprite)
{
((Sprite)comp).animate();
}
}
}
}
解决方案 »
- 点击eclipse将其打开的时候, 弹出对话框fail to create java virtual machine
- 最近公司不把我们当人看整天加班!我该不该走
- 菜鸟问题 求大家帮下忙
- validate和revalidate有什么不同呀?
- java创建索引
- 问一个超级简单的问题!!!
- 关于对象循环引用
- 我写的FTP下载客户端程序,错误到底在哪儿?请大伙看看!
- 有没有大神帮小弟看一下的
- 大讨论:在java的开发过程中,大家都是用什么工具进行文档管理的?
- 部署EJB到Webloigc Server上去的时候出错?帮忙看看,谢谢!
- 启动weblogic的时候提示java.lang.UnsatisfiedLinkError:no muxer in java.library.path错误。这是什么错误?
有没有简单点的呢