Не планировал переходить к публикации заметок о создании конкретных приложений, пока мы не выложу все лекции по ключевым моментам в 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);
}
}
Дописывается….