5

Ламповый конструктор для лентяев

Так как я не умею рисовать и при этом я лентяй и программист, а порисовать в "Ламповом конструкторе" хочется, то пришлось поднапрячь мозги и автоматизировать рисование.


Несколько лет назад я уже автоматизировал себе игру в "Зомби ферму" в ВК на AutoIt3, сейчас решил тоже его использовать.


Скрипт можно взять тут: https://pastebin.com/KQJ7Ed5p

Небольшой недостаток, что перед началом рисования нужно вручную устанавливать курсор на верхнюю левую лампу, а потом клавиатурой запускать скрипт.

Также возможно придётся чуток подправить скрипт если у вас браузер не Google Chrome и/или нестандартный масштаб.


Палитра доступных цветов не идеальна, поэтому не все картинки выходят хорошими.


Пример светодоски: https://pikabu.ru/page/newyear2019/?id=10%20YHXGE0WkA


Всех с наступающим новым годом!

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

А чего оно так долго у тебя рисует? Ее же можно за один проход по двумерному массиву отрисовать.. Времени - меньше секунды на один фрейм уходит.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

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

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

Я вот чего имел ввиду. И то тут количество перемещений курсора можно раза в 2 сократить, но мне чет лень, т.к. цель достигнута

Предпросмотр
YouTube0:37
раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Вы это с помощью чего сделали?

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Скрипт на юнити. Решает задачу "в лоб", если вкратце: Двигает стрелку на нужную координату, читает цвет пикселя с загруженной текстуры, подбирает похожий из палитры конструктора, выбирает его и нажимает левую мышь.. и так 800 раз, а потом 2 секунды таймаут перед следующим фреймом, это чтобы редактор отвис)


Все три метода из user32: SetCursorPos, GetCursorPos и mouse_event.


Могу скинуть, если интересно, но сразу предупреждаю - там говнокод быстрокод, ноль комментариев и все значения захардкожены(чтоб завелось, придется под свой монитор перенастраивать)

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Скидывать не надо, думаю что просто юнити быстрее курсор двигает.

В AutoIt даже с максимальной, как у них в доке написано instant, скоростью рисует за 27 секунд, при том что я оптимизировал количество движений.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Для этого, по идее, подойдет любая среда, к которой можно прикрутить сторонние библиотеки и в которой есть циклы for. Я хз как перемещения в AutoIt реализованы, но SetCursorPos моментально перемещает курсор в заданные координаты. А поместив этот вызов в цикл "for (i=0; i<800; i++)" - можно заставить курсор побывать сразу в 800 местах, как это не странно

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку