Advertisement
Guest User

KURWAMACCCC

a guest
Jan 21st, 2020
812
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. import javax.swing.*;
  2. import java.awt.event.*;
  3. import java.awt.*;
  4. import java.awt.geom.*;
  5.  
  6. public class Program
  7. {
  8. public static void main(String[] args)
  9. {
  10. javax.swing.SwingUtilities.invokeLater(new Runnable()
  11. {
  12. public void run()
  13. {
  14. Plansza p;
  15. p=new Plansza();
  16.  
  17. JFrame jf=new JFrame();
  18. jf.add(p);
  19.  
  20. jf.setTitle("Test grafiki");
  21. jf.setSize(400,370);
  22. jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23. jf.setVisible(true);
  24. }
  25. });
  26. }
  27. }
  28.  
  29. class Plansza extends JPanel implements MouseMotionListener
  30. {
  31. Belka b;
  32. Kulka a;
  33. SilnikKulki s;
  34.  
  35. Plansza()
  36. {
  37. super();
  38. addMouseMotionListener(this);
  39.  
  40. b=new Belka(100);
  41. a=new Kulka(this,100,100,1,1);
  42. s=new SilnikKulki(a);
  43. }
  44.  
  45. public void paintComponent(Graphics g)
  46. {
  47. super.paintComponent(g);
  48. Graphics2D g2d=(Graphics2D)g;
  49.  
  50. g2d.fill(a);
  51. g2d.fill(b);
  52. }
  53.  
  54. public void mouseMoved(MouseEvent e)
  55. {
  56. b.setX(e.getX()-50);
  57. repaint();
  58. }
  59.  
  60. public void mouseDragged(MouseEvent e)
  61. {
  62.  
  63. }
  64. }
  65.  
  66. class Belka extends Rectangle2D.Float
  67. {
  68. Belka(int x)
  69. {
  70. this.x=x;
  71. this.y=170;
  72. this.width=60;
  73. this.height=10;
  74. }
  75.  
  76. void setX(int x)
  77. {
  78. this.x=x;
  79. }
  80. }
  81.  
  82. class SilnikKulki extends Thread
  83. {
  84. Kulka a;
  85.  
  86. SilnikKulki(Kulka a)
  87. {
  88. this.a=a;
  89. start();
  90. }
  91.  
  92. public void run()
  93. {
  94. try
  95. {
  96. while(true)
  97. {
  98. a.nextKrok();
  99. sleep(15);
  100. }
  101. }
  102. catch(InterruptedException e){}
  103. }
  104. }
  105.  
  106. class Kulka extends Ellipse2D.Float
  107. {
  108. Plansza p;
  109. int dx,dy;
  110.  
  111. Kulka(Plansza p,int x,int y,int dx,int dy)
  112. {
  113. this.x=x;
  114. this.y=y;
  115. this.width=10;
  116. this.height=10;
  117.  
  118. this.p=p;
  119. this.dx=dx;
  120. this.dy=dy;
  121. }
  122.  
  123. void nextKrok()
  124. {
  125. x+=dx;
  126. y+=dy;
  127.  
  128. if(getMinX()<0 || getMaxX()>p.getWidth()) dx=-dx;
  129. if(getMinY()<0 || getMaxY()>p.getHeight()) dy=-dy;
  130. if(getMaxY()==p.b.getMaxY() && (getMinX()) >= p.b.getMinX() && getMaxX()<=p.b.getMaxX()) dy = -dy;
  131. if((getMaxX()==p.b.getMaxX() || getMinX()==p.b.getMinX()) && (getMinY()) >= p.b.getMinY() && getMaxY()<=p.b.getMaxY()) dx = -dx;
  132. p.repaint();
  133. }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement