You are on page 1of 3

package anima1; import java.awt.*; import java.awt.event.*; import java.applet.

*; public class AnimaApplet1 extends Applet implements Runnable { Thread anima; int radio=10; //radio de la pelota int x, y; //posicin del centro de la pelota int dx = 1; //desplazamientos int dy = 1; int anchoApplet; int altoApplet; public void init () { setBackground(Color.white); //dimensiones del applet anchoApplet=getSize().width; altoApplet=getSize().height; //posicin inicial de partida x=anchoApplet/4; y=altoApplet/2; } public void start(){ if(anima ==null){ anima=new Thread(this); anima.start(); } } public void stop(){ if(anima!=null){ anima.stop(); anima=null; } } public void run() { while (true) { mover(); } } void mover(){ x += dx; y += dy; if (x >= (anchoApplet-radio) || x < radio) dx*= -1; if (y >= (altoApplet-radio) || y < radio) dy*= -1; repaint(); //llama a paint } public void paint (Graphics g) { g.setColor(Color.red); g.fillOval(x-radio, y-radio, 2*radio, 2*radio); }

package anima2; import java.awt.*; import java.awt.event.*; import java.applet.*; public class AnimaApplet2 extends Applet implements Runnable { Thread anima; int radio=10; //radio de la pelota int x, y; //posicin del centro de la pelota int dx = 1; //desplazamientos int dy = 1; int anchoApplet; int altoApplet; int retardo=80; //Doble buffer Image imag; Graphics gBuffer; public void init () { setBackground(Color.white); //dimensiones del applet anchoApplet=getSize().width; altoApplet=getSize().height; //posicin inicial de partida x=anchoApplet/4; y=altoApplet/2; } public void start(){ if(anima ==null){ anima=new Thread(this); anima.start(); } } public void stop(){ if(anima!=null){ anima.stop(); anima=null; } } public void run() { long t=System.currentTimeMillis(); while (true) { mover(); try{ t+=retardo; Thread.sleep(Math.max(0, t-System.currentTimeMillis())); }catch(InterruptedException ex){

break; } } } void mover() { x += dx; y += dy; if (x >= (anchoApplet-radio) || x <= radio) dx*= -1; if (y >= (altoApplet-radio) || y <= radio) dy*= -1; repaint(); //llama a update } public void update(Graphics g){ if(gBuffer==null){ imag=createImage(anchoApplet, altoApplet); gBuffer=imag.getGraphics(); } gBuffer.setColor(getBackground()); gBuffer.fillRect(0,0, anchoApplet, altoApplet); //dibuja la pelota gBuffer.setColor(Color.red); gBuffer.fillOval(x-radio, y-radio, 2*radio, 2*radio); //transfiere la imagen al contexto grfico del applet g.drawImage(imag, 0, 0, null); } public void paint (Graphics g) { //se llama la primera vez que aparece el applet } }

You might also like