Написать программу для визуализации игровых данных на python

2 000 руб. за проект
02 апреля 2023, 12:53 • 12 откликов • 89 просмотров
Необходимо написать программу на python с использованием одной из предложенных библиотек (pygame, pyqt5, tkinter). Программа должна принимать на вход путь к файлу с данными, и выводить на экран пошаговую анимацию происходящего.

Файл с данными (ссылочка) представляет собой записанные ~30 секунд игры. Каждая строка этого файла - числа, разделенные запятыми. Каждые 2 строчки в файле - это одна запись, в секунду сохраняется 10 записей.

Первая строчка записи содержит данные о текущем положении игры:
1. Координаты врага: X,Y,Z
2. Скорость врага: X,Y,Z
3. Направление движения врага: X,Z
4. Число, обозначающее жив ли враг: -1 (если мертв) или 1 (если жив)
5. Координаты игрока: X,Y,Z
6. Скорость игрока: X,Y,Z
7. Направление движения игрока: X,Z
8. Число, обозначающее жив ли игрок: -1 (если мертв) или 1 (если жив)
9. Число, обозначающее предмет в руке игрока: -1 (если предмета нет, или это не предмет) или 1 (если предмет есть)
10. Число, обозначающее врага в руке игрока (да, в этой игре можно брать врагов в руки): -1 (если врага нет, или это не враг) или 1 (если враг есть)

Вторая строчка записи содержит действия, которые предпринял игрок:
1. Выбранное направление движения игрока: X,Z
2. Ускорение движения игрока: от 0.0 до 1.0
3. Нажатые кнопки: PUNCH,GRAB,JUMP,BOMB (каждая из которых -1 если не нажата, и 1 если нажата)

Ось Y нам визуализировать не нужно, поэтому визуализация будет плоская (2d).

На основе данных записи необходимо отрисовать кадр, на котором будет отображено:
- Враг: маленький красный круг
- Скорость врага: желтая стрелочка исходящая от врага в направлении & силе скорости (вектор)
- Направление движения врага: полупрозрачный джойстик, серого цвета
- Игрок: маленький зеленый круг
- Скорость игрока: желтая стрелочка исходящая от игрока в направлении & силе скорости (вектор)
- Направление движения игрока: полупрозрачный джойстик, серого цвета

Также необходимо отрисовывать:
- Смерть врага/игрока: если враг/игрок в данный момент мертв - отображаем крестик поверх врага/игрока соответственно
- Предмет/Враг в руке: Где-нибудь нужно указать, что в данный момент у игрока в руке (ничего/предмет/враг)
- Ускорение движения игрока: число с плавающей точкой, отображать под игроком
- Нажатые кнопки: Тоже, где-нибудь их отобразить

И потом, с частотой 10 кадров/сек обновляем экран, визуализируя новые записи из файла.

В отклике указывайте сроки выполнения работы.
Отзывы
R50 96f91d3c497dceae774d11bd65c7c40d
Заказчик
Отличный исполнитель! Выполнил заказ качественно и в сроки, в отличии от предыдущего исполнителя, который не смог выполнить заказ. Рекомендую)
1 год назад
R50 b4d594e2f71f8c25e81d4a72eeca18ad
Фрилансер
Хороший заказчик, всегда на связи и отвечает на все вопросы. Приятно было сотрудничать!
1 год назад