Advertisement
daniv1

Untitled

May 4th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.11 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.*;
  3. import java.awt.Graphics;
  4. import javax.swing.JFrame;
  5. import javax.swing.JPanel;
  6.  
  7. public class Animation {
  8.  
  9.     JFrame frame;            
  10.     Figura figura;
  11.  
  12.     private int oneX = 200;
  13.     private int oneY = 200;
  14.  
  15.     private int dX = 1;
  16.     private int dY = 1;
  17.    
  18.     public static void main(String[] args)
  19.     {
  20.         new Animation().go();
  21.     }
  22.  
  23.     private void go()
  24.     {
  25.         frame = new JFrame("Test");
  26.         figura = new Figura();
  27.         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  28.         frame.setResizable(false);
  29.         frame.setSize(1900, 1000);
  30.         frame.add(figura);
  31.         frame.setVisible(true);
  32.         moveIt();
  33.        
  34.     }
  35.  
  36.     class Figura extends JPanel
  37.     {    
  38.         public void paintComponent(Graphics g)
  39.         {
  40.        
  41.             int xPoints[] = new int [5];
  42.            
  43.             int yPoints[] = new int[5];
  44.             xPoints[0] = oneX;
  45.             yPoints[0] = oneY;
  46.            
  47.             xPoints[1] = oneX + 25;
  48.             yPoints[1] = oneY - 25;
  49.             xPoints[2] = oneX + 25;
  50.             yPoints[2] = oneY  ;
  51.             xPoints[3] = oneX + 50;
  52.             yPoints[3] = oneY;
  53.             xPoints[4] = oneX + 25;
  54.             yPoints[4] = oneY + 25;
  55.            
  56.             g.setColor(Color.orange);
  57.             g.fillPolygon(xPoints, yPoints, xPoints.length);
  58.         }
  59.     }
  60.  
  61.     private void moveIt()
  62.     {
  63.         while (true)
  64.         {
  65.            
  66.             oneX +=dX;
  67.             if ( oneX + dX < 210) {
  68.                 oneY = (int) (200 * Math.cos(Math.toRadians((oneX))))+ 200;
  69.             }
  70.            
  71.            
  72.             //TODO change magical number
  73.             if (oneX + dX < 0 || oneX + dX > 210) {
  74.                 dX = -dX;
  75.             }
  76.             try
  77.             {
  78.                 Thread.sleep(1);
  79.             }
  80.             catch (Exception e)
  81.             {
  82.                 e.printStackTrace();
  83.             }
  84.             frame.repaint();
  85.         }
  86.     }
  87.    
  88.     //тут можна дописати новий метод
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement