Beispiel #1
0
  /** Основной цикл программы. Тут происходят все важные действия */
  public void run() throws Exception {
    // Создаем холст для отрисовки.
    Canvas canvas = new Canvas(width, height);

    // Создаем объект "наблюдатель за клавиатурой" и стартуем его.
    KeyboardObserver keyboardObserver = new KeyboardObserver();
    keyboardObserver.start();

    // Исполняем цикл, пока игра не окончека
    while (!isGameOver) {
      // "наблюдатель" содержит события о нажатии клавиш?
      if (keyboardObserver.hasKeyEvents()) {
        KeyEvent event = keyboardObserver.getEventFromTop();

        // Если "стрелка влево" - сдвинуть фигурку влево
        if (event.getKeyCode() == KeyEvent.VK_LEFT) stand.moveLeft();
        // Если "стрелка вправо" - сдвинуть фигурку вправо
        else if (event.getKeyCode() == KeyEvent.VK_RIGHT) stand.moveRight();
        // Если "пробел" - запускаем шарик
        else if (event.getKeyCode() == KeyEvent.VK_SPACE) ball.start();
      }

      // двигаем все объекты
      move();

      // проверяем столкновения
      checkBricksBump();
      checkStandBump();

      // проверяем, что шарик мог улететь через дно.
      checkEndGame();

      // отрисовываем все объекты
      canvas.clear();
      draw(canvas);
      canvas.print();

      // пауза
      Thread.sleep(300);
    }

    // Выводим сообщение "Game Over"
    System.out.println("Game Over!");
  }
Beispiel #2
0
 @Override
 public Surface clear() {
   canvas.clear();
   return this;
 }