Компонента предназначена для моделирования игрового поля (вывод, движение спрайтов — фреймов, обработка коллизий, управление спрайтами-фреймами и т.д.) при разработки логики игры на встроенном языке 1С. Приложен пример обработки в которой реализована игра «Бита».
На внутреннем языке 1С (платформы 8/7, или на любой платформе поддерживающей работу с COM-объектом) производится разработка алгоритма работы игры. Также подготавливаются фреймы (изображения в формате bmp (24 битное)) для вывода на карту локаций. Вся работа по выводу фреймов на экран, обработка коллизий (столкновений) объектов (типа пуля попала в объект), уничтожение фреймов и т.д. производится обращением к методам и свойствам компоненты. Также компонента позволяет выводить видео на форму с web-камеры, IP-камеры, делать снимок с экрана в файл. Список методов Active-X — компоненты прилагается.
Компонента будет активно развиваться, вступайте в мою группу разработки игр на 1С.
Приложен архив (обработка и фреймы) с примером разработки игры "Бита" (стрелка влево — движение биты влево; стрелка вправо — движение биты вправо; пробел — стрельба шариком и пулями).
В архиве также сама компонента.
Также приложен в архиве видео процесса разработки.
Также видео можно просмотреть по ссылке: https://youtu.be/uxyHRx3LQaM
Реализованы методы (описаны в отдельном файле):
— подключения и снятия данных с web-камеры, IP-камеры (http-запросом к камере)
— вывод примитивов на форму компоненты — пиксель, линия, прямоугольник, овал. Вывод текста.
— создание фреймов (фрейм — это, например, изображение машины или биты и пр.), вывод на экран, изменение положения фреймов в экране, работа с теневым экраном атрибутов, уничтожение фреймов и т.д.
— считывание, установка координат фреймов по ID фрейма
— анализ коллизий объектов между собой (удар объектов друг по другу)
— задание фрейму режимов неведимости, типа фрейма и т.д.
— другие функции
————————
В разработке — разработка интерфейса для работы с OpenGL, работа с шейдерами, разработка функций вывода видео на форму компоненты в заданных местах через DirectShow, вращение фрейма, масштабирование фрейма, разработка функции Goto — идти фрейму по вектору.
ВНИМАНИЕ !!! Перед регистрацией компоненты необходимо отключить UAC в винде и перезагрузить комп. Потом можно включить.
Не понимаю — для чего на 1С писать игры?
(1)Этот проект — это малая часть другого проекта. Через месяц буду выкладывать проект с помощью которого можно будет распознавать номера автомашин, потом лиц людей и т.д. Вот эта компонента отвечать будет за пересылку данных на сервер + принимать ответ от сервера по распознанным номерам и + отображать на форме распознанный номер (видео будет предварительно браться с web или IP камеры — т.е. номер распознанный будет накладываться на реальное видео — вот как тут:https://infostart.ru/video/w630732/) — ну и за выходные дописал чтобы и игры можно было писать под эту компоненту — так — для интереса :-).
Более того, эта компонента может использоваться не только для 1С, но и встраиваться в любые другие программы по COM — технологии.
_
(1) Тем более, из под 1С COM — портами управлять можем, под Arduino писать тоже могем, так почему же игры не писать? 🙂
Можно тетрис сделать? Мышкой кубики разной формы передвигать?
(3) По-моему, на 1С писать игры — это всё равно, что на Unity делать приложение для учёта деятельности предприятия — теоретически возможно, но зачем?
К тому же 1С тут вообще не при чём — всё в компоненте отдельной сделано, из 1С только команды подаются.
(6) Ну, не хотите — не скачивайте и не используйте. Я же Вам насильно не рекомендую это использовать. Кому надо — могут придумать как в своей деятельности это использовать. А разговоры надо или не надо нужно или не нужно — так это из серии — что круче — ассемблер или 1С? — каждому свое. Можно ведь написать граф. интерфейс в обработке по управлению, например, графами — куча всего где можно это использовать. А игры — так это одна из областей.
(5) Да, можно. Можно получать координаты мыши, признак нажатия на кнопку мыши, координаты и передвигать спрайты — кубики.
(7) не надо так агрессивно воспринимать критику, тем более, что и критики как таковой не было.
Напишите об этих областях — и будет вам низкий поклон. Данная статья называется «Разработка игр на языке 1С…». Об этом я и писал, что, во-первых, для разработки игр есть куча специальных инструментов, во-вторых, к языку 1С эта «разработка игр» имеет такое же отношение как грузчик к экономическому развитию — очень уж посредственное.
Нет, не из серии. Из этой серии был бы абстрактный вопрос — что круче, Юнити или 1С. Но вопрос задан в конкретном контексте — разработка игр. Вы на ассемблере тоже игры пишете?
Диаграмма Ганта, подвижная, перемещения блоков которой можно обработать?
(9) Да нет, агрессии нет. Если что не так — простите. Наверно, не тот слоган выбрал для ответа. Я в том смысле, что каждая разработка должна оцениваться не с позиции надобности / не надобности, а с позиции возможности применения.
По поводу ассемблера — да, писал игры (долго, но работали игры очень быстро — это просто было ради урока).
По поводу областей — например:
1) для моделирования связей сущностей (на экране) моделирование по принципу взял и бросил (типа IDEF0, FDF, IDEF3 — опять же обращаю Ваше внимание, я не пишу что надо тут же делать IDEF на 1С — просто как пример).
2) для разработки интерактивного алгоритма взаимодействия пользователя и программы 1С. Например — на форму компоненты вывести кнопки(другие элементы), при нажатии производится смена расположения кнопок, вывод интерактивных помощников на экран (боты?) их состав, вид, какие — то элементы могут быть подсвечены, другие картинки выведены, и т.д.
3) при обработке раскроя можно интерактивно выводить процесс раскроя листа, интерактивно дать пользователю управлять ходом раскроя
Дальше можно еще придумать много чего
(9) Ну вот — уже пишут ( ann guskova (acanta) ) — про диаграмму Ганта, у которой можно перемещать блоки, и обрабатывать события перемещения — начала/окончания. Также из своей практики вспомнил — состояния исполнения заказов — графически представлять, и при нажатии/щелчке мыши обрабатывать события для отображения информации. Сами из своей практики можете далее накидать…
(10) Да, можно с помощью компоненты отрисовывать диаграмму, и при щелчке мыши пепемещать блоки и отлавливать эти события
ActiveX тупиковая ветка развития. Тем более для 1С, которая почти полностью переходит в веб. Вы опоздали лет на 10 🙂ActiveX это круто, кроссплатформенная технология будущего !
Молодцы, продолжайте в том же духе !
(14) сомнительно, что 1С откажется от поддержки COM до перехода на какую-нибудь 1С 9.0… от Windows тоже клиенты вряд ли откажутся, если глобальный форс-мажор не случится… а значит ни куда ни кто не опоздал…. кроссплатформенность это не более, чем плюшка… есть, хорошо, а нет, то и так сойдет… к ней надо стремиться, но без нее пока можно обойтись…
ActiveX работает только в толстом.
Соответственно, про тонкий и веб можно забыть.
Наше решение тоже базировалось на ActiveX собственной разработки для моделирования.
В итоге клиенты начали требовать работу через веб и эту ветку разработки пришлось бросить.
Нашли решение, как располагать визуальные элементы на форме тонкого клиента, но это тоже тупиковый путь, потому что нельзя работать через браузер, а это основной вектор развития сегодняшнего дня.
Итого
Вся графика должна быть реализована через JS + HTML + CSS на поле HTML документа, а все компоненты для системного взаимодействия должны быть реализованы через NativeDLL библиотеки. Сейчас IE10 предоставляет достаточно хороший функционал для решения задач.
Писать коммерческие приложения в расчете на COM это тупик. Любой конкурент вас задавит одной возможностью работать через веб.
(16) Добрый день. Ну, это ведь обходится. Можно написать программу которая будет транслировать изображение из 1С в оконный интерфейс удаленного клиента + все реакции на нажатие и пр. Если интересно — можем на эту тему пообщаться.
(17) А я и не предлагаю это как коммерческое решение. Кому интересно — пусть пользуется. А кому нет — пусть не пользуется :-). Да и конкурентов я не боюсь — т.к. конкурировать этой AX я ни с кем не хочу 🙂
Все понял 🙂
Я просто посмотрел на это со своей колокольни разработчика коммерческих решений 🙂
(18) Проходили.
Сейчас все конфигурации разрабатываются в тонком клиенте.
Использование ActiveX в толстом заставляет пользователя переключаться между режимами тонкий/толстый.
Хочешь это = запускай так, а хочешь другое = запускай это же, но уже по другому.
Костылей можно всяких напридумывать, только как этим пользоваться и сопровождать.
Тем более, повторяюсь, я рассматриваю в контексте разработки коммерческих решений, которые будут оцениваться на костыльность потенциальными покупателями.
(20) Ничего страшного. По поводу коммерческих решений — если интересно, то можем посотрудничать — есть запускные (готовые) стартапы — распознавание по удаленному запросу номеров автомашин, рукописной текстовой информации, сейчас идет разработка детектирования лиц в потоковом видео + определение что это за человек, определение текстовых меток на видео + отслеживания перемещения объекта (трекинг объекта) на видео и пр.
(21) Да я не об этом — знаете программу Ammy — Admin? вот так же и сделать можно — у клиента запускается программа — окно — и в этом окне отображается окно из удаленного сервера — и вся работа идет, фактически, на удаленном сервере — а клиент и сервер обменивается событиями нажатия кнопок и сжатой видеоинформацией. А на сервере также стоит планировщик — который раздает контекст окон и принимает события от клиентов.
(23) Может RDP (терминальный сервер) более прямой путь ?
(17) Выводы едины (по ГРАФИКЕ в 1с) для любого 1с-ника который желает сделать кросс-платформенный интернет ориентированный, многопользовательский проект:
— Реализация графики на HTML5 Canvas + Js. = ПОЛНЕЙШАЯ кросс-платформерменность, кросс-браузерность, не зависимость от конкретного оборудования.
— В рамках 1с Конфигуратора реализация в 1с Тонком Клиенте
— В рамках форм — Управляемая форма, поле с типом = ПолеHTMLДокумента
— Обмен информацией между окном формы и HTML js кодом через события ПолеHTMLДокумента
— Возможность горячей замены js кода внутри окна 1с во время выполнения игрового цикла, который обновляет графику в ПолеHTMLДокумента
— Возможность программного изменения поведения, спрайтов, реакций и т.п. внутри кода 1с
— Полное управление js кодом из 1с и его обратная реакция = обмен информацией (нажатия на игровые объекты внутри HTML5 Canvas)
Я данные принципы выстрадал потом и кровью целый год.
Прошел те-же тернии, как и автор данного поста.
Я понял что Active-x это ТУПИК.
Для интернет-ориентированных проектов, которые запросто запускаются как обычные приложения ГДЕ УГОДНО (телефон, компьютер, планшет)
НУЖНО ОСВАИВАТЬ HTML5 + JavaScript
Что касается ЛОГИКИ интернет-игры в рамках 1с-Предприятия:
— МОЩНЕЙШАЯ структурированная логика многопланового развития проекта позволяет в кратчайшие сроки сделать из заготовки игры полноценный Интернет-проект
— Расширение до мощнейшего интернет-портала
— Возможность сделать собственный сайт в рамках единого проекта с автоматической поддержкой собственного интернет-сервера без сложностей с хостингами, требуется лишь покупка домена.
— Возможность сделать кросс-платформенный много-пользователький проект, развить его из заготовки.
— Мощнейшая возможность реализовать многоуровневую мощную и быструю логику с поддержкой сервера для расчета критически важных вычислений, поддержка множества видов Баз ДАнных (MS SQL, MySQL, SQLLite и т.п.)
Все это позволяет для ТЕХ КТО МЫСЛИТ МАСШАТАБНО
создать собственный интернет-проект.
Я уже создал собственный проект и на данный момент основная сложность для меня — реализация HTML5 + js графики.
Приходиться осваивать.
Остальное уже умею.
(26) И?
(27) В новой версии 1с 8.3.7.1759. (анонсhttp://v8.1c.ru/o7/201505layout/index.htm)
https://infostart.ru/public/585020/
появился ряд возможностей, которые позволяют сделать реализацию кнопочного поля без интервалов
на Управляемых формах.
Пример готовой реализации —
Данный релиз позволяет сделать простую спрайтовую графику на Управляемых формах.
Для простых в графическом плане игр без особых изысков этого достаточно.
Для конкуренции с графическими монстрами игродела в рамках 1с можно создавать проекты
— С минимальной спрайтовой графикой, без лишнего кода, все в рамках кода 1с.
— С большим и мощным функционалом.
— Кросс-платформенность в рамках Windows, Linux, Android (1с платформы)
— Безграничное и быстрое развертывание логики в глубину и ширину.
— Оптимизация производительности в рамках Клиент-Серверной реализации
— Возможность создавать большие и сложные интернет-проекты
Все это говорит о чем?
о том, что:
— Использование Active-X компонент ограничивает кросс-платформенность реализацией лишь в рамках толстого НЕУПРАВЛЯЕМОГО режима.
— Интернет-реализация = 0
Таким образом, развитие в сторону Active-X компонент ограничивает развитие проекта и заводит его в тупик.
Ежели при начале проектирования ориентироваться на вышеобозначенные принципы это позволит:
— После создания заготовки годами развивать проект и даже создать команду разработчиков и получать прибыль от него
(28) Вы, наверное, плохо читаете посты (или не внимательно). Данная Active-X компонента используется мной в проектах для разработки на c++ builder. К 1С она не имеет никакого отношения. К 1С я ее «прикрутил» в праздники — за день написал на ней игру (на языке 1С — просто для примера). Дальнейшего прямого развития к 1С не будет. Но кому хочется — пусть качают и пользуются. Но развиваться КОМПОНЕНТА будет (для моих проектов на c++ — обработка изображения). Как говорится, кому надо пусть качают. Кому не надо — пусть не качают.
(28) И коммерческого использования для разработки игр я не преследовал.
(26)
хе-хе, мы сейчас грызем
https://webref.ru/
https://learn.javascript.ru/
(32) Картинка понравилась, иногда по достижению результата бывает такое настроение
(33)
(32)
Вот зачем — Русский человек не ищет легкий путей. И поэтому у нас лучшая военная техника. И прочий люд умстенного труда сколько за бугор не уезжает — все равно у нас их полно
🙂