Пишем QSP-игру в текстовом редакторе - Урок 4. Настройки, Форматирование
Автор: elmortem   
14.04.2010 15:16
Индекс материала
Пишем QSP-игру в текстовом редакторе
Урок 1. Локации, Действия, Переходы
Урок 2. Переменные, Условия
Урок 3. Инвентарь
Урок 4. Настройки, Форматирование
Все страницы

Урок 4. Настройки, Форматирование


В этом уроке рассмотрим, как сделать наш квест более привлекательным. В первую очередь следует настроить интерфейс так, чтобы в нём не оставалось ничего лишнего, отвлекающего от игры. Если вы сейчас запустите наш пример, то увидите, что мы не используем "поле дополнительного описания" (справа внизу) и "командную строку" (внизу). Чтобы они нам не мешали, их нужно отключить. Делается это следующим образом:

Пример (7.txt):

#Начало
SHOWSTAT 0
SHOWINPUT 0
-

Мы вызываем инструкцию «SHOWSTAT» с параметром 0 для того, чтобы отключить "поле дополнительного описания". Если бы мы передали 1 (или число отличное от 0), то поле было бы видимым. То же самое и с «SHOWINPUT» (командная строка). Так же мы можем отключить инвентарь - «SHOWOBJS», и список действий - «SHOWACTS».

Теперь нам нужно сделать так, чтобы наш текст был более подходящим для нашего квеста. Для этого есть 4 переменные.

Пример (8.txt):

#Начало
BCOLOR = RGB(0, 0, 0)
FCOLOR = RGB(255, 0, 0)
FSIZE = 14
$FNAME = 'Arial'
'Этот текст написан красным цветом, четырнадцатым размером и шрифтом Arial на чёрном фоне.'
-

Цвет в QSP задаётся с помощью функции «RGB», в которую мы передаём значения его отдельных компонент - красного (Red), зелёного (Green) и синего (Blue). Отсюда и название функции.
Если вы не знакомы с таким способом задания цветов, то вам может помочь программа MS Paint, которая входит в стандартную поставку Windows. Для этого запустите программу, щёлкните два раза по любому цвету в палитре (внизу) и затем нажмите кнопку "Определить цвет". Появится расширенная палитра, на которой можно выбрать нужный вам цвет. Под палитрой снизу будет 3 поля (Красный, Зелёный, Синий), значениями из этих полей вам и нужно заполнить функцию RGB.
Переменная «BCOLOR» устанавливает цвет заднего фона, «FCOLOR» - цвет текста.
Следует учесть, что если присвоить переменной цвета значение 0 (к примеру, «BCOLOR = 0»), то проигрыватель квестов заменит указанный цвет на цвет из настроек самого плеера, т.е. цвет фона 0 это прозрачный цвет.
Чтобы изменить размер текста, используется переменная «FSIZE», шрифт текста задётся строковой переменной «$FNAME».

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

Есть ещё один, способ сделать ваш текст внешне более привлекательным. Использование HTML. Язык гипертекстовой разметки документов очень хорошо подходит для этой цели. С помощью него можно не только задавать цвет, размер и шрифт текста, но и делать это для отдельных слов, фраз или даже букв, а так же позиционировать текст на экране. Например, можно расположить заголовки по центру строки, или справа. Для этого нужно переменной USEHTML задать значение 1 (или любое отличное от 0). В следующем примере я приведу лишь небольшую часть возможностей, которых, впрочем, будет достаточно для оформления игры.

Пример (9.txt):

#Начало
USEHTML=1
BCOLOR = RGB(255, 255, 255)
'<center><font size="20" color="#FF0000" face="Times New Roman"><b>Текстовый квест</b></font></center><br>'
' <b>Ваша цель</b> - зарабатывать <i>деньги</i>, покупать на них <i>подарки</i> и дарить своим <i>близким</i>.'
ACT '<b>Начать игру</b>':GOTO 'Дом'
-
#Работа
'<center><b>Порт</b></center><br>'
' Порт находится на самой южной окраине города. Здесь постоянно загружаются и разгружаются различные суда. Рабочих рук не хватает и складской бригадир всегда рад заплатить <i>деньги</i> за помощь.'
' У вас <font size="16"><b><<Деньги>></b></font> монет.'
' Вам нужно перенести <font size="16" color="#00AA00"><b><<3-Ящик>></b></font> ящика.'
ACT 'Идти домой':GOTO 'Дом'
ACT 'Идти в магазин':GOTO 'Магазин'
ACT 'Перенести ящик':
Ящик = Ящик + 1
IF Ящик = 3:
Деньги = Деньги + 5
Ящик = 0
END
GOTO 'Работа'
END
-
#Магазин
'<center><b>Магазин</b></center><br>'
' Магазин небольшой, но тут обычно есть всё, что нужно простому горожанину. Витрины заставлены различными товарами. У кассы стоит полная женщина и хмуро смотрит на вас.'
' У вас <font size="16"><b><<Деньги>></b></font> монет.'
IF Деньги >= 3:
ACT 'Купить конструктор':
Деньги = Деньги - 3
ADDOBJ 'Конструктор'
GOTO 'Магазин'
END
END
IF Деньги >= 5:
ACT 'Купить плюшевого медведя':
Деньги = Деньги - 5
ADDOBJ 'Плюшевый медведь'
GOTO 'Магазин'
END
ACT 'Купить вязальный набор':
Деньги = Деньги - 5
ADDOBJ 'Вязальный набор'
GOTO 'Магазин'
END
END
IF Деньги >= 7:
ACT 'Купить инструменты':
Деньги = Деньги - 7
ADDOBJ 'Инструменты'
GOTO 'Магазин'
END
END
ACT 'Идти домой':GOTO 'Дом'
ACT 'Идти в порт':GOTO 'Работа'
-
#Дом
'<center><b>Дом</b></center><br>'
' Дома всегда очень уютно. И вкусно пахнет едой. Мама, сидя в кресле, вяжет носки. Отец с вашим братом чинит скворечник. Сестра хлопочет на кухне. Дома всегда хорошо.'
' У вас <font size="16"><b><<Деньги>></b></font> монет.'
IF OBJ 'Конструктор':
ACT 'Подарить конструктор брату':
DELOBJ 'Конструктор'
' - Вот тебе конструктор.'
' - Спасибо, брат.'
DELACT 'Подарить конструктор брату'
END
END
IF OBJ 'Плюшевый медведь':
ACT 'Подарить медведя сестре':
DELOBJ 'Плюшевый медведь'
' - Вот тебе плюшевый медведь.'
' - Спасибо, брат.'
DELACT 'Подарить медведя сестре'
END
END
IF OBJ 'Вязальный набор':
ACT 'Подарить набор маме':
DELOBJ 'Вязальный набор'
' - Вот тебе вязальный набор.'
' - Спасибо, сынок.'
DELACT 'Подарить набор маме'
END
END
IF OBJ 'Инструменты':
ACT 'Подарить инструменты отцу':
DELOBJ 'Инструменты'
' - Вот тебе инструменты.'
' - Спасибо, сын.'
DELACT 'Подарить инструменты отцу'
END
END
ACT 'Идти в порт':GOTO 'Работа'
ACT 'Идти в магазин':GOTO 'Магазин'
-