package pack1;
import java.util.Timer;
import java.util.TimerTask;
public class BallKollision {
Timer kollision;
    public BallKollision() {
        kollision = new Timer();
        kollision.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
                // TODO Auto-generated method stub
                if (Var.bally +50 >= Var.screenHöhe) {
                   
                    Var.ballriy = -1;
                   
                }
               
                if (Var.bally <= 0)  {
                   
                    Var.ballriy = 1;
                }
                if (Var.ballx+20 >= Var.screenBreite) {
                   
                    Var.ballx = Var.screenBreite/2-10;
                    Var.bally =Var.screenHöhe/2-10;
                   
                    Var.ballrix = -1;
                    Var.playerpoints += 1;
                }
               
                if (Var.ballx <= 0)  {
                   
                    Var.ballx = Var.screenBreite/2-10;
                    Var.bally =Var.screenHöhe/2-10;
                   
                    Var.ballrix = 1;
                    Var.gegnerpoints += 1;
                   
                }
               
                if ((Var.ballx < Var.x+25) && (Var.ballx > Var.x)&&(Var.bally -20 <= Var.y+150) && (Var.bally>Var.y))  {
                   
                    Var.ballrix = 1;
                }
               
               
               
if ((Var.ballx < Var.gegnerx) && (Var.ballx > Var.gegnerx-25)&&(Var.bally -20 <= Var.gegnery+150) && (Var.bally>Var.gegnery))  {
                   
                    Var.ballrix = -1;
                }
               
               
               
            }
           
           
           
           
        }, 0, 3);
    }
}
	package pack1;
import java.util.Timer;
import java.util.TimerTask;
public class BallMovement {
Timer move;
    public BallMovement() {
    move = new Timer();
    move.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
         Var.ballx += Var.ballrix;
         Var.bally += Var.ballriy;
           
        }
       
       
       
       
       
       
       
    }, 0, 3);
   
   
   
   
   
   
   
    }
}
	package pack1;
import java.awt.*;
import javax.swing.JLabel;
public class Draw extends JLabel {
    /**
     *
     */
    private static final long serialVersionUID = 1L;
    protected void paintComponent (Graphics g) {
       
        super.paintComponent( g);
       
        Graphics2D g2D = (Graphics2D) g;
        g2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
       
        g.setColor(Color.black);
        g.fillRect(0, 0, Var.screenBreite, Var.screenHöhe);                    // hier taucht das problem auf, dass das fenster beim abspielen des programms nicht schwarz ist
          
        g.setColor(Color.white);
       
        for (int i = 0; i <= 30; i++)  {
            g.fillRect(Var.screenBreite/2-5, i*20, 10, 10);
           
        }
       
     g.fillRect(Var.x, Var.y, 25, 150);
     g.fillRect(Var.gegnerx, Var.gegnery, 25, 150);   
     g.drawString("Meine Punkte"+Var.playerpoints, Var.screenBreite/2-95, 75);
     g.drawString("deine Punkte"+Var.gegnerpoints, Var.screenBreite/2+95, 75);
     g.fillRect(Var.ballx, Var.bally, 20, 20);
    
    
        repaint();
   
       
       
       
       
       
       
           
       
       
       
       
       
       
       
       
       
       
       
    }
   
   
}
	package pack1;
import java.util.Timer;
import java.util.TimerTask;
public class GegnerMovement {
Timer move;
    public GegnerMovement() {
        move = new Timer();
        move.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
               
                  {
                   
                    if (Var.ballx >= Var.screenBreite/2-10)  {
                       
                        if (Var.bally == Var.gegnery)  {
                           
                           
                        }
                       
                        else if (Var.bally > Var.gegnery+75)  {
                           
                            if (Var.gegnery <= Var.screenHöhe-200) {
                               
                               
                                Var.gegnery += 2;
                            }else if (Var.gegnery < Var.gegnery+75)  {
                               
                                if (Var.gegnery >= 20)  {
                                    Var.gegnery -= 2;
                                   
                                   
                                }
                            }
                        }
                       
                    }
                   
                   
                }
               
               
               
               
           
           
           
            }
        }, 0, 3);
    }
}
	package pack1;
import javax.swing.*;
public class GUI {
    public GUI() {
        // TODO Auto-generated constructor stub
        Var.jf1 = new JFrame();
        Var.jf1.setSize(Var.screenBreite, Var.screenHöhe);
        Var.jf1.setTitle("Pong");
        Var.jf1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Var.jf1.setLayout(null);
        Var.jf1.setResizable(false);
        Var.jf1.setVisible(true);
        Var.jf1.setLocationRelativeTo(null);
        Var.jf1.addKeyListener(new KeyHandler());
        Var.jf1.requestFocus();
        Var.jf1.getContentPane().setBackground(java.awt.Color.BLACK);
       
        Draw lbldraw = new Draw();
        lbldraw.setBounds( 0,0, Var.screenBreite, Var.screenHöhe );
        lbldraw.setVisible(true);
        Var.jf1.add(lbldraw);
       
       
}
}
	package pack1;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
public class KeyHandler implements KeyListener {
    @Override
    public void keyPressed(KeyEvent e) {
        // TODO Auto-generated method stub
        if (e.getKeyCode() == KeyEvent.VK_W) {
            Var.moveup = true;
        }
        else if (e.getKeyCode() == KeyEvent.VK_S) {
            Var.movedown = true;
        }
    }
    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub
        if (e.getKeyCode() == KeyEvent.VK_W) {
            Var.moveup = false;
        }
        else if (e.getKeyCode() == KeyEvent.VK_S) {
            Var.movedown = false;
        }
    }
    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub
    }
}
	package pack1;
import java.util.Timer;
import java.util.TimerTask;
public class Movement {
Timer move;
    public Movement() {
        move = new Timer();
        move.scheduleAtFixedRate(new TimerTask() {
            @Override
            public void run() {
               
                if (Var.moveup == true )  {
                   
                    if (Var.y >= 20) {
                       
                        Var.y -= 2;
                    }
                   
           
                }
                else if (Var.movedown == true )  {
                   
                    if (Var.y <= 400)  {
                       
                        Var.y += 2;
                    }
                   
                   
                }
                   
                   
                   
                   
                   
                   
            }
           
           
           
           
           
           
           
        }, 0, 3);
    }
}
	package pack1;
import javax.swing.*;
public class Var {
     static JFrame jf1;
     static int screenBreite = 800, screenHöhe = 600;
     static int x = 20, y = 185;
     static int gegnerx = 755, gegnery = 185;
     static int ballx = 200, bally = 200;
     static boolean moveup = false, movedown = false ;
     static int playerpoints = 0, gegnerpoints = 0;
     static int ballrix = 1;
     static int ballriy = -1;
    public Var() {
        // TODO Auto-generated constructor stub
    }
}
	if (Var.ballx >= Var.screenBreite/2-10)  {                     
    if (Var.bally == Var.gegnery)  {
    }
    else if (Var.bally > Var.gegnery+75)  {
        if (Var.gegnery <= Var.screenHöhe-200) {
            Var.gegnery += 2;
        } else if (Var.gegnery < Var.gegnery+75)  {
            if (Var.gegnery >= 20)  {
                Var.gegnery -= 2;
            }
        }
    }
}
	if (Var.ballx >= Var.screenBreite/2-10)  {                      
    if (Var.bally == Var.gegnery)  {
    } else if (Var.bally > Var.gegnery+75)  {
        if (Var.gegnery <= Var.screenHöhe-200) {
            Var.gegnery += 2;
        }
    } else if (Var.bally < Var.gegnery+75)  {
        if (Var.gegnery >= 20)  {
            Var.gegnery -= 2;
        }
    }
}
	if (Var.ballx >= Var.screenBreite/2-10)  {                       
    if (Var.bally == Var.gegnery)  {
    } else if (Var.bally > Var.gegnery+75)  {
        if (Var.gegnery <= Var.screenHöhe-200) {
            Var.gegnery += 2;
        }
    } else {
        if (Var.gegnery >= 20)  {
            Var.gegnery -= 2;
        }
    }
}