Вопросы по Quest Navigator
Здесь задаём любые вопросы по плееру Quest Navigator.
Storm:
именно этот файл говорит Quest Navigator`у как именно будет выглядеть игра
А именно (совместно с таблицами стилей и JS) - какие из окон будут отбражаться, какие - нет, их расположение, внешний вид и размер.
Зачем в ней множество div`ов с присвоенными идентификаторами?
Затем, что каждый для чего-то используется. Один для вывода описания, другой для скроллера, третий для инвентаря, и т.д.
Через эти идентификаторы яваскриптовые функции плеера работают с содержимым странички.
именно этот файл говорит Quest Navigator`у как именно будет выглядеть игра?
Да, в числе прочих. HTML-файл определяет базовую разметку, расположение главных блоков в структуре документа по уровням вложенности.
Расположение блоков на экране, определяется через CSS.
Возник вопросы: в каком стиле CSS находиться рамка с двумя полосками, просто хочется её убрать. Так же когда выводиться основное описание локации у нас от этой рамки есть отступы. Мне хочется их брать, чтобы расположить свои элементы там, где нужно. Подскажите где они прописаны.
Storm,
подробно ответить на твой вопрос, к сожалению, некогда, а если не объяснять подробно, то непонятно будет…
Может, кто-нибудь из присутствующих на форуме займётся этим, например, evp или svandrus.
Storm:
в каком стиле CSS находиться рамка с двумя полосками, просто хочется её убрать
Storm, вы вообще заглядывали в стили?
Строки 493…503 файла game.css:
/* Вторичный фон - двойные полоски по краям */
#skin-back2
{
position: fixed;
left: 0px;
top: 0px;
right: 0px;
bottom: 0px;
overflow: hidden;
border-style: solid;
}
Особенно обратите внимание на комментарий в первой строчке этого отрывка :)
Storm:
Так же когда выводиться основное описание локации у нас от этой рамки есть отступы. Мне хочется их брать, чтобы расположить свои элементы там, где нужно. Подскажите где они прописаны.
там же строки 161…164 и 176…179:
/* MAIN DESC AND VARS DESC */
#qsp-main, #qsp-vars {
padding: 10px 19px 0 13px;
}
/* MAIN DESC AND VARS DESC */
#qsp-main, #qsp-vars {
padding: 0;
}
Эти строки затрагивают оформление окон основного и дополнительного описания одновременно.
Nex, подскажи пожалуйста, как сделать, чтобы на некоторых локациях (в зависимости от имени) к <body> добавлялся некий класс?
Если быть точным, то я не могу понять, как в game.js делать проверку значения $curloc.
Я не Nex, но попробую посоветовать не определять в JS значение $CURLOC. Стоит передать ее скрипту как параметр.
И как это сделать?
Так-то всё просто:
function qspSkinOnUpdateSkin() {
$(document.body).toggleClass('%class_name1%', %проверка_имени_локации%);
$(document.body).toggleClass('%class_name2%', %проверка_имени_локации%);
$(document.body).toggleClass('%class_name3%', %проверка_имени_локации%);
}
Но я не понимаю, как записать проверку названия локации.
HertzQ:
подскажи пожалуйста, как сделать, чтобы на некоторых локациях (в зависимости от имени) к <body> добавлялся некий класс?
Делайте это в коде игры, например в onnewloc
EXEC('JS:document.getElementById(''ваш айди'').style.backgroundImage = "url(backgrounds/<<$curloc>>.jpg)";')
Можете сделать проверку на нужные локации if $curloc = … : bla-bla
Или на автомате просто добавляя к названию нужных локаций что-нибудь (а-ля, wood_bg) и
if MID($curloc,len($curloc)-2,3)='_bg':EXEC('JS:...;')
Babai:
Делайте это в коде игры, например в onnewloc
Без обид, но это плохой совет.
HertzQ:
Делайте это в коде игры
Это хороший совет. Я это и имел ввиду. Если он вам не нравится - аргументируйте, пожалуйста.
Код отдельно, оформление отдельно.
Правильно будет реализовать добавление класса именно в game.js, а не в коде игры.
HertzQ:
Правильно будет реализовать добавление класса именно в game.js, а не в коде игры.
И в идеале, после обновления плеера переписывать game.js? Даже если вы добавите свой.js в шаблон, все равно останется шанс на не совместимость, после обновления кода плеера.
Игра не должны зависеть от плеера, все что можно сделать в игре - делайте в игре.
HertzQ:
Код отдельно, оформление отдельно.
Вы все-равно будете делать оформление средствами игры - дивы, стили текста и блоков и офрмлять все через css. JS нужен для “костылей”, крайних случаев когда средствами игры это не реализовать, как в данном случае, так как шаблон игры статичен и неизменяем средствами игры.
HertzQ:
Код отдельно, оформление отдельно.
Вы, кажется, чего-то не понимаете. Пример выше вам показывает, как вставить фон в див, в зависимости от локации. Так вот, это не оформление. Это - контент игры.
Вы будете весь контент выводить в JS и CSS? Тогда зачем вам QSP?
А цитата выше подразумевает, что код, логика игры должны быть отделены от оформления (внешнего представления контента) силами самого QSP. Просто не смешивайте в одной локации логику и оформление.