Skip to content

Гоночная игра — это классическая 2D игра. Включает в себя различные уровни сложности, звуковые эффекты, дополнитьлные опции: рекорды, кастомизация транспорта.

Notifications You must be signed in to change notification settings

Dashulik10/TrafficRacerJava

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚗 Гоночная Игра на JavaFX

Добро пожаловать в Гоночную Игру, которая реализована с использованием JavaFX. Это увлекательный проект, где игрок управляет автомобилем, избегая препятствий и стремясь набрать как можно больше очков. Игра поддерживает различные режимы сложности, визуальные эффекты, анимации, а также инструменты для записи результатов.


📋 Оглавление

  1. Описание проекта
  2. Особенности
  3. Требования
  4. Установка и запуск
  5. Структура проекта
  6. Документация основных функций

📖 Описание проекта

Гоночная игра — это классическая 2D игра, в которой игроку предоставляется возможность управлять автомобилем, избегая столкновений с другими машинами на дороге. Главная цель — набрать максимальное количество очков, удерживая высокую скорость и избегая препятствий.


✨ Особенности

  • Реализация игрового цикла с использованием AnimationTimer.
  • 🎶 Звуковые эффекты для событий (например, столкновения, завершения игры).
  • 💥 Визуальные эффекты взрыва при столкновении.
  • 📊 Отображение статистики для игрока (очки, скорость, время).
  • Поддержка разных уровней сложности (через класс DifficultyMode).
  • Система записи рекордов с проверкой нового результата.
  • Адаптивный дизайн интерфейса на основе JavaFX.

💻 Требования

Для запуска игры:

  • JDK версии 17+: Установить JDK
  • Maven (для сборки и управления проектом).
  • Операционная система: Windows, macOS или любая Linux-система.

🚀 Установка и запуск

Следуйте этим инструкциям, чтобы запустить проект на локальной машине.

1. Клонирование репозитория

Сначала клонируйте репозиторий игры:

git clone https://github.com/username/game-project.git
cd game-project

2. Сборка проекта

Если у вас установлен Maven, выполните в терминале:

mvn clean package

3. Запуск проекта

После сборки выполните:

java -jar target/game-project.jar

Игра запустится, и вы готовы начать играть! 🎉


📂 Структура проекта

Проект организован следующим образом:

├── src/main/java/
│   ├── application/                # Основной пакет приложения
│   │   ├── GameApplication.java    # Класс для запуска приложения
│   │   ├── controllers/            # Контроллеры для взаимодействия с интерфейсом
│   │   ├── models/                 # Игровая логика, модели данных
│   │   └── utils/                  # Утилиты (звуковое управление, эффекты, загрузчики)
│   ├── resources/                  # Ресурсы игры (изображения, звуки)
│   │   ├── images/                 # Визуальные элементы
│   │   ├── sounds/                 # Звуковые файлы
│   │   └── fxml/                   # Файлы интерфейса
├── src/test/java/                  # Тесты для проекта
├── README.md                       # Документация проекта
└── pom.xml                         # Maven-конфигурация

📝 Документация основных функций

1. Игровой цикл

Метод, отвечающий за управление игровым процессом:

private void setupGameAnimation(Scene scene) {
    timer = new AnimationTimer() {
        @Override
        public void handle(long now) {
            // Обновление игрового состояния каждые 1 / 60 секунд (FPS = 60).
        }
    };
    timer.start();
}

2. Обработка столкновений

  • Проверка столкновений между машиной игрока и препятствиями:
private void checkCollisions() {
    for (Car obstacle : obstacles) {
        if (playerCar.getShape().getBoundsInParent().intersects(obstacle.getShape().getBoundsInParent())) {
            endGame(obstacle);
        }
    }
}
  • Завершение игры:
private void endGame(Car collidedCar) throws IOException {
    // Анимация взрыва + сохранение результата.
    showExplosion(x, y, width, height); 
    System.out.println("Игра завершена!");
}

3. Движение дороги

Реализация бесконечного движения фона с имитацией дороги:

private void moveBackground() {
    road1.setLayoutY(road1.getLayoutY() + roadSpeed);
    road2.setLayoutY(road2.getLayoutY() + roadSpeed);
    if (road1.getLayoutY() >= 800) road1.setLayoutY(road2.getLayoutY() - 800);
}

About

Гоночная игра — это классическая 2D игра. Включает в себя различные уровни сложности, звуковые эффекты, дополнитьлные опции: рекорды, кастомизация транспорта.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published