SlideShare ist ein Scribd-Unternehmen logo
1 von 3
En esta práctica vamos a crear un Applet Java donde una pelota rebota en los límites de un recinto. Se utiliza la técnica del
doble buffer para evitar parpadeos y para asegurar que la imagen está cargada se utiliza un objeto MediaTracker.




import java.applet.*;
import java.awt.*;

public class PelotaRebote extends Applet implements Runnable{

       private static final long serialVersionUID = 1L;

       private   static   final   int   ANCHO_APPLET = 250;
       private   static   final   int   ALTO_APPLET = 310;
       private   static   final   int   T_PAUSA = 10;
       private   static   final   int   VELOCIDAD = 3;

       //---
       private static final int K = 50;
       //---

       private Thread hilo;
       private Image pelota;

       //Doble_Buffer::Evitar parpadeo
       Graphics doble_buffer;
       Image imagen_db;

       //Propiedades de la pelota

       private   int   direc_X = 1;
       private   int   direc_Y = 1;
       private   int   pelota_X, pelota_Y;
       private   int   limite_der, limite_izq, limite_inf, limite_sup;




                                                                                bitCoach::Juan Bautista Cascallar Lorenzo
public void init(){

       precarga_de_imagenes();

       //--- doble buffer ---
       imagen_db = createImage(2*K + ANCHO_APPLET, 2*K + ALTO_APPLET);
       doble_buffer = imagen_db.getGraphics();

       //valores iniciales de la pelota
       pelota_X = (2 * K + ANCHO_APPLET) / 2;
       pelota_Y = (2 * K + ALTO_APPLET) / 2;
       limite_izq = K; //pared izquierda
       limite_der = ANCHO_APPLET + K - pelota.getWidth(this);
       limite_sup = K;
       limite_inf = ALTO_APPLET + K - pelota.getHeight(this);

}

public void precarga_de_imagenes(){
       pelota = getImage(getCodeBase(), "pelota.gif");
       //--- Utilizamos el tracker para asegurar que se carga la imagen (precarga) ---
       MediaTracker tracker = new MediaTracker(this);
       tracker.addImage(pelota, 0);
       try{
               tracker.waitForAll();
       }catch(InterruptedException e){}
}


public void start(){
       hilo = new Thread(this);
       hilo.start();
}

public void run(){
       while(true){
               actualizar_datos();
               repaint();//Llama a update()
               try{
                      Thread.sleep(T_PAUSA);
               }catch(Exception e){};
       }
}

public void actualizar_datos(){

       //Rebotes de la pelota con las paredes
       boolean reb_x = (pelota_X <= limite_izq) || (pelota_X >= limite_der);
       boolean reb_y = (pelota_Y >= limite_inf) || (pelota_Y <= limite_sup);

       //Si rebota en las paredes izq o der cambia la dirección del movimiento en el eje X.
       if(reb_x){ direc_X = -direc_X; }

       //Si rebota en las paredes inf o sup cambia la dirección del movimiento en el eje Y.
       if(reb_y){ direc_Y = -direc_Y; }

       //actualiza la posición de la pelota
       pelota_X = pelota_X + (VELOCIDAD * direc_X);
       pelota_Y = pelota_Y + (VELOCIDAD * direc_Y);
}

public void update(Graphics g){
       paint(g);
}




                                                                   bitCoach::Juan Bautista Cascallar Lorenzo
public void paint(Graphics g){

              // --- Relleno de Fondo del Applet ---

              doble_buffer.setColor(Color.GRAY);
              doble_buffer.fillRect(K - 5, K -5, ANCHO_APPLET + 10, ALTO_APPLET + K + 5);
              doble_buffer.setColor(Color.WHITE);
              doble_buffer.drawString("Java Applet::Pelota Rebotona", K, ALTO_APPLET + K + 15);
              doble_buffer.drawString("bitCoach::Juan Bautista Cascallar Lorenzo", K, ALTO_APPLET + K + 30);

              //Vaciamos el doble_buffer
              doble_buffer.fillRect(K, K, ANCHO_APPLET , ALTO_APPLET);

              //pintamos la pelota
              doble_buffer.drawImage(pelota,pelota_X,pelota_Y,this);

              //Volcamos todo los pintado en segundo plano al objeto Graphics del Applet
              g.drawImage(imagen_db, 0, 0, this);

       }

       public void stop(){
              if(hilo != null){
                      hilo = null;
              }
       }
}//FIN CLASE




                                                                         bitCoach::Juan Bautista Cascallar Lorenzo

Weitere ähnliche Inhalte

Was ist angesagt?

CACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel SteinCACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel SteinTchelinux
 
Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...
Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...
Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...priya Nithya
 
Informatica Failure recovery strategy
Informatica Failure recovery strategyInformatica Failure recovery strategy
Informatica Failure recovery strategyRaj Ningthemcha
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y ColasAlex Pin
 
ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMIBM
 
Sistema de numeración
Sistema de numeraciónSistema de numeración
Sistema de numeraciónlaura1352
 
Oracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptOracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptChien Chung Shen
 
05 enrutamiento estatico y rutas default freddy beltran
05 enrutamiento estatico y rutas default freddy beltran05 enrutamiento estatico y rutas default freddy beltran
05 enrutamiento estatico y rutas default freddy beltranbeppo
 
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And WhatPerformance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And Whatudaymoogala
 
Less06 networking
Less06 networkingLess06 networking
Less06 networkingAmit Bhalla
 

Was ist angesagt? (14)

CACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel SteinCACTI: Monitoramento Inteligente de Redes - Gabriel Stein
CACTI: Monitoramento Inteligente de Redes - Gabriel Stein
 
Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...
Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...
Modes of transfer - Computer Organization & Architecture - Nithiyapriya Pasav...
 
Informatica Failure recovery strategy
Informatica Failure recovery strategyInformatica Failure recovery strategy
Informatica Failure recovery strategy
 
PLSQL Cursors
PLSQL CursorsPLSQL Cursors
PLSQL Cursors
 
Pilas y Colas
Pilas y ColasPilas y Colas
Pilas y Colas
 
ALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARMALL ABOUT DB2 DSNZPARM
ALL ABOUT DB2 DSNZPARM
 
Sistema de numeración
Sistema de numeraciónSistema de numeración
Sistema de numeración
 
Oracle Database SQL Tuning Concept
Oracle Database SQL Tuning ConceptOracle Database SQL Tuning Concept
Oracle Database SQL Tuning Concept
 
Replicación Mysql
Replicación MysqlReplicación Mysql
Replicación Mysql
 
05 enrutamiento estatico y rutas default freddy beltran
05 enrutamiento estatico y rutas default freddy beltran05 enrutamiento estatico y rutas default freddy beltran
05 enrutamiento estatico y rutas default freddy beltran
 
Manual de como instalar mongo db en windows
Manual de  como instalar mongo db en windowsManual de  como instalar mongo db en windows
Manual de como instalar mongo db en windows
 
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And WhatPerformance Tuning With Oracle ASH and AWR. Part 1 How And What
Performance Tuning With Oracle ASH and AWR. Part 1 How And What
 
Less06 networking
Less06 networkingLess06 networking
Less06 networking
 
Noción de archivo real y virtual
Noción de archivo real y virtual Noción de archivo real y virtual
Noción de archivo real y virtual
 

Ähnlich wie Java Applet:::Pelota que rebota en un recinto.

Ähnlich wie Java Applet:::Pelota que rebota en un recinto. (11)

Codigo ejemplo j2 me
Codigo ejemplo   j2 meCodigo ejemplo   j2 me
Codigo ejemplo j2 me
 
Parte 15
Parte 15Parte 15
Parte 15
 
Códigos
CódigosCódigos
Códigos
 
Presentacion03
Presentacion03Presentacion03
Presentacion03
 
Clase03
Clase03Clase03
Clase03
 
Presentacion03
Presentacion03Presentacion03
Presentacion03
 
Clase03
Clase03Clase03
Clase03
 
Develop Mobile Apps with Corona SDK
Develop Mobile Apps with Corona SDKDevelop Mobile Apps with Corona SDK
Develop Mobile Apps with Corona SDK
 
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN CEJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
EJERCICIOS TEMA 1. MICROCONTROLADORES II EN C
 
Videojuegos
VideojuegosVideojuegos
Videojuegos
 
Videojuegos
VideojuegosVideojuegos
Videojuegos
 

Mehr von jubacalo

jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojubacalo
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jubacalo
 
MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagenjubacalo
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2jubacalo
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBancojubacalo
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Androidjubacalo
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletjubacalo
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DBjubacalo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLjubacalo
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva pagejubacalo
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSPjubacalo
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSPjubacalo
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundojubacalo
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcatjubacalo
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oraclejubacalo
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajaxjubacalo
 
Escenarios
EscenariosEscenarios
Escenariosjubacalo
 
Matrices02
Matrices02Matrices02
Matrices02jubacalo
 

Mehr von jubacalo (20)

jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
 
jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.jQuery Mobile :: Enlaces a páginas internas.
jQuery Mobile :: Enlaces a páginas internas.
 
MIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en ImagenMIT App Inventor2 Pintar en Imagen
MIT App Inventor2 Pintar en Imagen
 
Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2Cronómetro con MIT App Inventor 2
Cronómetro con MIT App Inventor 2
 
App Android MiniBanco
App Android MiniBancoApp Android MiniBanco
App Android MiniBanco
 
Configurar entorno Android
Configurar entorno AndroidConfigurar entorno Android
Configurar entorno Android
 
Acceso a BBDD mediante un servlet
Acceso a BBDD mediante un servletAcceso a BBDD mediante un servlet
Acceso a BBDD mediante un servlet
 
Find File Servlet DB
Find File Servlet DBFind File Servlet DB
Find File Servlet DB
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Servlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTMLServlets que manejan datos de formularios HTML
Servlets que manejan datos de formularios HTML
 
Jsp directiva page
Jsp directiva pageJsp directiva page
Jsp directiva page
 
Elementos de script en JSP
Elementos de script en JSPElementos de script en JSP
Elementos de script en JSP
 
Proyecto JSP
Proyecto JSPProyecto JSP
Proyecto JSP
 
Explicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundoExplicación del código del Servlet HolaMundo
Explicación del código del Servlet HolaMundo
 
Servlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y TomcatServlet Hola Mundo con Eclipse y Tomcat
Servlet Hola Mundo con Eclipse y Tomcat
 
Crear Base de Datos en Oracle
Crear Base de Datos en OracleCrear Base de Datos en Oracle
Crear Base de Datos en Oracle
 
Web de noticias en Ajax
Web de noticias en AjaxWeb de noticias en Ajax
Web de noticias en Ajax
 
Escenarios
EscenariosEscenarios
Escenarios
 
Matrices02
Matrices02Matrices02
Matrices02
 
Gráficos
GráficosGráficos
Gráficos
 

Kürzlich hochgeladen

cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Rosabel UA
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfssuser50d1252
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfssuser50d1252
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docxLuisAndersonPachasto
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 

Kürzlich hochgeladen (20)

cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024Actividad transversal 2-bloque 2. Actualización 2024
Actividad transversal 2-bloque 2. Actualización 2024
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdfFichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
Fichas de Matemática DE SEGUNDO DE SECUNDARIA.pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdfFichas de Matemática TERCERO DE SECUNDARIA.pdf
Fichas de Matemática TERCERO DE SECUNDARIA.pdf
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Aedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptxAedes aegypti + Intro to Coquies EE.pptx
Aedes aegypti + Intro to Coquies EE.pptx
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docxEDUCACION FISICA 1°  PROGRAMACIÓN ANUAL 2023.docx
EDUCACION FISICA 1° PROGRAMACIÓN ANUAL 2023.docx
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 

Java Applet:::Pelota que rebota en un recinto.

  • 1. En esta práctica vamos a crear un Applet Java donde una pelota rebota en los límites de un recinto. Se utiliza la técnica del doble buffer para evitar parpadeos y para asegurar que la imagen está cargada se utiliza un objeto MediaTracker. import java.applet.*; import java.awt.*; public class PelotaRebote extends Applet implements Runnable{ private static final long serialVersionUID = 1L; private static final int ANCHO_APPLET = 250; private static final int ALTO_APPLET = 310; private static final int T_PAUSA = 10; private static final int VELOCIDAD = 3; //--- private static final int K = 50; //--- private Thread hilo; private Image pelota; //Doble_Buffer::Evitar parpadeo Graphics doble_buffer; Image imagen_db; //Propiedades de la pelota private int direc_X = 1; private int direc_Y = 1; private int pelota_X, pelota_Y; private int limite_der, limite_izq, limite_inf, limite_sup; bitCoach::Juan Bautista Cascallar Lorenzo
  • 2. public void init(){ precarga_de_imagenes(); //--- doble buffer --- imagen_db = createImage(2*K + ANCHO_APPLET, 2*K + ALTO_APPLET); doble_buffer = imagen_db.getGraphics(); //valores iniciales de la pelota pelota_X = (2 * K + ANCHO_APPLET) / 2; pelota_Y = (2 * K + ALTO_APPLET) / 2; limite_izq = K; //pared izquierda limite_der = ANCHO_APPLET + K - pelota.getWidth(this); limite_sup = K; limite_inf = ALTO_APPLET + K - pelota.getHeight(this); } public void precarga_de_imagenes(){ pelota = getImage(getCodeBase(), "pelota.gif"); //--- Utilizamos el tracker para asegurar que se carga la imagen (precarga) --- MediaTracker tracker = new MediaTracker(this); tracker.addImage(pelota, 0); try{ tracker.waitForAll(); }catch(InterruptedException e){} } public void start(){ hilo = new Thread(this); hilo.start(); } public void run(){ while(true){ actualizar_datos(); repaint();//Llama a update() try{ Thread.sleep(T_PAUSA); }catch(Exception e){}; } } public void actualizar_datos(){ //Rebotes de la pelota con las paredes boolean reb_x = (pelota_X <= limite_izq) || (pelota_X >= limite_der); boolean reb_y = (pelota_Y >= limite_inf) || (pelota_Y <= limite_sup); //Si rebota en las paredes izq o der cambia la dirección del movimiento en el eje X. if(reb_x){ direc_X = -direc_X; } //Si rebota en las paredes inf o sup cambia la dirección del movimiento en el eje Y. if(reb_y){ direc_Y = -direc_Y; } //actualiza la posición de la pelota pelota_X = pelota_X + (VELOCIDAD * direc_X); pelota_Y = pelota_Y + (VELOCIDAD * direc_Y); } public void update(Graphics g){ paint(g); } bitCoach::Juan Bautista Cascallar Lorenzo
  • 3. public void paint(Graphics g){ // --- Relleno de Fondo del Applet --- doble_buffer.setColor(Color.GRAY); doble_buffer.fillRect(K - 5, K -5, ANCHO_APPLET + 10, ALTO_APPLET + K + 5); doble_buffer.setColor(Color.WHITE); doble_buffer.drawString("Java Applet::Pelota Rebotona", K, ALTO_APPLET + K + 15); doble_buffer.drawString("bitCoach::Juan Bautista Cascallar Lorenzo", K, ALTO_APPLET + K + 30); //Vaciamos el doble_buffer doble_buffer.fillRect(K, K, ANCHO_APPLET , ALTO_APPLET); //pintamos la pelota doble_buffer.drawImage(pelota,pelota_X,pelota_Y,this); //Volcamos todo los pintado en segundo plano al objeto Graphics del Applet g.drawImage(imagen_db, 0, 0, this); } public void stop(){ if(hilo != null){ hilo = null; } } }//FIN CLASE bitCoach::Juan Bautista Cascallar Lorenzo