|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
|
Подскажите, как сделать socket port или любой другой с высоким FPS30.08.2020, 14:39. Показов 1494. Ответов 12
Метки нет (Все метки)
Посмотрел видео, как парни сделали ИИ, который играет в стрит-файтер
https://www.youtube.com/watch?v=NIG4BZ8VpF4 Мне все понравилось, решил написать свой ИИ (чтобы изучить, кака это работает) в игре Head Ball 2, которая выпущена для смартфонов. Для этого я поставил на компьютер эмулятор смартфона Blue Stacks, а котором игра выглядит вот так https://www.cyberforum.ru/atta... 1598786997 В общей схеме из видео фигурирует сокет - сервер, который передает события в игре в питон (с громадным ФПС) https://www.cyberforum.ru/atta... 1598787018 https://www.cyberforum.ru/atta... 1598787018 Я решил, что буду делать скриншоты и обрабатывать их, но выяснилось, что это очень медленно (порядка 5 ФПС). На данный момент я решаю задачу: как передать в питон положения из игры с приемлемым ФПС?
0
|
|
| 30.08.2020, 14:39 | |
|
Ответы с готовыми решениями:
12
Как поставить кнопку (или любой другой компонент) в таблицу DBGrid Как конвертировать кодек CUVC в любой другой, например MPEG или H.264 |
|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
|
| 04.09.2020, 17:39 [ТС] | |
|
Если кому интересно, я решил задачу (правда, не получил 450 ФПС, но мне столько не обязательно).
Оказывается, есть способ делать скрин-шоты в питоне быстрее https://python-mss.readthedocs.io/ У меня на компьютере выдает где-то под 150 ФПС, если никак не анализировать полученную информацию. У меня же много всяких функций и работы с этими скрин-шотами, поэтому вместе со всей работой получил 30 ФПС. Я еще буду опитимизировать функции, которые обрабатывают скрин-шоты, ибо там есть ненужные функции, которые я использовал чисто во время отладки (она еще не закончилась). Уверен, что получится иметь где-то 40-50 ФПС, когда буду переходить уже к обучению будущего бота. Тред пока что не закрываю, так как есть шанс, что появятся еще вопросы. Плюс, может, кому-то будет интересно, что у меня получится, я все расскажу, как доделаю.
0
|
|
|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
|
| 17.10.2020, 18:59 [ТС] | |
|
Здравствуйте! Докладываю: в итоге у меня получилось написать бота, который выигрывает 47% , проигрывает 47% и играет вничью 6%. Основная проблема - это распознавание мяча. Он не всегда распознается в правильном месте.
Подскажите, можно ли как то с помощью питона получить данные из другой программы? Как это грамотно называется, чтобы загуглить?
0
|
|
|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
|
| 20.10.2020, 00:42 [ТС] | |
|
Вот, это мне и нужно. А как это называется? Может, какая-то библиотека есть, как выудить данные из игры?
Я сделал в этоге через cv2.matchTemplate Получается точно, но всего лишь 20 фпс, а хотелось бы быстрее...
0
|
|
|
Модератор
|
|
| 20.10.2020, 07:46 | |
|
nesterzhzhot, для работы с памятью pymem, возможно получиться получать из либ какие то данные (расположения мяча, игроков) но это не точно, я не изучал эту тему, знаю только поверхностно и тем более не представляю как это будет работать с эмулятором, а не с простой игрой на ПК.
1
|
|
|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
||||||
| 02.11.2020, 23:09 [ТС] | ||||||
|
DmFat, спасибо за наводку, но я не осилил разобраться. Запускаю тест, как в доках, но ничего не выдает (мне видимо не хватает знаний, что вообще происходит).
Сейчас проблема в том, что разработчики изменили физику мяча, и теперь он вращается полностью (а раньше его центр был неподвижной картинкой, которую я искал). Сейчас же мне надо найти не просто элемент на общей картинке, а еще и с рандомным вращением. Вот это я вообще не понимаю, как сделать. Есть идеи? Добавлено через 29 минут Видимо, все-таки придется через Pymem как-то писать, ибо я погуглил, по ходу ботов именно так и пишут. Вот до чего я дошел в документации
<pymem.ressources.structure.MODULEINFO object at 0x0000029A67B16F40> Что это такое? Как дальше действовать?
0
|
||||||
|
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,244
|
|
| 03.11.2020, 10:26 | |
|
1
|
|
|
Модератор
|
|
| 03.11.2020, 11:26 | |
|
nesterzhzhot, он выдает список модулей которые использует игра, у этих модулей есть атрибуты или методы, с помощью тыка можно найти модуль отвечающий за отрисовку мяча, размер поля и т. д. Но т.к. ты используешь эмулятор, то я не знаю, получится ли у тебя вообще это реализовать.
1
|
|
|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
|
| 03.11.2020, 15:00 [ТС] | |
|
Alli_Lupin, я пробовал и так, но из-за вращения мяча тоже не получается (плюс, они сделали, что иногда мяч золотого цвета). Даже это было бы не проблемой, так как в моем изначальном коде изображение просто делается черно-белым
DmFat, Я могу это как-то проверить? Например, просить дать мне координаты того или иного модуля? Я посмотрел коды для Кс-Го, там видел что-то типа pymem.takeint от модуля и решил, что есть take coordinates или подобное Добавлено через 1 минуту А, у меня еще идея появилась. Может, как-то можно откатить до предыдущей версии игру?
0
|
|
|
5042 / 1069 / 149
Регистрация: 29.01.2013
Сообщений: 6,244
|
||
| 03.11.2020, 20:30 | ||
|
ищите круг)
1
|
||
|
0 / 0 / 0
Регистрация: 15.11.2019
Сообщений: 38
|
||||||
| 03.11.2020, 20:35 [ТС] | ||||||
![]() Наверное, просто очень криво написал, но без размытия вообще ничего не найти: больно много разных мелких деталей, куча голов болельщиков на трибунах...
0
|
||||||
|
Модератор
|
||
| 05.11.2020, 07:52 | ||
|
0
|
||
| 05.11.2020, 07:52 | |
|
Помогаю со студенческими работами здесь
13
Подскажите какуюнибудь программку или способ как легко вычислить координаты любой точки на экране. Как это сделать просто незнаю как назывваваеться эта штука или вложения или что подскажите кто может Как сделать аналог резистивного делителя с высоким кпд Нужен кодер (Delphi , C++ или любой другой) Резко начал проседать FPS ноутбука, похоже поймал майнер или другой вирус Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|
|
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
|
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
|
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора
Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если. . .
|
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
|