Guest User

Untitled

a guest
May 21st, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.28 KB | None | 0 0
  1. //Mi querido y estimado yo del futuro, te escribo estos comentarios para que recuerdes a posteriori como fue que desarrollaste
  2. //este ingenioso invento tuyo, programa que permiteme recordarte iniciaste un diciembre del 2011 y q t causo algunos dolores de cabeza
  3. //y unos muchos desvelos
  4. //ATT: Miguel Alberto Sediles Di Quinzio (Nefisco Ark Vampyr)
  5.  
  6. import java.awt.*;
  7. import java.awt.event.*;//import para eventos, ActionListener recuerdas?
  8. import java.util.Random;
  9. import javax.swing.*;
  10.  
  11. public class PruebaMouse12 extends JFrame implements ActionListener, MouseMotionListener{
  12.  //permiteme recordarte q alejo dijo q no   se podian 2 implement en un solo class -.-'' obviamente si se puede
  13.  
  14.     private JButton b1=new JButton();
  15.     private JButton b2=new JButton();
  16.     private JLabel l1=new JLabel();
  17.     private JLabel l2=new JLabel();
  18.     private JPanel p=new JPanel();
  19.     private Integer ll =0;
  20.     private Integer jj =0;
  21.    
  22.    public PruebaMouse12(){//constructor
  23.      
  24.       this.setSize(500,500);
  25.       p.addMouseMotionListener(this);
  26.       p.setLayout(null);
  27.      
  28.       p.setBackground(Color.CYAN);
  29.       p.setSize(500,500);
  30.       l1.setText("El Cielo es Verde?");  
  31.       l1.setBounds(225, 20, 150, 50);  
  32.       l2.setText("(Elija una opcion)");
  33.       l2.setBounds(225, 60, 150, 50);
  34.      
  35.       b1.setText("Si");
  36.       b1.setBounds(100,200,50,50);
  37.       b1.addActionListener(this);
  38.      
  39.       b2.setText("No");
  40.       b2.setBounds(300,200,50,50);
  41.       b2.addActionListener(this);      
  42.      
  43.       p.add(b1);
  44.       p.add(b2);
  45.       p.add(l1);
  46.       p.add(l2);
  47.       p.setVisible(true);
  48.      
  49.       this.addMouseMotionListener(this);
  50.       addMouseMotionListener(this);
  51.       this.add(p);
  52.       this.setResizable(false);//no ajustable tamaño
  53.       this.setLocationRelativeTo(null);//ventana centrada
  54.       this.setLayout(null);
  55.       this.setVisible(true);
  56.       this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);
  57.     }
  58.  
  59.     public void actionPerformed(ActionEvent e) {//metodo abstracto para crear las acciones
  60.          if(e.getSource()==b1){
  61.             JOptionPane.showMessageDialog(null, "Error la respuesta correcta es NO \n por favor presione el otro boton");}
  62.          if(e.getSource()==b2){  
  63.             JOptionPane.showMessageDialog(null, "¿Por Que Tardaste Tanto Responder? XD \n By Nefisco");}
  64.     }
  65.  
  66.     public void mouseMoved(MouseEvent e) {//metodo que usamos para crear el fuerte del programa, los movimientos y validaciones
  67.    
  68.         //mete presion
  69.          jj++;
  70.         if(jj==15){javax.swing.JOptionPane.showMessageDialog(null, "Empieza el juego");}
  71.         ll++;
  72.         if(ll==200){
  73.         Random r=new Random();
  74.         Robot movedor;
  75.             try {
  76.                 movedor = new Robot();
  77.            //adicion de Roberto Von Schoettler, posiciones aleatorias para la ubicacion despues del mensaje
  78.         int n= r.nextInt(3);
  79.        
  80.         if(n==0){javax.swing.JOptionPane.showMessageDialog(null, "Me estoy aburriendo...");
  81.         movedor.mouseMove((this.getX()+r.nextInt(500)),(this.getY()+r.nextInt(500)));}
  82.        
  83.         if(n==1){javax.swing.JOptionPane.showMessageDialog(null, "solo debes apretar un boton no es tan complicado");
  84. movedor.mouseMove((this.getX()+r.nextInt(500)),(this.getY()+r.nextInt(500)));}
  85.        
  86.         if(n==2){javax.swing.JOptionPane.showMessageDialog(null, "quiero ir al baño... puedes apurarte? ");
  87.       movedor.mouseMove((this.getX()+r.nextInt(500)),(this.getY()+r.nextInt(500)));}
  88.         //y asi controlas que no quede serca del boton y lo pueda tocar XD
  89.         //movedor es un objeto robot, toddavia no se bien lo q es una clase robot, pero puede mover el mouse...
  90.         //es lo qeue necesito por ahora ams adelante tienes que profundizar en esto si aun no lo has hecho
  91.         //(eres responsable seguro que si lo hiciste XD)
  92.         ll=0;  } catch (AWTException ex) {}   }
  93.        
  94.         if(jj==1200){
  95.         javax.swing.JOptionPane.showMessageDialog(null, "tengo que cerrarme, nos vemos en otro momento \n  (-: By Nefisco :-)");
  96.         System.exit(1);
  97.         }
  98.        
  99.  
  100.         //LIMITES
  101.          //limites bordes verticales
  102.        if((b2.getX()+50==500)||(b2.getX()==0))
  103.        {b2.setLocation(b1.getX()+220, b1.getY());}
  104.        
  105.        //limites bordes horinzontales    
  106.        if((b2.getY()+50==500)||(b2.getY()==0))
  107.        {b2.setLocation(300, 200);}
  108.        
  109.        
  110.       //colision contra b1 FUME LOCO TOTAL Y MASIVO XD validas que choque en x mediante un for como hicimos con los movimientos
  111.        //luego pones otro for paa validar la posicion de os ejes para verificar el caso, q si lo toco (los botones no pienses mal)
  112.        //un poco mas arriba o mas abajo, mas a la derecha o ams a la izquierda
  113.      
  114. for(int j=0;j<50;j++) {      
  115.     if((b1.getX()+j==b2.getX())||((b1.getX()==b2.getX()+j))){
  116.         for(int k=0;k<50; k++){
  117.             if((b1.getY()+k==b2.getY())||((b1.getY()-k==b2.getY()))){
  118.                  b2.setLocation(300,200);
  119.                          }
  120.                                                                     }  
  121.                                                               }
  122.                      }//te parecera comico recordar que despues de validar 2 movimientos (choque izquierdo y derecho) vi que con eso
  123.                        // se valido todo jajajaja
  124.  
  125. //MOVIMIENTOS
  126. //cuando trates con el puntero se toma normal, cuando trates con el boton se aumenta o disminuya solamente (aumentar x es ir a la izkierda)
  127.        
  128.       for(int i=0;i<=50;i++)
  129.       {//lado izquierdo
  130.           if((e.getY()==b2.getY()+i)&&(e.getX()+30>=b2.getX())&&(e.getX()<=b2.getX())){
  131.               //le sumo i para validar cualquier punto del boton, recuerda que es de 50x50, osea q son 50 puntos por cada lado
  132.        //se le suma el 10 al eje de las X para verificar si esta proximo al boton, se compara con el eje x del boton
  133.              // se debe controlar que no afecte al otro
  134.           b2.setLocation(b2.getX()+10,b2.getY());
  135.           break;
  136.           }
  137.           //lado derecho
  138.           if((e.getY()==b2.getY()+i)&&((e.getX()-80)<=b2.getX())&&(e.getX()>=b2.getX())){
  139.           b2.setLocation(b2.getX()-10,b2.getY());
  140.           break;
  141.           }
  142.            //lado superior  
  143.            if((e.getX()==b2.getX()+i)&&((e.getY()+30)>=b2.getY())&&(e.getY()<=b2.getY())){
  144.            b2.setLocation(b2.getX(),b2.getY()+10);
  145.            break;
  146.            }
  147.          //lado inferior
  148.            if((e.getX()==b2.getX()+i)&&((e.getY()-80)<=b2.getY())&&(e.getY()>=b2.getY())){
  149.            b2.setLocation(b2.getX(),b2.getY()-10);
  150.            break;
  151.            }
  152.      }
  153.  
  154.  
  155. //como veras esto te costo mucho pero pudiste... y a conciencia no trabajabas al 100%
  156.  
  157.  
  158. ////diagonal arriba izquierda-->abajo derecha
  159.  if((e.getX()<=b2.getX())&&(e.getY()<=b2.getY())&&(b2.getY()-e.getY()<=30)&&(b2.getX()-e.getX()<=30))
  160.     {//OptionPane.showMessageDialog(null,"X e="+e.getX()+"b2="+b2.getX()+"\n Y e="+e.getY()+"b2="+b2.getY());
  161.         b2.setLocation(b2.getX()+10,b2.getY()+10);}
  162.  
  163.     //tras agonicos esfuerzos y muchos intentos lo lograste, yu lo lograste,
  164.     //entendiste que debias validar la distancia de los objetos, restandolos, tanto X como Y
  165.     //primero el boton q es mayor siempre para este caso y luego el puntero, para los otros variara T_T
  166.  
  167.  
  168.  
  169.  //diagonal arriba derecha--> sbsjo izquierda
  170.  if((e.getX()<=b2.getX()+50)&&(e.getY()<=b2.getY())&&(b2.getY()-e.getY()<=30)&&(e.getX()-b2.getX()>=30))
  171.     {b2.setLocation(b2.getX()-10,b2.getY()+10);}
  172.  //"logica": a las X le sumas 50 para obtener el lado derecho del boton... si lo sumas a las Y obtienes el lado inferior
  173.  
  174. //        //diagonal abajo izquierda--> arriba derecha
  175. if((e.getX()<=b2.getX())&&(e.getY()<=b2.getY()+50)&&((b2.getY()+70)-e.getY()<=30)&&(b2.getX()-e.getX()<=30))
  176.     {b2.setLocation(b2.getX()+10,b2.getY()-10);}
  177.  
  178.  
  179. //        //diagonal abajo derecha-->arriba izquierda
  180. if((e.getX()>=b2.getX()+50)&&(e.getY()<=b2.getY()+50)&&((b2.getY()+70)-e.getY()<=30)&&(e.getX()-(b2.getX()+50)<=30))
  181.     {b2.setLocation(b2.getX()-10,b2.getY()-10);}
  182.  
  183.            }  
  184.     public void mouseDragged(MouseEvent e) {
  185.         throw new UnsupportedOperationException("Not supported yet.");
  186.     }
  187.  
  188.  
  189.     public static void main (String[] args){
  190.  
  191.    PruebaMouse12 ds = new PruebaMouse12();
  192.      }
  193.  
  194. }
Add Comment
Please, Sign In to add comment