/** Основной цикл программы. Тут происходят все важные действия */ 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!"); }
@Override public Surface clear() { canvas.clear(); return this; }