Make your own free website on Tripod.com

//Realizado por:

// Jose Gonzalez c.i. 14351122

// Hector Sevilla c.i. 12984956

// parque infantil

 

 

import java.awt.*;

import java.applet.*;

import java.lang.Math.*;

 

 

class nino implements Runnable{

  Thread runner;

  Image imagen;

 

 

  // Posicion en el EJE DE LAS X

  protected int x;

  // Posicion en el EJE DE LAS Y

  protected int y;

  // LARGO

  protected int x2;

  // ANCHO

  protected int y2;

  // TIPO DE niño

  protected int tipo;

  //Componente X de la VELOCIDAD

  protected int velX;

  //Componente en Y de la VELOCIDAD

  protected int velY; 

  //Componente X de la VELOCIDAD CONTRARIA

  protected int velXcon;

  //Componente X de la VELOCIDAD CONTRARIA

  protected int velYcont;

 

  public nino (int pox,int poy,int tx,int ty,int velocidadX,int velocidadY, int type, Image foto)

  {//constructor

            x = pox;

            y = poy;

            x2 = tx;

            y2 = ty;

            velX = velocidadX;

            velY = velocidadY;

            tipo = type;

            imagen = foto;

 

 

  }

    public void start()

  {

            if (runner == null){

                        runner = new Thread(this);

                        runner.start();

            }

  }

 

   

  public void run ()

  {

            for (i=1;i<=900;i++){

            mover(velX,velY);

            movercontrario(velXcont,velYcont);

            try {

                        Thread.sleep(1000);

            }

            catch (InterruptedException e){          

            }

   }

  }       

 

  public Image imagennino()

  {

            return imagen;

  }

 

  public int poX()

  //DEVUELVE L POSICION EN EL EJE DE LAS X

  {

            return x;

  }

 

 

  public int poY()

  //DEVUELVE L POSICION EN EL EJE DE LAS y

  {

            return y;

  }

 

  public int derX()

   //DEVUELVE EL ANCHO DEL NIÑO

  {

            return x + x2;

  }

 

  public int abaY()

   //DEVUELVE EL ANCHO DEL NIÑO

  {

            return y + y2;

  }

 

  public int VX()

  //DEVUELVE LA COMPONENTE X DE LA VELOCIDAD

  {

            return velX;

  }

 

  public int VY()

  //DEVUELVE LA COMPONENTE y DE LA VELOCIDAD

  {

            return velY;

  }

  public int VXcont()

  //DEVUELVE LA COMPONENTE X DE LA VELOCIDAD CONTRARIA

  {

            return velXcont;

  }

 

  public int VYcont()

  //DEVUELVE LA COMPONENTE Y DE LA VELOCIDAD

  {

            return velYcont;

  }

 

 

 

 

  public void mover(int veloX, int veloY)

  //MUEVE AL NIÑO

  {

            if (this.tipo==1){

                        x = x + veloX;

                        y = y + veloY;}

            else if (this.tipo == 2){

                        x = x + veloX;

                        y = y + ((int)((Math.random()*3)+1))-2;}

            else if (this.tipo == 3){

                        x = x + veloX;            

                        y = y + (((int)((Math.random()*3)+1))-2) * veloY;}

                        //(int) Math.sin((double)x) * 2000;

  }

 

 

 

 

  public void movercontrario(int veloXcont, int veloYcont)

  {

            if (this.tipo==1){

                        x = x + veloXcont;

                        y = y + veloYcont;

                        x=x*(-1);

                        y=y*(-1);}

            else if (this.tipo == 2){

                        x = x + veloXcont;

                        y = y + ((int)((Math.random()*3)+1))-2;

                        x=x*(-1);

                        y=y*(-1);}

            else if (this.tipo == 3){

                        x = x + veloXcont;                  

                        y = y + (((int)((Math.random()*3)+1))-2) * veloYcont;

                        x=x*(-1);

                        y=y*(-1);}

                        //(int) Math.sin((double)x) * 200000;

  }

 

 

 

 

}

 

 

 

 

public class parque extends Applet implements MousemotionListener{

           

int pox

int poy

        //Posicion en el eje de las X donde ocurrio un CLICK

            int clickX;

        //Posicion en el eje de las X donde ocurrio un CLICK

        int clickY;

        //Posicion en el eje de las X donde se encuentra el mouse, no lo estamos usando para nada...

        pox;

        //Posicion en el eje de las y donde se encuentra el mouse, no lo estamos usando para nada...

        poy;

        //IMAGEN DE FONDO

            Image fondo;

        //IMAGENES DE LOS NIÑOS

            Image imagen1, imagen2, imagen3;

        // UNA 'VARIABLE' AUXILIAR DE LA CLASE NINO, QUE NO ESTAMOS USANDO

        nino ninoActual;

            //UN ARREGLO DE 2 NIÑOS, AQUI SE GUARDAN TODOS LOS NIÑOS

            nino ninos[] = new nino[2];

        //INDICE DE LOS 'FOR' EJEMPLO: for (i=1;1<=15;i++)

            int i;

        //... ANCHO DEL NIÑO... SE NECESITA PARA SABER

            //HASTA DONDE PUEDE LLEGAR EL NIÑO CUANDO SE MUEVE HACIA LA DERECHA.....

            //HACIA LA IZQUIERDA, ES 0 (CERO)....

        ancho=800;

            //... ANCHO DEL NIÑO... SE NECESITA PARA SABER

            //HASTA DONDE PUEDE LLEGAR EL NIÑO CUANDO SE MUEVE HACIA LA DERECHA.....

            //HACIA LA IZQUIERDA, ES 0 (CERO)....

        alto=600;

 

 

  public void init()

  //inicializar ambiente:

  //obtener las imagenes, instanciar los niños

  {

   fondo = getImage(getDocumentBase(),getParameter("fondo"));

   imagen1 = getImage(getDocumentBase(),getParameter("imagen1"));

   imagen2 = getImage(getDocumentBase(),getParameter("imagen2"));

   imagen3 = getImage(getDocumentBase(),getParameter("imagen3"));

   ninos[1] = new nino(30,200,251,106,1,2,1,imagen1);

   ninos[2] = new nino(200,150,125,115,2,1,2,imagen2);

   ninos[3] = new nino(/*800*/600,300,100,66,-1,2,3,imagen3);

  

   }

public void mouseMoved(MouseEvent me) 

     { 

          px = me.getX();

          py = me.getY();

 

repaint ()

}

 

   

 

  public boolean mouseDown(Event e, int x, int y) {

    setBackground(Color.red);

    botnmouse=true;

    muevemouse=false;

    clickX = x;

    clickY = y;

    for (i=1;i<=3;i++){

            if ((ninos[i].posX() < clickX) && (ninos[i].derX() > clickX) && (ninos[i].posY() < clickY) && (ninos[i].abaY() > clickY)){

                        ninos[i].asustar();

            }

    }

           

           

    return true;

  }

 

 // public void update(Graphics g)

 // {

 //         g.clipRect (ninoActual.posicionX()-1,ninoActual.posicionY()-1,ninoActual.TX()+1,ninoActual.TY()+1);

            //paint(g);

 // }

 

  public void dibujarnino (nino p, Graphics g)

  {

            g.drawImage(p.imagennino(), p.posX(), p.posY(), this);

//          if (p.tipo == 2){

//    g.setColor(Color.magenta);

//    g.drawString("el buey esta en "+p.posicionX()+", "+p.posicionY(),10,20);

//          }

// Preguntar si la posicion del nino mas su tamanio  < tamanio de la parque

                        //esto controla que el nino no se salga de la derecha ni de la izquierda

                        if ((p.posX()>800-30)||(p.posX()<800-770)){

                                   p.movercontrario (p.VXcont(),p.VYcont());}

                       

                        //if ((p.derX()<600-30)||(p.derX()600>ancho-570)){

                        //          p.mover(p.VY()*(-1), p.VX());}

                                  

                       

//if (ninos[1].derX() < ninos[2].posX()){

//          ninos[1] = new nino(30,200,251,106,1,-2,1,imagen1);

             

//Para evitar q1ue choque con otro nino, igual.

 

            p.mover(p.VX(), p.VY());

            ninoActual = p;

            //repaint();

            //update(g);

            //-- paint(g);

  }

 

  public void dibujarninos (Graphics g){

            for (i=1; i<=3; i++){

                        dibujarnino(ninos[i], g);

                        //repaint();

            }

            //paint(g);

  }

 

  public void paint (Graphics g)

  {

            g.drawImage(fondo,0,0,this);

            dibujarninos(g);

  }

}

 T.D.A.

 

El programa consta de un parque infantil, estilo los de la cadena de comida rápida McDonalds con un tobogán, una escalera para llegar hasta el tobogán y una piscina de pelotas, en este parque hay 4 niños, en edades comprendidas desde 1 hasta los 12 años, uno gordo y tres de contextura normal, el niño gordo sube la escalera mas lento que los otros tres, si al final del tobogán hay un niño obstruyendo en paso el niño que esta arriba le gritara al de abajo que se quite para poder lanzarse, el niño gordo se desliza a mayor velocidad que los demás niños del parque.

 

Clases

Clase niño: esta clase es la que va a crear a los niños

 

Clase parque: esta clase es lugar donde los niños van a jugar, aquí se encuentra el tobogán y la piscina de pelotas.

 

La herencia se ve en la clase parque para que los niños interactúen con el tobogán y la piscina de pelotas.

 

 

 

 

 

 

Dificultades encontradas

 

No se logro que el niño que esta arriba del tobogán le avise al que esta abajo a que se aparte para lanzarse. No se pudo manejar bien los applets y al momento de correr el programa hace lo que quiere, no se consiguió que el niño lanzara las pelotas de la piscina.

 

 

 

Conclusión

 

Este proyecto no se pudo desarrollar según las exigencias requeridas debido al poco entrenamiento impartido en clases, la programación sea cual sea debe ser practica, no teórica,  solo se recibieron las aproximadamente 5 clases donde se trabajaron códigos orientados a objetos, a nuestro criterio personal, son insuficientes los ejemplos prácticos mostrados en clase; los ejemplos de applets que funcionaban para lograr manejar imagen y audio no corrieron, se tuvo que recurrir a tutórales del la pagina del grupo Sun para poder desarrollar el proyecto, y a pesar del esfuerzo no se logro que el proyecto corriera, por ello se presento solo el código orientado a objetos, con especificaciones de lo que realizan  algunas líneas de código, para finalizar, se debe realizar secciones practicas ya que solo se aprende a programar programando, mostrando los codigos, y explicando sus funciones, solo la teoría da una idea de lo que es un programa pero solo el trato directo con el código da la destreza suficiente para poder realizar un proyecto de alta calidad y un optimo desempeño.