Видеоуроки по QSP

Видеоуроки по QSP

Наконец я подготовил первую серию видеоуроков по QSP.

Это заняло почти полтора года, и многие из вас уже освоили всё, что я здесь рассказываю, но надеюсь эти видеоуроки помогут новичкам, которые постоянно появляются в нашем сообществе.

Пару слов в оправдание, зачем это нужно.

Во-первых, я позавидовал instead'у, где такие уроки есть.
Во-вторых, некоторые люди лучше учатся и легче усваивают материал, когда этот материал наглядно демонстрируется, а не просто записан в книжке.
Ну и в-третьих, я постарался выстроить уроки по принципу "от простого к сложному" и попутно всё ОЧЕНЬ подробно объяснить, чего, на мой взгляд, пока что нет ни в справке, ни в имеющихся учебниках. (К сожалению, из-за этого уроки получились затянутыми и занудными, но придётся потерпеть)

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

По ходу я постараюсь запиливать видеоинструкции на сложные темы (парочка таких уже есть).

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

Добро пожаловать на мой канал.

Вводный

 Спойлер Show Spoiler Hide Spoiler
 

1:29 Что нам понадобится для написания игр:
2:05 Quest Soft Player 5.7.0 — плеер
3:41 Quest Generator 4.0.0 Beta — редактор
6:30 Настраиваем редактор для работы
8:54 outro
Вывод текста. Часть 1
 Спойлер Show Spoiler Hide Spoiler
 

0:39 Создаём локацию
2:19 Выводим текст в окно основного описания *p
4:36 Команда *pl. Вывод текста и с последующим переводом каретки на новую строку.
7:00 Команда *nl. Перевод каретки на новую строку с последующим выводом текста.
8:07 Очищаем окно основного описания. Команда *clr *clear
9:24 Выводим текст в окно дополнительного описания pl p nl
9:50 Очищаем окно дополнительного описания clr clear
11:33 упрощённая форма команды *pl
12:42 outro
13:03 Памятка
Вывод текста. Часть 2
 Спойлер Show Spoiler Hide Spoiler
 

00:54 Апострофы
01:13 Фигурные скобки
02:07 Многострочный текст
04:18 Зачем текст помещается в кавычки, апострофы или фигурные скобки
05:57 Как выводить на экран кавычки, апострофы и фигурные скобки
08:05 Экранирование кавычек и апострофов
10:38 Outro
Действия
 Спойлер Show Spoiler Hide Spoiler
 

02:27 Наше первое действие, оператор ACT, однострочная форма записи
05:01 Как это работает. Порядок выполнения кода
06:31 Многострочная форма записи ACT
09:31 Порядок выполнения кода
12:13 Распространённая ошибка начинающих авторов при написании действий
20:03 CLA — оператор для очистки окна действий
25:58 Комбинируем команды в действиях
27:18 DELACT — оператор, удаляющий действие по названию
30:37 Outro
Переходы
 Спойлер Show Spoiler Hide Spoiler
 

00:24 Что такое локация, и чем является локация в QSP
01:01 Пишем титульный лист. Локации-страницы
02:03 Страница об авторе
03:00 Страница информации об игре
03:36 GOTO — оператор перехода на новую локацию
04:08 Порядок выполнения кода
05:45 Действие перехода
12:06 Типы локаций по использованию в разных играх
12:53 Порядок выполнения кода в игре, на локациях. Как работает плеер
15:46 Пишем локации-комнаты, наполняем игру содержимым
27:19 Проверяем работоспособность локаций и действий переходов, которые мы написали
31:25 Outro
Программки-помощники
 Спойлер Show Spoiler Hide Spoiler
 

00:27 Trizbort trizbort.com
03:40 Рисуем карту локаций в программе Trizbort
13:25 Программа MS Visio
18:00 Outro
Предметы
 Спойлер Show Spoiler Hide Spoiler
 

01:02 ADDOBJ — оператор добавления предмета в окно предметов
03:50 Действие поднятия предмета
06:18 DELOBJ — оператор удаления предмета из окна предметов
06:50 Действие сброса предмета
09:09 Предметы кончились, но мы продолжаем выбрасывать. Что будет?
11:09 KILLOBJ — оператор очистки окна предметов
13:58 Outro
14:00 Памятки
Формы записи
 Спойлер Show Spoiler Hide Spoiler
 

00:44 Порядок выполнения кода игры. Как работает плеер
04:33 Две и больше команд в одной строке кода
08:00 Два однострочных действи в одной строке кода
12:55 Порядок воспроизведения плеером нескольких вложенных друг в друга действий
22:16 Предостережение в заключение
23:33 Outro
Операции и выражения
 Спойлер Show Spoiler Hide Spoiler
 

00:26 Порядок выполнения команд. Как работает плеер. Закрепление
01:32 Операторы и значения
03:59 Типы значений: текстовые и числовые
06:29 Выражения
09:26 Операция сложения
10:32 Конкатенация через амперсанд (Склейка строк операцией &)
13:22 Конкатенация через плюс (Склейка строк операцией +)
14:03 Плюсуем число к строке
16:05 Операция вычитания
17:38 Операции умножения и деления
19:51 Операция MOD — вычисление остатка от деления
21:23 Порядок выполнения операций в выражении
24:58 Операции сравнения. Если выражение ложно, в результат выдаётся 0, Если выражение правдиво, в результат выдаётся -1
28:40 Операция отрицания NO
31:23 Унарный минус
32:00 Операция (или функция) OBJ. проверяет наличие предмета. 0 — предмета нет, -1 — предмет есть.
33:46 Логическое И и логическое ИЛИ (AND и OR)
36:22 Outro
ПодВыражения
 Спойлер Show Spoiler Hide Spoiler
 

00:17 Выражения
00:30 Значения выражений
01:10 Как плеер выполняет команду, вычисляет значение выражения
02:45 Числа в константах
02:57 Подвыражения (Вложенные выражения)
06:30 Сложное выражение с подвыражениями
08:50 Тонкости при работе с вложенными выражениями.
11:22 Домашнее задание
11:50 Outro
Переменные
 Спойлер Show Spoiler Hide Spoiler
 

00:18 Проверяем домашнее задание
01:48 Знакомимся с переменными
02:44 Имена переменных
03:21 Различия в именах текстовых и числовых переменных
03:36 Присваиваем переменным значения
12:50 что будет, если записать переменную без оператора
14:30 Лирическое отступление
15:07 Важный момент. Инициализация (объявление) переменных
16:12 Применяем наши новые знания
22:50 Ограничения на использование переменных
25:11 Outro
Конструкции условий. Часть 1
 Спойлер Show Spoiler Hide Spoiler
 

01:34 Оператор условия IF
05:41 Многострочная форма записи оператора условия
09:25 Действие по условию
11:54 Ключевое слово ELSE — код, который выполняется, если условия не срабатывают.
17:35 проверяем, как работает код
24:22 Условие в действии
28:45 Outro
Конструкция условий. Часть 2
 Спойлер Show Spoiler Hide Spoiler
 

00:18 Проектируем перемещение по локации с помощью конструкций условий
05:12 Ключевое слово ELSEIF — иначе если. Если не сработало первое условие, проверяем второе
06:10 и т.д.
11:49 Гуляем по подъезду
16:15 Outro
Операторы, функции, аргументы
 Спойлер Show Spoiler Hide Spoiler
 

00:24 Операторы
01:17 Понятие аргумента
02:00 ADDOBJ — оператор, которому можно передавать два аргумента
04:12 Функции
04:32 RND — возвращает значение от 1 до 1000
06:30 $curloc — возвращает название текущей локации
08:22 $selobj — возвращает название выделенного предмета
10:33 RAND — возвращает случайное число в указанных пределах
12:52 Порядок вычисления выражения с функциями
16:24 Два аргумента к функции RAND
18:41 MAX — функция, которая выбирает наибольшее значение из перечисленных (функция, которой можно передать более двух аргументов)
20:53 MIN — функция, которая выбирает наименьшее значение из перечисленных
22:14 Информация для закрепления
23:23 Outro
Урок 12. Интерфейс и системные переменные
 Спойлер Show Spoiler Hide Spoiler
 

01:19 Меняем настройки плеера
07:56 Включаем/отключаем окна из кода игры
08:36 SHOWOBJS — оператор управления окном предметов
09:31 SHOWACTS — оператор управления окном действий
09:54 SHOWSTAT — оператор управления окном дополнительного описания
10:06 SHOWINPUT — оператор управления полем ввода
10:26 Настраиваем игру, используя операторы управления окнами
12:47 Системные переменные
13:17 bcolor — цвет фона игры
15:07 RGB — функция, вычисляющая числовой код цвета по составляющим, которые передаются в аргументах
17:16 Опыт по получению цветовых составляющих нужного цвета
18:58 fcolor — цвет шрифта игры
19:56 fsize — размер шрифта
20:56 $fname — шрифт, семейство шрифта
22:11 оформляем нашу игру вырвиглазными цветами
27:03 $backimage — фоновый рисунок в окне основного описания
34:00 Outro
34:55 Post-Scriptum
Урок 13. HTML
 Спойлер Show Spoiler Hide Spoiler
 



Изменено: aleksversus
12.Дек.18 13:53:39
Aleks Versus
воздвигатель башни
useravatar
Offline
1456 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

Хмм как идея вот штука для облегчения записи перехода или обработки локации с помощью html. Кидать лучше в onNewLoc

 Спойлер Show Spoiler Hide Spoiler
 

Код:


!{ Форматы ссылок:
((текст)) - при клике перейти (gt) на локацию с названием "текст"
((текст||)) - при клике обработать (gs) локацию с названием "текст"
((текст|локация)) - при клике перейти (gt) на указанную локацию, текущее описание заменяется новым
((текст||локация)) - при клике обработать (gs) указанную локацию, новое описание добавляется к текущему
((текст|||строка кода)) - при клике выполнить строку кода
((текст|локация|строка кода)) - то же, что и ((текст|локация)), но перед переходом выполнить строку кода
((текст||локация|строка кода)) - то же, что и ((текст||локация)), но перед обработкой выполнить строку кода
}
$text = $maintxt
$regex = '\(\(([^\)\|]+)(\|{0,3})([^\)\|]*)(\|?)([^\)]*)\)\)'
:loop
position = strpos($text, $regex)
if position:
    $words = strfind($text, $regex, 1)
    $firstDee = strfind($text, $regex, 2)
    $location = strfind($text, $regex, 3)
    $secondDee = strfind($text, $regex, 4)
    $stringCode = strfind($text, $regex, 5)
    if $location = "" and $stringCode = "":
        if $firstDee <> "":
            $link = '<a href="exec: gs ''<<$words>>'' "><<$words>></a>'
        else
            $link = '<a href="exec: gt ''<<$words>>'' "><<$words>></a>'
        end
    elseif $stringCode <> "" or $location <> "":
        if len($firstDee) = 1:
            $link = '<a href=''exec: dynamic "<<$stringCode>>" & gt ''<<$location>>'' "><<$words>></a>'
        elseif len($firstDee) = 2:
            $link = '<a href=''exec: dynamic "<<$stringCode>>" & gs ''<<$location>>'' "><<$words>></a>'
        else
            $stringCode = $location
            $link = '<a href=''exec: dynamic "<<$stringCode>>" ''><<$words>></a>'
        end
    end
    $text = replace($text, strfind($text, $regex), $link)
    jump 'loop'
end
*clr
$text

пример

Код:


*p 'В класе сидят ученики. Один из них ((Кунын|||gt ""Dialog1"", ""Kunin"")), который вам до сих пор должен полтинник.'
*pl
*nl 'Пара '
if provBaba = 0:
    *p '((девчёнок|||gt ""Dialog1"", ""Baba"")) хихикающих как гиены.'
elseif quest_progres['Влюбленность!'] = 1:
    *p '((девчёнок|||gt ""Dialog1"", ""Baba"")).'
else
    *p 'девчёнок, то и дело посматривают на вас.'
end
*nl
*nl 'Ваш классный руководитель ((Анигелина Семёновна|||gt ""Dialog1"", ""U4ilka"")).'
*nl
*nl 'И стандартный ((школьный задира|||gt ""Dialog1"", ""Zadira"")).'

Здесь надо было передавать аргумент поэтому так записывал. А можно было бы ((текст|локация)) если не нужны аргументы при передаче.

oleksandrigo
ТвореЦ
useravatar
Offline
98 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

oleksandrigo,
я делаю в своих играх нечто подобное, да. Правда синтаксис несколько отличается.

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

Код:

[page=366]делаете шаг вперёд[/page]


на земле лежит[obj]яблоко|спелое яблоко[/obj].

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

Aleks Versus
воздвигатель башни
useravatar
Offline
1456 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

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

ejikplains
useravatar
Offline
53 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

ejikplains написал(а):

з.ы. Вспоможительные, плиз на вспомогательные, если только это не особенность

Слово "вспомогательные" не совсем то, но ок, исправил.)

Изменено: aleksversus
08.Дек.18 08:38:55
Aleks Versus
воздвигатель башни
useravatar
Offline
1456 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

Aleks Versus,
А таймлайн какой-то можно будет прикладывать?
Ролики долгие и нужное найти непросто

Последний из Гаяр
Начинающий
useravatar
Offline
32 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

Последний из Гаяр,
отличная мысль. Почему-то она мне в голову не приходила. Попозже сделаю.

Aleks Versus
воздвигатель башни
useravatar
Offline
1456 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

Ого, Алекс крутой! А я только сейчас эту тему увидела.

Ajenta
демиург
useravatar
Offline
1355 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

Ajenta,
спасибо smile

Aleks Versus
воздвигатель башни
useravatar
Offline
1456 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Re: Видеоуроки по QSP

Урок 14. Массивы

 Спойлер Show Spoiler Hide Spoiler
 

Aleks Versus
воздвигатель башни
useravatar
Offline
1456 Сообщений
Информация о пользователе в сообщениях
Администратор отключил публичную отправку сообщений

Информация

Статистика форума:
 
Всего тем:
1031
Всего опросов:
14
Всего сообщений:
16790453
Сообщений на этой неделе:
18
Пользователи форума:
 
Всего пользователей:
2275
Последним зарегистрировался:
Sheridan