Новая виртуальная реальность

Форум проекта универсальной многопользовательской 3D-вселенной, основанной на движке OpenSpace3D

Цель - создание виртуальной среды с возможностью полного контролируемого погружения.
Проект открытый - можно смотреть исходный код, и предлагать свои дополнения и улучшения.
Основная идеологическая база - роман Сергея Глуцкого "Виртронация".

О проекте Что уже сделано Планы Контакты Дальше >>

    SCOL - черновик хэлпа

    Поделиться
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Сб 1 Авг 2015 - 12:00

    В этой теме буду переводить с английского туториалы по языку программирования SCOL. Знание SCOL необходимо для более глубокоуровневой разработки приложений с помощью движка OpenSpace3D.

    Нужную информацию буду брать, начав путешествие с этой ссылки http://www.scolring.org/
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Сб 1 Авг 2015 - 13:04

    SCOL - это свободный, функциональный, интерпретируемый язык высокого уровня. В основном он используется для создания многопользовательских 3D-приложений режима реального времени.

    SCOL находится в стадии разработки и стремится быть мультиплатформенным. Его новый 3D-движок полностью базируется на Ogre3D со множеством расширений.

    Кроме некоторых специфических функций, код, написанный на SCOL будет прочитан и выполнен на всех поддерживаемых платформах.
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Сб 1 Авг 2015 - 15:30

    СОДЕРЖАНИЕ (Постепенно будет в виде гиперссылок).

    1. Описание
    1.1. Описание виртуальной машины SCOL
    1.2. Связь между виртуальной машиной SCOL и файлами на вашем компьютере
    1.3. Реализация окружения
    1.3.1. Установка SCOL
    1.3.2. Специальная конфигурация
    1.3.3. Девелопинг (развитие)

    2. Hello World
    2.1. Первая версия
    2.2. Вторая версия
    2.3. Третья версия

    3. Принципы программирования на SCOL
    3.1. Среды и каналы
    3.1.1. Среды
    3.1.2. Каналы
    3.1.3. Запуск SCOL-машины: инициализация
    3.2. Функциональное программирование
    3.3. Типы и типизация
    3.3.1. Введение в типы
    3.3.2. Синтаксис типов SCOL
    3.3.3. Дополнительная информация о типах
    3.4. Синтаксис языка SCOL
    3.5. Основные конструкции
    3.5.1. Главные элементы
    3.5.2. Использование кортежей
    3.5.3. Применение списков
    3.5.4. Использование таблиц
    3.5.5. Дополнительно о некоторых основных конструкциях
    3.5.6. Использование структур
    3.5.7. Использование конструкторов типов
    3.5.8. Использование функций
    3.5.9. Переопределение функций
    3.5.10. Новые примеры
    3.5.11. Стандартная библиотека
    3.6. Глобальные переменные SCOL-машины

    4. Каналы и [серверы, коммуникации, связи?]
    4.1. Манипуляция каналами
    4.1.1. Манипуляции API каналов
    4.1.2. Среда управления API
    4.1.3. Создание и уничтожение каналов
    4.1.4. Создание и уничтожение сервера
    4.1.5. Дополнительные функции управления кеаналом
    4.1.6. Синтаксис сценария
    4.2. Коммуникации в SCOL
    4.2.1. Управление соединениями: [частные, конкретные, определённые] события
    4.2.2. Отправка сообщения с помощью _onfunction
    4.2.3. Управление очередями сообщений
    4.2.4. Отправка UDP-сообщений
    4.2.5. Другое применение конструкторов коммуникаций
    4.3. Методология сетевого программирования в SCOL

    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Сб 1 Авг 2015 - 19:51

    5. Управление файлами
    5.1. COL - разделы
    5.2. Типы файлов
    5.2.1. Нормальные файлы [?]
    5.2.2. Подписанные файлы [?]
    5.3. Файлы управления API [?]
    5.4. Расширения файлов с функцией чтения [?]
    5.5. Файлы выбора интерфейса

    6. События - [driven (?)] и программирование графического интерфейса
    6.1. Основные принципы
    6.1.1. Частные каналы [?]
    6.1.2. Управление событиями
    6.2. Примеры
    6.2.1. Окна
    6.2.2. Таймеры

    7. 3D - программирование
    7.1. Основные концепции 3D
    7.1.1. Сцена
    7.1.2. Сессия
    7.1.3. Материал
    7.1.4. Производительность
    7.1.5. Характеристики SCOL 3D Voy@ger
    7.2. 3D-формат файлов [?]
    7.3. Манипуляции с 3D API
    7.3.1. Новые типы
    7.3.2. Сессия
    7.3.3. Общее управление объектами
    7.3.4. Управление материалами
    7.3.5. Управление текстурами
    7.3.6. Управление рендерингом и связь с 2D - интерфейсом
    7.4. Управление столкновениями
    7.4.1. Принципы
    7.4.2. API

    8. [Bignum (?)] программирование
    8.1. Введение
    8.2. API
    8.3. Пример

    9. SQL
    9.1. Введение
    9.2. API
    9.2.1. Подключение созданной функции
    9.2.2. Отключение функции
    9.2.3. Запрос функции
    9.3. Примеры

    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Сб 1 Авг 2015 - 21:41

    10. Интерфейс HTTP
    10.1. HTTP-сервер
    10.1.1. Принципы
    10.1.2. Некоторые советы
    10.2. HTTP клиент
    10.2.1. Принципы
    10.2.2. Метод POST

    11. Программирование мультимедиа
    11.1. API RealPlayer
    11.2. API Quicktime
    11.3. API базового мультимедиа
    11.4. Аудио API
    11.4.1. Запись / воспроизведение (моно)
    11.4.2. Компрессия / Декомпрессия аудио
    11.4.3. Микширование с 3D-звуком
    11.5. Видео API
    11.6. Печать

    12. SCOL-машина: Start-up, запуск, стандартный клиент и сервер
    12.1. SCOL Voy@ger: супервизор
    12.2. Запуск супервизора
    12.3. Старт SCOL-машины путём запуска скрипта
    12.3.1. Запуск скрипта
    12.3.2. Права на операции (?)
    12.3.3. Память
    12.4. Запуск другой машины или другого процесса из SCOL-машины
    12.5. Связь между SCOL-машиной и супервизором
    12.6. Стандартные клиент и сервер
    12.6.1. Общие замечания по интерфейсу SCOL-машины
    12.6.2. Стандартный сервер третьей версии

    13. Возможности интеграции
    13.1. Взаимодействие с помощью обмена файлами
    13.2. Взаимодействие с помощью базы данных: SQL библиотеки
    13.3. Взаимодействие через HTTP: библиотеки HTTP клиента и сервера
    13.4. Интеграция в веб-страницы
    13.4.1. Простое взаимодействие
    13.4.2. Сложное взаимодействие

    14. DMS (?) программирование: распределённая модульная система
    14.1. Описание
    14.2. Определение
    14.3. Принципы
    14.3.1. Архитектура модулей
    14.3.2. Дерево документов
    14.3.3. Инкапсуляция
    14.3.4. Ссылки и связи между модулями
    14.3.5. Динамическая активация
    14.3.6. Пользователи и пользовательские экземпляры
    14.3.7. Редактор сайта SCS
    14.4. Загрузка ресурсов
    14.5. DMS сайта - определение файлов [?]
    14.5.1. Файлы DMS: распространённые классы модулей
    14.5.2. Файлы DMS
    14.6. API
    14.6.1. API севера
    14.6.2. API клиента
    14.6.3. Редактор API
    14.7. Пример 1: Модуль работает только на сервере
    14.8. Пример 2: Распространение модуля и управление зоной
    14.9. Пример 3: Распределённый модуль и модуль внутри сообщения
    14.10. Модуль C3d3 и плагины
    14.10.1. Концепция 3D API
    14.10.2. Анкоры (якоря)
    14.10.3. Плагины
    14.10.4. Примеры



    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вс 2 Авг 2015 - 7:57

    1. Описание

    Данная глава, включающая описание SCOL, поможет вам сделать первые шаги в этой среде программирования.

    1.1. Описание виртуальной машины SCOL

    [Внимание! Некоторые главы мне придётся переработать с учётом той версии виртуальной машины, которая установлена у меня на компьютере. Так как в данном (вольном) переводе документации многое в основном будет привязываться именно к программированию в среде движка OpenSpace3D, то я иногда буду отступать от основного текста оригинала, и дополнять его необходимыми на мой взгляд сведениями. Большие отступления от основного текста постараюсь выделять цитатой и иногда зелёным цветом. Качество самого хэлпа думаю от этого не пострадает Smile]

    Виртуальная машина SCOL - это программа, основанная на технологии SCOL. Виртуальная машина создаёт виртуальную версию "идеальной" машины со следующими характеристиками:
    -- Автоматическое управление памятью. Разработчики не должны сами заботиться о резервировании и об освобождении памяти.
    -- "Машинным языком" этой виртуальной машины является язык SCOL
    -- В виртуальную машину встроено полное управление сетью, [маскируемое (?)] языком SCOL
    -- Есть много библиотек, позволяющих подключать к виртуальной машине графические, звуковые, и другие интерфейсы пользователя, о которых будет в дальнейшем рассказано в этой документации.

    Виртуальная машина SCOL считается универсальной, так как это краеугольный камень любой системы, основанной на технологии SCOL. Любая такая система может состоять из разного числа SCOL-машин, сообщающихся друг с другом. Также отметим, что на одном компьютере может работать сразу несколько виртуальных машин.

    Windows-версия виртуальной машины, которая называется Scol Voy@ger (на данный момент последняя её версия - 6.4.5 от марта 2015 года), при установке размещается по пути C:\Program Files (x86)\Scol Voyager для 64-битных систем и C:\Program Files\Scol Voyager для 32-битных систем. В моём случае SCOL-машина установилась автоматически при установке движка OpenSpace3D. При этом нужно явно указать, что хотите дополнительно её скачать. Весит она примерно 70 мегабайт. Можно также SCOL Voy@ger 6.4.5 скачать и отдельно по этой ссылке http://www.scolring.org/rsc/scol_plugin.exe
    В этом случае SCOL-машину можно без проблем использовать даже без установки OpenSpace3D.

    А вот структура файлов и каталогов виртуальной машины, автоматически (вместе с OpenSpace3D) установленной на моём компьютере:



    В правой части окна исполняемый файл Scol.exe , запускающий машину - выделен. Слева, если вы заметили, среди прочих каталогов располагается папка Moya_pervaya_programma. Там находятся файлы с кодом первой программы на языке SCOL, которую скоро и рассмотрим.
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вс 2 Авг 2015 - 9:18

    1.2. Связь между виртуальной машиной SCOL и файлами на вашем компьютере

    Как и любая другая машина, SCOL-машина использует общую память для хранения как программ, так и данных. Соответственно, машина может читать и записывать файлы, что как правило считается специалистами серьёзной угрозой безопасности. Ведь SCOL-приложения часто подключены к интернету, поэтому нельзя, чтобы содержание файлов с пользовательских компьютеров неконтролируемо распространялось по сети.

    Учитывая всё это, система управления файлами SCOL-машины была разработана таким образом, чтобы, с одной стороны, отделить друг от друга приложения, использующие SCOL от приложений, не использующих эту технологию. А с другой стороны, система управления файлами изолирует также друг от друга и приложения, написанные на SCOL. Такая система, позже рассматриваемая более подробно, основана на концепции SCOL-разделов.

    SCOL-машина использует SCOL-разделы в том порядке, в котором они определены. Если файл не найден в первом разделе - он будет искаться во втором, и так далее.

    [далее идёт пока непонятная краткая информация про кэш и разделы в структуре каталогов виртуальной машины. По причине несоответствия путей и названий каталогов на моём компьютере - пока эту информацию пропущу]

    1.3. Реализация окружения

    1.3.1. Установка SCOL [Информация скорее всего устарела]


    1.3.2. Специальная конфигурация

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

    Тем не менее логи могут быть полезны разработчикам. В частности, они указывают на ошибки синтаксиса или на ошибки компиляции в целом. Кроме того, некоторые функции языка SCOL во время выполнения программы могут быть записаны в лог-файл. Часто это помогает эффективно отладить программу.

    Теперь посмотрим как настроить машину на создание лог-файлов.

    -- Запустите виртуальную машину
    -- В трее появится значок машины

    -- Жмём правой кнопкой по этой иконке
    -- Выбираем Advanced... > expert Mode
    -- Появится окно, в котором строку "echo 0" надо заменить на "#echo 0" (символ # используется для добавления комментариев к строке). Также замените строку с "log no" на "log yes". На скрине получившиеся строки выделены. Жмите Ок.


    Теперь система готова для написания вашей первой программы. Если захотите отключить функцию записи логов в журнал - просто восстановите эти две строки.

    1.3.3. Девелопинг (развитие)

    Для разработки программ в виртуальной машине SCOL потребуется какой-либо внешний текстовый редактор для ввода кода. Можно пользоваться обычным встроенным в Windows блокнотом, но лучше если редактор будет более продвинутый с возможностью использовать подсветку и отступы для разных языков программирования. Если редактор позволяет - выберите в его настройках отображение синтаксиса языка С.
    Я буду использовать Notepad++. Чтобы там выбрать нужный синтаксис, выбираем в меню Синтаксисы > C > C
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вс 2 Авг 2015 - 11:37

    2. Hello World

    Начнём с самой известной программы, которая выводит на экран сообщение Hello World! (Привет мир), и сделаем три версии этой программы. Если в этой главе что-то останется непонятным, будьте терпеливы - в следующих главах всё будет подробно объяснено.

    2.1. Первая версия

    Итак, первым делом открываем корневой каталог виртуальной машины SCOL C:\Program Files (x86)\Scol Voyager
    Пока не будет сказано иное - все наши программы размещаем в папке с названием Partition_LockedApp. Открываем её и внутри создаём папку с названием Moya_pervaya_programma. Внутри уже этой программы создаём два файла. Поступаем просто - правой кнопкой мыши на свободном пространстве и выбираем Создать > Текстовый документ. Когда два текстовых файла созданы, меняем их расширения с txt на pkg и scol. Будьте внимательны, в Windows должно быть включено отображение расширений файлов, иначе если добавите к имени точку и расширения то файлы всё равно останутся текстовыми.

    Чтобы настроить отображение расширений в Windows 8 нужно в проводнике выбрать меню Вид > Параметры. Откроется окно, в котором выбираем вкладку Вид. Далее в списке Файлы и папки ищем строку Скрывать расширения для зарегистрированных типов файлов и снимаем слева галочку. После - жмём Ок.

    Теперь даём одинаковые имена получившимся файлам. Я назвал их Hello_mir
    Всё, заготовка у нас есть. Осталось вписать в эти файлы нужные коды. Принцип тут такой - файл с расширением scol будет содержать команды для запуска файла с расширением pkg. А в последнем, в свою очередь, будет уже записана сама программа.

    Открываем файл с расширением scol с помощью Notepad++. Если этот редактор у вас не портативный, а установлен в системе, то достаточно кликнуть правой кнопкой мыши по файлу и выбрать в контекстном меню команду "Edit with Notepad++" Далее, если этого ещё не сделали, выбираем в Нотепад++ синтаксис языка Си. И пишем код.

    Код будет таким:


    Код:
    _load "Moya_pervaya_programma/Hello_mir.pkg"
    main

    Сохраняем код, закрываем редактор. Открываем таким же образом файл с расширением pkg. Вписываем туда следующие строки:


    Код:
     /* commentary */
    fun main()=
    _showconsole;
    _fooS ">>>>>>>>>>>> Hello Mir!";;

    Сохраняем. Закрываем редактор.
    Пришло время запустить нашу программу. Для этого запускаем двойным кликом файл с расширением scol. В итоге откроется вот такое консольное окно:




    Внизу консольного окна виден результат работы программы. Программа напечатала строку >>>>>>>>>>>> Hello Mir!
    Содержимое окна консоли также тесно связано с сообщениями, записываемыми в лог-файлы.
    Также хочу заметить, что логи и многое другое хранится на диске C в папке с документами по этому пути C:\Users\имя_пользователя\Documents
    После установки движка OpenSpace3D и SCOL-машины, там появятся две папки с названиями OpenSpace3D и Scol Voyager. Такое задание - каждый пусть самостоятельно откроет эти папки и просмотрит всё что там находится
    .

    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вс 2 Авг 2015 - 13:11

    Разберёмся с написанным кодом.
    Команда _load в файле сценария запуска с расширением scol указывает, что нужно запустить файл программы с расширением pkg, находящемуся по указанному пути.
    В нашем случае виртуальная машина автоматически распознала путь C:\Program Files (x86)\Scol Voyager\Partition_LockedApp , а потом перешла уже по дальнейшему пути к нужному файлу "Moya_pervaya_programma/Hello_mir.pkg"
    Вторая строка скрипта, где написана команда main  приказывает программе запустить главную функцию fun main()

    Программа, написанная на языке SCOL может содержать следующие виды определений:
    -- def - определение функций
    -- var и typeof - с этих ключевых слов начинаются определения переменных
    -- typedef и struct - определения новых типов
    -- И так далее...

    Каждое определение заканчивается двойной точкой с запятой ";;". Такой способ записи взят из языка Caml, который был разработан в 1985 году в Национальном научно-исследовательском институте Франции (INRIA).

    Комментарии записываются как в языке Си - между символами /* и */
    Но в отличии от языка Си, комментарии можно делать многоуровневыми (древовидными), что является более практичным.

    Итак, в нашей программе у нас есть главная функция "main", за которой следует пара скобок. Между скобками ничего нет - это значит, что функция не принимает никакие аргументы (параметры). За знаком равно "=" следует тело функции, которое может состоять из множества операторов. Каждый оператор (выражение) заканчивается точкой с запятой, а каждое определение, как было сказано выше - двойной точкой с запятой. В нашем примере тело функции имеет два оператора
    _showconsole;
    _fooS ">>>>>>>>>>>> Hello Mir!";;
    Чтобы указать, что  _fooS ">>>>>>>>>>>> Hello Mir!" является последним оператором в теле функции, он закрывается двойной точкой с запятой. показывая таким образом виртуальной машине, что определение функции закончено.
    Выражение _showconsole; указывает, что консольное окно нужно отобразить на экране. В противном случае консоль окажется скрытой.
    Проще говоря - это окно вообще не покажется на экране, ни в развёрнутом, ни в свёрнутом виде.
    Второе выражение позволяет напечатать нужную нам строку в консоли.

    _showconsole и _fooS это библиотечные функции (то есть заранее записанные и встроенные в виртуальную машину) языка.
    _fooS требует принятия аргументов типа "строка" (типы изучим позже), затем отображая эту строку в консоли.
    В языке SCOL аргументы функций записываются не в скобках, как в языке Си. Они следуют сразу за именем функции. Также аргументы не разделяются запятыми как в Си, а пишутся друг за другом через пробел.

    Если вы захотите всё же использовать скобки, то нужно заключать в них либо аргумент, либо полностью запись "функция+аргумент"
    Следующие три выражения равнозначны и полностью корректны:
    _fooS (">>>>>>>>>>>> Hello World»)
    (_fooS ">>>>>>>>>>>> Hello World")
    (_fooS (">>>>>>>>>>>> Hello World"))

    Позднее мы вернёмся к этому важному моменту.
    Обратите внимание - если вам не нравится использовать круглые скобки, можете писать вместо них фигурные скобки. Они работают точно таким же образом (используются для той же цели).

    Виртуальная машина работает до тех пор, пока не закрыто окно консоли. Как только вы закроете это окно - машина тоже прекратит работу. Это, кстати, один из способов прекращения работы SCOL-машины.

    Что касается вывода нашей программы в консоль, заметьте, что перед выводом на печать строки Hello Mir! чуть выше появляется строка fun main : fun [] S
    Эта надпись очень важна - она говорит о том, что виртуальная машина успешно скомпилировала функцию main, дав ей нужный тип. Машина поняла, что функция не принимает никаких значений (параметров, аргументов), и возвращает тип "строка".

    Обратите внимание, что в SCOL очень редко приходится вручную определять тип функции а также типы её аргументов и возвращаемых значений. Виртуальная машина обычно делает это за программиста.
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Пт 7 Авг 2015 - 7:13

    Внимание! OpenSpace3D обновился до версии 1.9.0, а виртуальная машина Scol Voy@ger - до версии 6.5.0. Обновления вышли 4 августа этого (2015) года. Поэтому в дальнейшем переводы документации по OpenSpace3D и языку программирования SCOL будут основываться уже на этих версиях.

    Наиболее заметные изменения в OpenSpace3D:
    -- Теперь можно выбрать, чтобы интерфейс программы был на русском языке.
    -- Внедрена поддержка экспорта проекта на Android (правда почему-то опция неактивна)
    -- Поддержка Ogre 3D версии 1.10
    -- Поддержка последней версии физического движка Newton
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Чт 20 Авг 2015 - 14:50

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

    2.2. Вторая версия

    Теперь давайте немного перепишем код в обоих файлах.

    Открываем файл Hello_mir.scol с помощью текстового редактора, и вносим туда небольшие изменения - добавляем во вторую строку слово "Test" вместе с кавычками.
    В итоге весь код в scol-файле будет выглядеть так:
    Код:
    _load "Moya_pervaya_programma/Hello_mir.pkg"
    main "Test"

    Сохраняем, закрываем.
    Теперь откроем таким же образом файл Hello_mir.pkg. Туда уже вносим существенные изменения. В итоге код должен получиться таким:
    Код:
    /* Hello_Mir.pkg */

    fun end(a,b,r)=
    _closemachine;;

    fun main(title)=
    _DLGrflmessage
    (_DLGMessageBox _channel nil title "Hello Mir!" 0)
    @end 0;;

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



    При нажатии на кнопку Ок окно закроется. Вместе с виртуальной машиной SCOL.

    Программа имеет ряд особенностей:
    -- из scol-файла в функцию main передаётся параметр, отвечающий за название самой программы. В данном случае, можно заметить, что в заголовке диалогового окна появилось название Test. Чтобы функция main "поняла", что принять нужно именно название окна заголовка, а не что-то иное, в файле Hello_Mir.pkg это надо прописать явным образом. Смотрим на эту строку:
    Код:
    fun main(title)=
    Видно, что функция main должна принять параметр, имеющий имя title. Имея в скобках такой параметр, функция будет знать, что всё, что записано в scol-файле после названия функции (main), должно отображаться в заголовке окна.
    [неясен вопрос с возможностью корректной работы программы при убирании скобок вокруг аргументов функции. В прошлых главах сказано, что можно обходиться без скобок, но если написать так fun main title = то программа выдаст ошибку, а если поставить в scol-файле дополнительные скобки, например, так main ("Test") , то запустится только виртуальная машина, без запуска созданной нами программы.]

    -- Тело функции main в pkg-файле хотя и записано в трёх строках, но имеет всего лишь одно выражение (один оператор). Для наглядности можно записать функцию вот в таком виде:
    Код:
    fun main (title) =
    _DLGrflmessage(_DLGMessageBox _channel nil title "Hello Mir!" 0) @end 0;;
    Разберём этот оператор. Сначала вызывается библиотечная функция _DLGrflmessage, принимающая три параметра.
    [рекомендую для ознакомления с библиотечными функциями, их действием и принимаемыми параметрами, зайти на эту страницу http://www.scolring.org/files/doc_html/scol_language.html
    Возможно данная документация тоже будет со временем переведена.
    Разбираемая сейчас функция описана здесь http://www.scolring.org/files/doc_html/_dlgrflmessage.html]

    О том, что это за функция, _DLGrflmessage, и какие параметры она принимает, я попытаюсь рассказать более подробно, чем это написано в учебнике. Непонятные моменты, и что-либо, требующее повышенного внимания, как обычно, буду выделять красным цветом.
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Пн 7 Сен 2015 - 0:10

    Внимание!

    Все переводы документации по языку программирования SCOL и движку OpenSpace3D теперь буду записывать только на форуме Клуб Программистов в этих темах:
    1. OpenSpace3D - перевод хэлпа на русский http://www.programmersforum.ru/showthread.php?t=282034
    2. SCOL - перевод учебника на русский http://www.programmersforum.ru/showthread.php?t=282035
    3. Обсуждение технологии и выкладывание новых версий перевода документации по API ("Неведомые" язык SCOL и движок OpenSpace3D) http://www.programmersforum.ru/showthread.php?t=282024

    А эта тема остаётся уже просто для обсуждения тонкостей технологии. В конце перевода выложу сюда также готовые файлы с учебниками.
    avatar
    Suemir
    Admin

    Сообщения : 110
    Дата регистрации : 2015-07-22

    Re: SCOL - черновик хэлпа

    Сообщение автор Suemir в Вт 8 Сен 2015 - 17:06

    Заходил посмотреть, но пока ещё не начал изучать. Просто поглядел интуитивно, что предстоит. Это очень хорошо, что ты решил выкладывать на сайте, где много программеров бывает, может от туда кто-нибудь заинтересуется. Порадовал парень, который про 3д макс сказал.
    Личка заполнилась, переходим на форум общаться ^_^
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вт 8 Сен 2015 - 19:49

    В OpenSpace3D всего пару кнопок немного похожи на 3д-максовские, наверно у людей складывается впечатление, что это редактор трёхмерной графики.
    Кстати ролик на ютубе снова открыл для всеобщего просмотра, просто сначала посчитал, что раз в нём говорится только об открытой части проекта, то может людей ввести в заблуждение, когда будет ещё и закрытая часть.
    avatar
    Suemir
    Admin

    Сообщения : 110
    Дата регистрации : 2015-07-22

    Re: SCOL - черновик хэлпа

    Сообщение автор Suemir в Вт 8 Сен 2015 - 19:57

    Понятно теперь почему видеоролик закрывал. А я не внимательный ^_^
    Но с закрытостью всё нормально. Делаем открытый, а дальше как переговаривались, и если получится полное погружение.
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вт 8 Сен 2015 - 20:23

    Во парадокс)) Ты в основном ратуешь за закрытый но говоришь сначала делаем открытую часть, я - за открытый, но говорю сначала делаем закрытую часть Smile Хотя наверно ты прав, общую основу можно сразу делать с открытым кодом. Но чтобы не запутаться всё таки с октября можно начать уже готовить техническое задание для обоих частей проекта, а там и посмотрим как технологически удобней решить все проблемы, то есть с чего лучше начать.
    avatar
    Suemir
    Admin

    Сообщения : 110
    Дата регистрации : 2015-07-22

    Re: SCOL - черновик хэлпа

    Сообщение автор Suemir в Вт 8 Сен 2015 - 20:37

    Я теперь понимаю, что ты не против закрытой, поэтому больше осознаю важность открытого проекта. Учитывая, что готовый коммерческий вариант будет создать намного сложнее, к тому-же он должен быть максимально универсальным, чтобы нравилось людям. Для этого нужен открытый, который как первопроходец покажет, что это будет за полное погружение и получится ли желаемое. И когда появятся первые результаты, тогда можно с той же командой сделать ответвление, тут главное успеть быстрее всех, потому-то в случае успеха полного погружения проект может пустить другие коммерческие корни.
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вт 8 Сен 2015 - 20:59

    Да и открытую часть не так уж и легко будут создавать, учитывая, что за дело взялись не профи Smile Но, как ты говорил, тут наверно важна целеустремлённость.
    Кстати, предлагаю для особых случаев создать раздел для администраторов и модераторов на форуме, которым можно пользоваться вместо лички.
    avatar
    Suemir
    Admin

    Сообщения : 110
    Дата регистрации : 2015-07-22

    Re: SCOL - черновик хэлпа

    Сообщение автор Suemir в Вт 8 Сен 2015 - 21:11

    Согласен, это конечно не легко будет сделать. Но проект нам даст опыт, практику и возможно даже успех ^_^ Если у нас получится, то это будет означать очень многое, сейчас даже трудно представить. Можно конечно и создать закрытый раздел для админов, но мне кажется, что мы много полезного говорим. У нас и философия бывает, и что-нибудь точное проскакивает. Я вроде как особых секретов не заметил. А когда я пишу в личку, я начинаю замечать предложения которые могли бы помочь будущим однокомандникам, в том, или ином аспекте проекта. Но я в принципе не против закрытого раздела. Вдруг бывают чисто админские разговоры ^_^
    avatar
    Oleg75
    Admin

    Сообщения : 205
    Дата регистрации : 2015-06-30
    Возраст : 42

    Re: SCOL - черновик хэлпа

    Сообщение автор Oleg75 в Вт 8 Сен 2015 - 21:15

    Это да, иногда тоже замечаю за собой стремление некоторые дискуссии из лички перенести на всеобщее обозрение. Вот для админских разговоров раздел уже готов Smile

    Спонсируемый контент

    Re: SCOL - черновик хэлпа

    Сообщение автор Спонсируемый контент


      Текущее время Вс 21 Окт 2018 - 18:33