document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import java.awt.Color;
  2. import java.awt.Dimension;
  3. import java.awt.Font;
  4. import java.awt.Graphics;
  5. import java.awt.Graphics2D;
  6. import java.awt.event.ActionEvent;
  7. import java.awt.event.KeyEvent;
  8. import java.awt.event.KeyListener;
  9. import java.awt.font.FontRenderContext;
  10. import java.awt.font.TextLayout;
  11. import java.awt.geom.Ellipse2D;
  12. import java.awt.geom.Point2D;
  13. import java.awt.geom.Rectangle2D;
  14. import java.io.File;
  15. import java.io.IOException;
  16. import java.util.prefs.Preferences;
  17. import javax.sound.sampled.AudioInputStream;
  18. import javax.sound.sampled.AudioSystem;
  19. import javax.sound.sampled.Clip;
  20. import javax.sound.sampled.LineUnavailableException;
  21. import javax.sound.sampled.UnsupportedAudioFileException;
  22. import javax.swing.AbstractAction;
  23. import javax.swing.Action;
  24. import javax.swing.JComponent;
  25. import javax.swing.JFrame;
  26. import javax.swing.Timer;
  27. /**
  28.  * Write a description of class KeyMon here.
  29.  * Class yang berisikan button untuk bermain game
  30.  * @author Fitrah Arie Ramadhan dan Ivan Muhammad Nizar
  31.  * @version Final Version, 8 Januari 2021
  32.  */
  33. class KeyMon implements KeyListener {
  34.     public boolean w1, s, up, down;
  35.     // Monitors keyboard events
  36.     World wad = new World();
  37.     public KeyMon(World w) {
  38.     this.w = w;
  39.     }
  40.     public void keyPressed(KeyEvent e) {
  41.         //running Game
  42.     if(w.GameStatus == 1)
  43.     { // If the game is running
  44.         if(e.getKeyCode() == KeyEvent.VK_SPACE)
  45.         { // If SPACE is pressed
  46.         if(BallBreaker.tmr.isRunning())
  47.         {
  48.             BallBreaker.tmr.stop();
  49.         }
  50.         else
  51.         {
  52.             BallBreaker.tmr.start(); // If not resume it
  53.         }
  54.         return;
  55.         }
  56.         else if(e.getKeyCode() == KeyEvent.VK_Q)
  57.         {
  58.             w.resetPlayer();
  59.         w.resetBricks();
  60.         w.resetStats();
  61.         BallBreaker.tmr.start();
  62.         }
  63.         else if(e.getKeyCode() == KeyEvent.VK_ESCAPE)
  64.         {
  65.             w.GameStatus = 3;
  66.         w.repaint();  
  67.         }
  68.     }else if(w.GameStatus == 0){
  69.         if(e.getKeyCode() == KeyEvent.VK_ESCAPE) {
  70.         w.resetPlayer();
  71.         w.resetBricks();
  72.         w.resetStats();  
  73.         BallBreaker.tmr.start();
  74.         }
  75.         if(e.getKeyCode() == KeyEvent.VK_R) {
  76.         w.resetScores();
  77.         w.repaint();
  78.         }
  79.         if(e.getKeyCode() == KeyEvent.VK_M) {
  80.         w.GameStatus =2;
  81.         w.repaint();
  82.         }
  83.     }else if(w.GameStatus == 2){ //Tampilan awal tekan space untuk main
  84.         if(e.getKeyCode() == KeyEvent.VK_SPACE) { // If \'SPACE\' is pressed
  85.         w.GameStatus = 3;
  86.         w.repaint();
  87.         }
  88.     }else if(w.GameStatus == 3){
  89.         if(e.getKeyCode() == KeyEvent.VK_SPACE){
  90.             w.GameStatus = 1;
  91.             BallBreaker.tmr.start();
  92.             // Initialize the scene
  93.             w.initscene(w.Difficulty);
  94.         }
  95.         if(e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_A){
  96.             if (w.Difficulty > 0)
  97.                 {
  98.                     w.Difficulty--;
  99.                 }
  100.                 else
  101.                 {
  102.                     w.Difficulty = 2;
  103.                 }
  104.                 w.repaint();
  105.         }
  106.         if(e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_D){
  107.             if (w.Difficulty < 3)
  108.                 {
  109.                     w.Difficulty++;
  110.                 }
  111.                 else
  112.                 {
  113.                     w.Difficulty = 0;
  114.                 }
  115.                 w.repaint();
  116.         }
  117.     }
  118.     if(BallBreaker.tmr.isRunning()) { // If the game is running
  119.         w.handleEvent(e); // Handle the "Left" and "Right" arrow keys
  120.         if(e.getKeyCode() == KeyEvent.VK_A){
  121.            
  122.         }
  123.         else if(e.getKeyCode() == KeyEvent.VK_D){
  124.            
  125.         }
  126.        
  127.     }
  128.     }
  129.     public void keyTyped(KeyEvent e) {
  130.    
  131.     }
  132.     public void keyReleased(KeyEvent e) {
  133.     int id = e.getKeyCode();
  134.         if (id == KeyEvent.VK_W)
  135.         {
  136.             w1 = false;
  137.         }
  138.         else if (id == KeyEvent.VK_S)
  139.         {
  140.             s = false;
  141.         }
  142.         else if (id == KeyEvent.VK_UP)
  143.         {
  144.             up = false;
  145.         }
  146.         else if (id == KeyEvent.VK_DOWN)
  147.         {
  148.             down = false;
  149.         }
  150.     }
  151.     public World w;
  152. }
');