Вне урока. Пишем простые гонки на java часть 1.

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

Дописывается….