Не планировал переходить к публикации заметок о создании конкретных приложений, пока мы не выложу все лекции по ключевым моментам в java. Однако по просьбам трудящихся. Люди просят, значит приступим. Честно признаюсь — лекции лишь адаптации видеоуроков, которые записаны не мной. Ну что поехали. Задача сделать простое 2D гонки.
Открываем Netbeans, нажимаем Файл — Создать проект. В группе «категории» выбираем Java, а в группе «проекты» пункт Приложение java.
В строке Имя проекта введём, например, Gonki.
Убираем комментарии, чтобы у нас остался следующий код в файле gonki.java
package gonki; public class Gonki { public static void main(String[] args) { } }
Теперь создадим папку для ресурсов игры. Для этого нажмём ПКМ (Правая Кнопка Мыши) по пакету gonki и выберем Новый — папка. В открывшемся окне в строке Имя папки напишем res, после чего нажмём Готово.
В папке res будут храниться следующие изображения:
1) Дорога (1200×600)
2) Машинка игрока, когда она «едет прямо» и когда она поворачивает вправо и влево.
3) Машинка противников.
Графика не моя, я её скачал.
Отправить изображения в папку res очень просто. Cохраняем их в какую-либо папку, выделяем, нажимаем ПКМ — копировать. Теперь жмём ПКМ по папке res и выбираем Вставить.
Теперь создадим игровое окно. Но перед этим необходим импортировать библиотеку javax.swing. Для этого в файле gonki.java ниже строки объявления пакета пишем
import javax.swing.*;
Далее в методе main пишем
JFrame window = new JFrame ("Простые гоночки на Java");
То есть мы создали ссылочную переменную window типа JFrame, которая указывает на объект JFrame, конструктор которого принимает в данном случае заголовок окна («Простые гоночки на Java»).
Ниже пропишем следующее
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Мы вызвали метод объекта window setDefaultCloseOperation с константой JFrame.EXIT_ON_CLOSE. Это необходимо для того, чтобы окно с игрой можно было закрыт нажатием Левой Кнопкой Мыши (ЛКМ).
Соответственно код файла gonki.java выглядит так:
package gonki; import javax.swing.*; public class Gonki { public static void main(String[] args) { JFrame window = new JFrame ("Простые гоночки на Java"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }
Далее устанавливаем размеры окна. Пишем ниже:
window.setSize(1100, 600);
Метод setSize принимает ширину и высоту окна программы. Однако если мы сейчас запустим программу, то ничего не произойдёт. Потому что нужно сделать наш фрейм видимым. Для этого ниже прописываем:
window.setVisible(true);
Попробуем запустить программу и получим окно заданных размеров. Код файла gonki.java покавыглядит так:
package gonki; import javax.swing.*; public class Gonki { public static void main(String[] args) { JFrame window = new JFrame ("Простые гоночки на Java"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setSize(1100, 600); window.setVisible(true); } }
Теперь помимо того, что мы скопировали наши файлы с графикой в папку res, давайте снова выделим рисунки, нажмём копировать и перейдём в папку с нашим проектом. Как правило NetBeans хранит файлы проектов в папке «мои документы» — NetBeansProjects. В папке NetBeansProjects находим название нашего проекта — gonki, а в папке gonki папку res — туда тоже копируем графические файлы.
Пришло время создать фрейм с фоном дороги.
Теперь в папке gonki создадим файл road.java (дорога) с вот таким кодом
package gonki; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import javax.swing.*; public class Road extends JPanel { Image img = new ImageIcon("res/doroga.png").getImage(); public void paint(Graphics g) { g = (Graphics2D) g; g.drawImage(img, 0, 0, null); } }
Ключевое слово extends обозначает Наследование. Класс Road расширяет Jpanel. Дорога занимает всю область главного фрейма. Image img = new ImageIcon(«res/doroga.png»).getImage(); — конструктор объекта класса ImageIcon принимает путь к изображению, после чего вызывается метод getImage(), который и возвращает нам Image.
Опишу я его позже.
А файл gonki.java изменим следующим образом:
package gonki; import javax.swing.*; public class Gonki { public static void main(String[] args) { JFrame window = new JFrame ("Простые гоночки на Java"); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); window.setSize(1100, 600); window.add(new Road()); window.setVisible(true); } }
Дописывается….