Yehonatan

Keys

Nov 25th, 2012
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.55 KB | None | 0 0
  1.  
  2.  
  3.  
  4. public class BasicKeys  {
  5.  
  6.     private boolean[] keys = new boolean[4];
  7.     private int double x,y;
  8.    
  9.     public static void main(String args[]) {
  10.    
  11.         JFrame f = new JFrame("Basic keys");
  12.         f.setResizable(false);
  13.         f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  14.        
  15.         f.add(new Keys());
  16.        
  17.         f.pack();
  18.        
  19.         f.setVisible(true);
  20.         f.setLocationRelativeTo(null);
  21.     }
  22.  
  23. }
  24.  
  25. public class Keys extends JPanel implements ActionListener{
  26.  
  27.     public Keys()
  28.     {
  29.         setPreferredSize(new Dimension(500, 500));    
  30.         setFocusable(true);
  31.         addKeyListener(new KeyController());
  32.        
  33.     }
  34.    
  35.     @Override
  36.     public void paintComponent(Graphics g) {
  37.         super.requestFocus();
  38.         super.paintComponent(g);
  39.         Graphics2D g2d = (Graphics2D)g;
  40.        
  41.         g2d.fillrect(this.x, this.y, 40, 40);
  42.        
  43.         Thread.sleep(10);
  44.        
  45.         g2d.dispose();
  46.         repaint();
  47.     }
  48.    
  49.     @Override
  50.     public void actionPerformed(ActionEvent e) {
  51.         repaint();
  52.     }
  53.    
  54.    
  55.         private class KeyController extends KeyAdapter {
  56.  
  57.        
  58.         private double dx, dy;
  59.  
  60.  
  61.         public KeyController()
  62.         {
  63.             for(int i= 0; i < 4; i++)
  64.             {
  65.                 keys[i] = false;
  66.             }
  67.         }
  68.  
  69.  
  70.         @Override
  71.         public void keyPressed(KeyEvent e) {
  72.             switch(e.getKeyCode())
  73.             {
  74.                 case KeyEvent.VK_RIGHT:
  75.                     dx = 2;
  76.                     if(keys[2])
  77.                         dy = -2;
  78.                     else if(keys[3])
  79.                             dy = 2;
  80.                     keys[0] = true;
  81.                 break;
  82.                 case KeyEvent.VK_LEFT:
  83.                     dx = -2;
  84.                     if(keys[2])
  85.                        dy = -2;
  86.                     else if(keys[3])
  87.                        dy = 2;
  88.  
  89.                     keys[1] = true;
  90.                 break;
  91.                 case KeyEvent.VK_UP:
  92.                     dy = -2;
  93.                     if(keys[0])
  94.                         dx = 2;
  95.                     else if(keys[1])
  96.                         dx = -2;
  97.                     keys[2] = true;
  98.                 break;
  99.                 case KeyEvent.VK_DOWN:
  100.                     dy = 2;
  101.                     if(keys[0])
  102.                         dx = 2;
  103.                     else if(keys[1])
  104.                         dx = -2;
  105.                     keys[3] = true;
  106.                 break;
  107.                 case KeyEvent.VK_ESCAPE:
  108.                     showMenu();
  109.                 break;
  110.             }
  111.            
  112.            
  113.             sqr.setDx(dx);
  114.             sqr.setDy(dy);
  115.            
  116.         }
  117.        
  118.         @Override
  119.         public void keyReleased(KeyEvent e){
  120.  
  121.             if((e.getKeyCode() ==  KeyEvent.VK_LEFT))
  122.             {
  123.                keys[1] = false;
  124.                this.dx = 0;
  125.             }
  126.             else if((e.getKeyCode() == KeyEvent.VK_RIGHT))
  127.             {
  128.                keys[0] = false;
  129.                this.dx = 0;
  130.             }
  131.             else if((e.getKeyCode() == KeyEvent.VK_UP))
  132.             {
  133.                 keys[2] = false;
  134.                 this.dy = 0;
  135.             }
  136.             else if((e.getKeyCode() ==  KeyEvent.VK_DOWN))
  137.             {
  138.                 keys[3] = false;
  139.                 this.dy = 0;
  140.             }
  141.            
  142.             sqr.setDx(this.dx);
  143.             sqr.setDy(this.dy);
  144.            
  145.         }
  146.  
  147.        
  148.     }
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment