Написать программу для визуализации игровых данных на python
2 000 руб. за проект
Необходимо написать программу на 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 кадров/сек обновляем экран, визуализируя новые записи из файла.
В отклике указывайте сроки выполнения работы.
Файл с данными (ссылочка) представляет собой записанные ~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 кадров/сек обновляем экран, визуализируя новые записи из файла.
В отклике указывайте сроки выполнения работы.
Отзывы
Отличный исполнитель! Выполнил заказ качественно и в сроки, в отличии от предыдущего исполнителя, который не смог выполнить заказ. Рекомендую)
1 год
назад
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.