Возможно все, вопрос лишь в уровне мотивации

Александр Z alexxxdevelop

Рейтинг: 1 444
не верифицирован
Всего отзывов: 1 0
Профессионализм: 10 Коммуникация: 10
Выполнил заданий: 1
  • Работ в портфолио: 17
  • Типовых услуг: 0
  • Работ на продажу: 0
  • Возраст: 41 год
  • Стаж работы: 19 лет
  • Зарегистрирован: 27.12.2025
  • Образование: Бакалавриат
  • Юридический статус:ИП
  • Стоимость услуг (руб): 2 000 за час 300 000 за месяц
Был на сайте:

Platformer

Используемые навыки:

Описание

2D-платформер с боевой системой ближнего и дальнего боя

Решение

Реализована архитектура на основе игровых событий (Event-Driven Architecture) для управления повреждениями и смертью врагов, а также триггерная система для активации анимаций при приближении противника. Проект демонстрирует навыки работы с физикой Unity 2D, компонентно-ориентированным программированием и созданием расширяемых игровых механик.

Данный проект представляет собой вертикальный срез (вертикальный слайс) 2D-платформера, сфокусированный на реализации ключевых боевых механик и взаимодействия персонажа с врагами. Основной упор сделан на создание чистой, расширяемой архитектуры с использованием паттерна “Событие” (Event Pattern), что позволяет гибко настраивать игровую логику без жестких связей между компонентами.

Ключевые реализованные механики:

Система атаки игрока (Sword.cs):
Механика реализована через триггер-коллайдер на мече.
При входе коллайдера противника (EnemyController) в зону поражения и активном состоянии атаки игрока (player.attack) создается игровое событие EnemyDamage.
Событийная система позволяет отделить факт обнаружения попадания от обработки его последствий.
Событийно-ориентированная система здоровья и урона (EnemyDamage.cs, EnemyDeath.cs):
EnemyDamage: Событие, которое при выполнении проверяет наличие компонента Health на цели. При наличии — уменьшает здоровье и, если оно достигло нуля, планирует (Schedule) новое событие EnemyDeath.
EnemyDeath: Событие, обрабатывающее “смерть” врага: отключает его коллайдер и управление (control), а также проигрывает звуковой эффект. Это демонстрирует четкое разделение ответственности между этапами получения урона и финальной стадией уничтожения объекта.
Такой подход обеспечивает высокую тестируемость и удобство добавления новых эффектов (например, визуальных эффектов, начисления очков) без модификации существующего кода.
Система стрельбы (Bullet.cs):
Реализован простой, производительный снаряд, движущийся в заданном направлении.
Используется метод Vector3.MoveTowards для расчета позиции.
Снаряд имеет ограниченное время жизни с автоматическим уничтожением (Destroy(gameObject, 1)), что предотвращает утечки памяти.
Триггеры окружения (Distance.cs):
Вспомогательная система для активации анимаций в зависимости от дистанции до игрока.
При входе объекта в триггер-зону у текущего объекта (например, NPC или элемента декорации) запускается анимация (“run”). Этот компонент демонстрирует возможность связывать игровую логику с положением персонажа в пространстве.

Проект служит отличной демонстрацией способности проектировать модульные, масштабируемые игровые системы, разделяя визуальные/коллизионные аспекты от чистых игровых правил.

Ссылки на примеры реализации

 mega.nz/file/Ze82kIZT#DTjKMQb_t7PtWURw4zkn3SmX8X6n...

Презентация проекта

Platformer_ODdL.jpg

Оценили проект:

0