RU

Вопросы по Quest Navigator

Nex Moderator 21.02.2015 07:05 59 comments 42803 views

Здесь задаём любые вопросы по плееру 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. Просто не смешивайте в одной локации логику и оформление.

Log in or Register to post comments.