Разработка игр на языке 1С с использованием Active-X компоненты (собственная разработка)

24.03.18

Разработка - Разработка внешних компонент

Написанная Active-X компонента встраивается на форму обработки 1С (тестировалось на 1С 8.0, 8.1, 8.2, 8.3 не управляемые формы, 1С 7.7.). Компонента предназначена для моделирования игрового поля (вывод, движение спрайтов - фреймов, обработка коллизий, управление спрайтами-фреймами и т.д.) при разработки логики игры на встроенном языке 1С. Приложен пример обработки в которой реализована игра "Бита".

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Разработка игр на языке 1С с использованием Active-X компоненты (собственная разработка):
.rar 30,55Mb
2
2 Скачать (5 SM) Купить за 3 050 руб.

На внутреннем языке 1С (платформы 8/7, или на любой платформе поддерживающей работу с COM-объектом) производится разработка алгоритма работы игры. Также подготавливаются фреймы (изображения в формате bmp (24 битное)) для вывода на карту локаций. Вся работа по выводу фреймов на экран, обработка коллизий (столкновений) объектов (типа пуля попала в объект), уничтожение фреймов и т.д. производится обращением к методам и свойствам компоненты. Также компонента позволяет выводить видео на форму с web-камеры, IP-камеры, делать снимок с экрана в файл. Список методов Active-X - компоненты прилагается.
Компонента будет активно развиваться, вступайте в мою группу разработки игр на 1С.
Приложен архив (обработка и фреймы) с примером разработки игры "Бита" (стрелка влево - движение биты влево; стрелка вправо - движение биты вправо; пробел - стрельба шариком и пулями).
В архиве также сама компонента.
Также приложен в архиве видео процесса разработки.
Также видео можно просмотреть по ссылке: https://youtu.be/uxyHRx3LQaM

Реализованы методы (описаны в отдельном файле):

- подключения и снятия данных с web-камеры, IP-камеры (http-запросом к камере)

- вывод примитивов на форму компоненты - пиксель, линия, прямоугольник, овал. Вывод текста.

- создание фреймов (фрейм - это, например, изображение машины или биты и пр.), вывод на экран, изменение положения фреймов в экране, работа с теневым экраном атрибутов, уничтожение фреймов и т.д.

- считывание, установка координат фреймов по ID фрейма

- анализ коллизий объектов между собой (удар объектов друг по другу)

- задание фрейму режимов неведимости, типа фрейма и т.д.

- другие функции

------------------------

В разработке - разработка интерфейса для работы с OpenGL, работа с шейдерами, разработка функций вывода видео на форму компоненты в заданных местах через DirectShow, вращение фрейма, масштабирование фрейма, разработка функции Goto - идти фрейму по вектору.

ВНИМАНИЕ !!! Перед регистрацией компоненты необходимо отключить UAC в винде и перезагрузить комп. Потом можно включить.

Игры Игра Active-X

См. также

Разработка внешних компонент Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Россия Платные (руб)

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    5302    1    0    

3

Разработка внешних компонент WEB-интеграция Программист Платформа 1С v7.7 Конфигурации 1cv7 Платные (руб)

Компонента HttpSrv7 позволяет создавать веб-сервисы в среде 1С 7.7 и даже, используя файлы HTML, несложные веб-сайты. С помощью нее можно обеспечить доступ к данным 1С 7.7 из браузера. Дополнительно используя компоненту HTTP_Async или синхронный клиент HTTP для 1С 7.7 (публикация № 1152364) можно наладить обмен данными между удаленными информационными базами. С помощью компоненты HTTP_Async можно сначала послать несколько запросов к сайтам, веб-сервисам (в т.ч. к HttpSrv7), а затем обрабатывать данные по мере их поступления. Компонента GISMT в дополнение к HTTP_Async имеет функцию цифровой подписи и, таким образом, имеет все возможности для работы с API ГИС МТ "Честный знак" непосредственно из среды 1С 7.7.

2000 руб.

27.05.2022    8986    23    17    

34

Разработка внешних компонент Программист Платформа 1С v7.7 Платные (руб)

Компонента для выбора значения из больших списков значений.

1200 руб.

02.12.2021    6277    2    19    

4

Разработка внешних компонент Файловый обмен (TXT, XML, DBF), FTP Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Эта внешняя компонента Base64.dll предназначена для платформы 1С версии 7.7. Используется для преобразования файлов из/в кодировку Base64 из встроенного языка 1С Предприятие. Компонента тестировалась на базе конфигурации Бухгалтерский учет для Казахстана, редакции 7.70.257.

10 стартмани

06.04.2021    10075    14    softmaker    13    

5

Разработка внешних компонент Защита ПО и шифрование Программист Платформа 1С v7.7 Абонемент ($m)

Цифровые подписи, шифрование, просмотр сертификатов ключей ЭЦП, работа с различными криптопровайдерами (в т.ч. КриптоПРО ГОСТ 2012) в 1С 7.7.

1 стартмани

08.06.2020    9454    28    mdbruyfn    10    

9

Разработка внешних компонент Программист Платформа 1С v7.7 Абонемент ($m)

Обмен сообщениями и небольшими файлами по протоколу UDP с 1С и внешними приложениями в локальной сети или сети VPN.

1 стартмани

23.05.2020    7637    7    mdbruyfn    0    

6

Разработка внешних компонент WEB-интеграция Программист Платформа 1С v7.7 Абонемент ($m)

Компонента позволяет использовать различные веб-сервисы интернет-ресурсов, например работать с онлайн-кассой через API, предоставленное ее разработчиком. Тестировалась на платформе 1С релиза 7.70.027.

1 стартмани

14.11.2019    19398    108    mdbruyfn    105    

18
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. BigB 193 04.01.18 21:44 Сейчас в теме
Не понимаю - для чего на 1С писать игры?
3. protexprotex 139 04.01.18 22:40 Сейчас в теме
(1)Этот проект - это малая часть другого проекта. Через месяц буду выкладывать проект с помощью которого можно будет распознавать номера автомашин, потом лиц людей и т.д. Вот эта компонента отвечать будет за пересылку данных на сервер + принимать ответ от сервера по распознанным номерам и + отображать на форме распознанный номер (видео будет предварительно браться с web или IP камеры - т.е. номер распознанный будет накладываться на реальное видео - вот как тут: https://infostart.ru/video/w630732/) - ну и за выходные дописал чтобы и игры можно было писать под эту компоненту - так - для интереса :-).
Более того, эта компонента может использоваться не только для 1С, но и встраиваться в любые другие программы по COM - технологии.
Serj1C; jan-pechka; +2 Ответить
6. for_sale 977 05.01.18 15:23 Сейчас в теме
(3) По-моему, на 1С писать игры - это всё равно, что на Unity делать приложение для учёта деятельности предприятия - теоретически возможно, но зачем?

К тому же 1С тут вообще не при чём - всё в компоненте отдельной сделано, из 1С только команды подаются.
7. protexprotex 139 05.01.18 16:02 Сейчас в теме
(6) Ну, не хотите - не скачивайте и не используйте. Я же Вам насильно не рекомендую это использовать. Кому надо - могут придумать как в своей деятельности это использовать. А разговоры надо или не надо нужно или не нужно - так это из серии - что круче - ассемблер или 1С? - каждому свое. Можно ведь написать граф. интерфейс в обработке по управлению, например, графами - куча всего где можно это использовать. А игры - так это одна из областей.
chemezov; +1 Ответить
9. for_sale 977 05.01.18 16:52 Сейчас в теме
(7) не надо так агрессивно воспринимать критику, тем более, что и критики как таковой не было.

куча всего где можно это использовать. А игры - так это одна из областей


Напишите об этих областях - и будет вам низкий поклон. Данная статья называется "Разработка игр на языке 1С...". Об этом я и писал, что, во-первых, для разработки игр есть куча специальных инструментов, во-вторых, к языку 1С эта "разработка игр" имеет такое же отношение как грузчик к экономическому развитию - очень уж посредственное.

так это из серии - что круче - ассемблер или 1С?

Нет, не из серии. Из этой серии был бы абстрактный вопрос - что круче, Юнити или 1С. Но вопрос задан в конкретном контексте - разработка игр. Вы на ассемблере тоже игры пишете?
11. protexprotex 139 05.01.18 17:06 Сейчас в теме
(9) Да нет, агрессии нет. Если что не так - простите. Наверно, не тот слоган выбрал для ответа. Я в том смысле, что каждая разработка должна оцениваться не с позиции надобности / не надобности, а с позиции возможности применения.
По поводу ассемблера - да, писал игры (долго, но работали игры очень быстро - это просто было ради урока).
По поводу областей - например:
1) для моделирования связей сущностей (на экране) моделирование по принципу взял и бросил (типа IDEF0, FDF, IDEF3 - опять же обращаю Ваше внимание, я не пишу что надо тут же делать IDEF на 1С - просто как пример).
2) для разработки интерактивного алгоритма взаимодействия пользователя и программы 1С. Например - на форму компоненты вывести кнопки(другие элементы), при нажатии производится смена расположения кнопок, вывод интерактивных помощников на экран (боты?) их состав, вид, какие - то элементы могут быть подсвечены, другие картинки выведены, и т.д.
3) при обработке раскроя можно интерактивно выводить процесс раскроя листа, интерактивно дать пользователю управлять ходом раскроя
Дальше можно еще придумать много чего
12. protexprotex 139 05.01.18 17:15 Сейчас в теме
(9) Ну вот - уже пишут ( ann guskova (acanta) ) - про диаграмму Ганта, у которой можно перемещать блоки, и обрабатывать события перемещения - начала/окончания. Также из своей практики вспомнил - состояния исполнения заказов - графически представлять, и при нажатии/щелчке мыши обрабатывать события для отображения информации. Сами из своей практики можете далее накидать...
4. protexprotex 139 04.01.18 22:42 Сейчас в теме
(1) Тем более, из под 1С COM - портами управлять можем, под Arduino писать тоже могем, так почему же игры не писать? :-)
chemezov; Serj1C; +2 Ответить
2. protexprotex 139 04.01.18 22:40 Сейчас в теме
5. acanta 05.01.18 11:41 Сейчас в теме
Можно тетрис сделать? Мышкой кубики разной формы передвигать?
8. protexprotex 139 05.01.18 16:03 Сейчас в теме
(5) Да, можно. Можно получать координаты мыши, признак нажатия на кнопку мыши, координаты и передвигать спрайты - кубики.
10. acanta 05.01.18 17:03 Сейчас в теме
Диаграмма Ганта, подвижная, перемещения блоков которой можно обработать?
13. protexprotex 139 05.01.18 17:17 Сейчас в теме
(10) Да, можно с помощью компоненты отрисовывать диаграмму, и при щелчке мыши пепемещать блоки и отлавливать эти события
14. Steelvan 306 06.01.18 15:33 Сейчас в теме
ActiveX тупиковая ветка развития. Тем более для 1С, которая почти полностью переходит в веб. Вы опоздали лет на 10 :)

ActiveX это круто, кроссплатформенная технология будущего !
Молодцы, продолжайте в том же духе !
15. Perfolenta 206 10.01.18 16:33 Сейчас в теме
(14) сомнительно, что 1С откажется от поддержки COM до перехода на какую-нибудь 1С 9.0... от Windows тоже клиенты вряд ли откажутся, если глобальный форс-мажор не случится... а значит ни куда ни кто не опоздал.... кроссплатформенность это не более, чем плюшка... есть, хорошо, а нет, то и так сойдет... к ней надо стремиться, но без нее пока можно обойтись...
protexprotex; +1 Ответить
16. Steelvan 306 16.01.18 09:58 Сейчас в теме
ActiveX работает только в толстом.

Соответственно, про тонкий и веб можно забыть.
18. protexprotex 139 16.01.18 10:21 Сейчас в теме
(16) Добрый день. Ну, это ведь обходится. Можно написать программу которая будет транслировать изображение из 1С в оконный интерфейс удаленного клиента + все реакции на нажатие и пр. Если интересно - можем на эту тему пообщаться.
21. Steelvan 306 16.01.18 11:39 Сейчас в теме
(18) Проходили.

Сейчас все конфигурации разрабатываются в тонком клиенте.
Использование ActiveX в толстом заставляет пользователя переключаться между режимами тонкий/толстый.

Хочешь это = запускай так, а хочешь другое = запускай это же, но уже по другому.

Костылей можно всяких напридумывать, только как этим пользоваться и сопровождать.

Тем более, повторяюсь, я рассматриваю в контексте разработки коммерческих решений, которые будут оцениваться на костыльность потенциальными покупателями.
23. protexprotex 139 16.01.18 11:43 Сейчас в теме
(21) Да я не об этом - знаете программу Ammy - Admin? вот так же и сделать можно - у клиента запускается программа - окно - и в этом окне отображается окно из удаленного сервера - и вся работа идет, фактически, на удаленном сервере - а клиент и сервер обменивается событиями нажатия кнопок и сжатой видеоинформацией. А на сервере также стоит планировщик - который раздает контекст окон и принимает события от клиентов.
Восьмой; +1 Ответить
25. Steelvan 306 16.01.18 11:46 Сейчас в теме
(23) Может RDP (терминальный сервер) более прямой путь ?
17. Steelvan 306 16.01.18 10:07 Сейчас в теме
http://www.optimasoft.info/

Наше решение тоже базировалось на ActiveX собственной разработки для моделирования.
В итоге клиенты начали требовать работу через веб и эту ветку разработки пришлось бросить.

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

Итого
Вся графика должна быть реализована через JS + HTML + CSS на поле HTML документа, а все компоненты для системного взаимодействия должны быть реализованы через NativeDLL библиотеки. Сейчас IE10 предоставляет достаточно хороший функционал для решения задач.

Писать коммерческие приложения в расчете на COM это тупик. Любой конкурент вас задавит одной возможностью работать через веб.
pvlunegov; +1 Ответить
19. protexprotex 139 16.01.18 10:24 Сейчас в теме
(17) А я и не предлагаю это как коммерческое решение. Кому интересно - пусть пользуется. А кому нет - пусть не пользуется :-). Да и конкурентов я не боюсь - т.к. конкурировать этой AX я ни с кем не хочу :-)
26. pvlunegov 158 20.01.18 08:00 Сейчас в теме
(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 графики.
Приходиться осваивать.
Остальное уже умею.
27. protexprotex 139 20.01.18 08:51 Сейчас в теме
28. pvlunegov 158 20.01.18 09:05 Сейчас в теме
(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 компонент ограничивает развитие проекта и заводит его в тупик.

Ежели при начале проектирования ориентироваться на вышеобозначенные принципы это позволит:

- После создания заготовки годами развивать проект и даже создать команду разработчиков и получать прибыль от него
29. protexprotex 139 20.01.18 09:24 Сейчас в теме
(28) Вы, наверное, плохо читаете посты (или не внимательно). Данная Active-X компонента используется мной в проектах для разработки на c++ builder. К 1С она не имеет никакого отношения. К 1С я ее "прикрутил" в праздники - за день написал на ней игру (на языке 1С - просто для примера). Дальнейшего прямого развития к 1С не будет. Но кому хочется - пусть качают и пользуются. Но развиваться КОМПОНЕНТА будет (для моих проектов на c++ - обработка изображения). Как говорится, кому надо пусть качают. Кому не надо - пусть не качают.
30. protexprotex 139 20.01.18 09:26 Сейчас в теме
(28) И коммерческого использования для разработки игр я не преследовал.
31. Steelvan 306 20.01.18 20:45 Сейчас в теме
20. Steelvan 306 16.01.18 11:32 Сейчас в теме
Все понял :)

Я просто посмотрел на это со своей колокольни разработчика коммерческих решений :)
22. protexprotex 139 16.01.18 11:40 Сейчас в теме
(20) Ничего страшного. По поводу коммерческих решений - если интересно, то можем посотрудничать - есть запускные (готовые) стартапы - распознавание по удаленному запросу номеров автомашин, рукописной текстовой информации, сейчас идет разработка детектирования лиц в потоковом видео + определение что это за человек, определение текстовых меток на видео + отслеживания перемещения объекта (трекинг объекта) на видео и пр.
24. Steelvan 306 16.01.18 11:45 Сейчас в теме
{ОбычноеСобачьеДерьмоДоСловаНо}, но у нас другой профиль. Мы занимаемся бизнес-процессами.

Свои проекты бы поднять :)
32. Dzenn 898 28.08.19 23:51 Сейчас в теме
33. Иваныч 23 29.08.19 12:25 Сейчас в теме
(32) Картинка понравилась, иногда по достижению результата бывает такое настроение
34. protexprotex 139 29.08.19 12:59 Сейчас в теме
(33)
(32)
Вот зачем - Русский человек не ищет легкий путей. И поэтому у нас лучшая военная техника. И прочий люд умстенного труда сколько за бугор не уезжает - все равно у нас их полно
:-)
Оставьте свое сообщение