|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
03.05.2016, 19:29 | #11 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
Чтобы Вы немного представляли что же то все такое. Есть програмка на delphi7, есть VPS дешовенький В одной популярной карточной онлайн игре стример ( тот кто транслирует онлайн видео со своего компа) в этой игре запускает программу мою. Программа связана с сервером, она исключения распознования посылала на сервер каждые примерно 15 сек номера распознанных карт,а после моих изменений теперь посылает картинку(и) ( это специальный режим игры) 3х карт за раз. Далее на сервере на страничке зрителям выводятся эти 3 карты, они кликают на 1 из них , а программа собирает данные( где больше пикнули) и сама кликает в клиенте игры. Все это проходит 30 раз для одной игры. Это не бот, и это не сам игровой режим игры, это лишь все подготовка к режиму игры. Просто фан для зрителей, косвенное участие в стримерской жизни. Так вот, чем больше времени у меня занимает сбор данных и отправка их на сервер тем меньше времени зрителям чтобы сделать выбор что пикнуть. В идеале это время ( затраченное программой на сбор и отправку данных) должно быть минимальным и одинаковым при каждом цикле. Синхронизация без websocket, по периодически ajax запросам, если номера ( или теперь картинки) не будут готовы, то через 2 секунды будет повторный запрос к серверу. Последний раз редактировалось Illusiony; 03.05.2016 в 19:33. |
|
03.05.2016, 20:07 | #12 |
Участник клуба
Регистрация: 12.09.2012
Сообщений: 1,030
|
А вам не кажется, что банального чата на Твиче было бы достаточно, чтобы такое реализовать. Банальные особые хеш-теги чата для ходов. ваша программа в онлайн режиме отлавливает чат. Если есть сообщение с специальным хеш-тегом, то она совершает ход. И здесь достаточно будет отослать игре сообщение о ходе второго игрока(выполнить нужную функцию). Здесь нужна глубокая модернизация самого кода карточной игры, либо реализация подобного алгоритма на своем уровне(что кстати большого труда не составит, так как игра очень проста, как и все пасьянсы и прочие карточные игры). Анимирование для второго игрока, надо производить так, чтобы это записывала программа-трансляции.
И не нужно так всё городить. От сложности толку всё равно много не будет.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби. |
03.05.2016, 22:12 | #13 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
2)во вторых смотреть могут не только с твича 3)в третьих есть задержка на стриме, я не представляю как человек будет жать какуюто команду если реально уже другой ход начался (можно, наверное выводить картинки прямо в твич текущего хода, но если много людей будет голосовать, а у меня покачто максимум было 250 в течении 10-15 секунд каждого хода, то изображения карт в твиче будут быстро улетать) Про анимирование, Вы, наверное не поняли в чем дело. Анимацию не нужно записывать, я просто жду пока она закончится, а потом отсылаю последний скрин без анимации, когда она закончилась, вот , а теперь не хочу дожидаться полного окончания анимации. |
|
03.05.2016, 22:25 | #14 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Ваша идея, что в конце изменение будет слабее, чем в начале, вполне правдоподобна. Сложно советовать что-то конкретное, не видя примера анимации. Раз вопроса о распознавании больше не стоит, то можно, например, уменьшать картинку из рассматриваемой области до 40 пикселей, а затем уже считать различия у уменьшенных картинок, тогда мелкие эффекты скрадутся. Или рассматривать какую-нибудь область в центре карты, где эффект уже закончился. Но, повторюсь, без примера анимаций сложно представить, как лучше оценить завершение.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
04.05.2016, 18:11 | #15 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
https://www.youtube.com/watch?v=xjX1BeMv_NU начиная , например с 2.19.09 Там как раз мой проектик в работе на 200+ человек. Длительность и сила анимации зависит от ценности карты 4х видов. У меня в данный момент для определения полного окончания анимации использую участок скриншота 57x94 pixels. Производится подсчет суммы RGB каждого такого рисунка и сравниваются 3 послених таких суммы. Вывел пример таких сумм: Код:
Код:
Подсчет RGB суммы делается так( рисунок до этого приводится к 24 битам): Код:
А Вы имели ввиду отмасштабировать мой кусочек изображения до 40 пикселей для сглаживания влияния анимации и уже анализировать их? Чаще всего, оказалось анимация длится почти 2 секунды, но если попадается редкая или легендарная карта она блится гораздо больше ( ориентировочно 4-5 сек) точно не тестил. Подготовка и отправка изображения на сервер зависит от настроек, по одной из них это около 1 секунды на моем компе. Последний раз редактировалось Illusiony; 04.05.2016 в 18:58. |
|
04.05.2016, 22:11 | #16 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Отмасштабировал с 47х94 до 5х10 вот пример RGB суммы отмасштабированной анимации через StretchDraw, может быть использовать более продвинутое масштабирование? чем эта функция?:
Код:
Последний раз редактировалось Illusiony; 04.05.2016 в 22:17. |
05.05.2016, 22:18 | #17 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Функции улучшения качества при масштабировании особо разницы не дают, впринцепе, ожидаемо
Еще провел несколько тестов, в одном из них уже на 3тьей итерации разница менее 1 %. В остальных на 4-6-8 итерациях разница менее 10%. Сделаю еще тестов, нужно зафиксировать карту с сильной и долгой анимацией, но они редко попадаются( Еще сохранил все картинки чтобы оценить визуально пригодность изображения, вроде терпимо. |
05.05.2016, 22:23 | #18 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Уменьшенные картинки только для определения конца анимации. Для голосования отдавайте реальный размер. Еще посоветовал бы записать анимации на видео и уже на нем тестировать, чтобы не ловить каждый раз редкие анимации.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
06.05.2016, 00:43 | #19 | |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Цитата:
Мм, нужно тогда точно знать координаты которые я использую, чтобы на видео они совпадали, да и к тому же не особо точно получится, потому что видео все равно имеет компрессию кадров(вроде) ((. И еще карты разные, анимации разные , одно видео мало что скажет. Последний раз редактировалось Illusiony; 06.05.2016 в 00:47. |
|
06.05.2016, 01:02 | #20 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,342
|
Вот плавно подходим к вопросу, чтобы не делать жесткие координаты, а определять их, узнавая область окна игры, а затем ища контуры карт. Думаю, фрапс может захватить без компрессии кадры, хотя не понимаю, как компрессия может помешать, ведь сейчас нет сравнения с шаблоном, а необходимо узнать только окончание анимации. Да, кстати, киньте пример появления редкой карты, а то что-то промотал видео по вашей ссылке выше и не нашел.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Подскажите, как различать способы сравнения значений и параметров | KBO | Помощь студентам | 8 | 26.12.2015 00:02 |
Неполное решение, выручайте!!! | anton.dasuik | Помощь студентам | 1 | 02.02.2013 14:25 |
Подскажите как програмно установить Шрифт (Visual Basic 6) | С.М.С | Помощь студентам | 8 | 07.01.2009 02:03 |
Подскажите как установить G32 или DelphiX | Teen4jump | Общие вопросы Delphi | 3 | 26.06.2007 23:50 |