Александр, подскажите как в "милене 2.5" конопку "меню(Milena)" перенести в другое место экрана? И можно ли менять ее под свой стиль (оформление) игры?
Вопросы по разработке
Сообщений 31 страница 54 из 54
Поделиться322010-08-07 23:07:40
Вообще, можно.
local menu = element.get('div[type="menu_content"]')
if menu then
menu.style.left = "*";
menu["align-popup"] = "bottom"
end
Так можно передвинуть кнопку в правый верхний угол экрана, и сделать, чтобы меню выпадало снизу. Делать это нпдо в локации common
Можно изменить картинку кнопки, но для этого нужно будет дописать в milena.style что-то вроде
div.menu_button
{
background-image: url(ВАШ_ПУТЬ_К_КАРТИНКЕ);
}
div.menu_button:hover
{
background-image: url(ВАШ_ПУТЬ_К_КАРТИНКЕ);
end;
}
*просто изменять псевдо-классы, из кода пока нельзя
Отредактировано Александр Граф (2010-08-07 23:11:20)
Поделиться332010-08-07 23:34:46
А локация common - это главная локация игры?.
и где расположен файл milena.style?
Отредактировано Lis (2010-08-07 23:38:12)
Поделиться342010-08-08 08:54:34
Стоп. common это локация, которая вызывается до текущей локации.
А milena.style это не файл, а переменная. Тоесть делается вот так:
milena.style = (milena.style or "")..[[div.menu_button
{
background-image: url(ВАШ_ПУТЬ_К_КАРТИНКЕ);
}
div.menu_button:hover
{
background-image: url(ВАШ_ПУТЬ_К_КАРТИНКЕ);
end;
}]]
Правда, пока не будет работать, потому что я подумал - чтоб работало, надо немного поправить, и поправил. У себя. Но вот сейчас сделал небольшой модуль, чтобы всё-таки работало.
*Модуль - модуль, который вносит исправления при подключении
Поделиться352010-08-08 09:08:15
тоесть подключаем модуль restyle.mmod и можно менять стиль?..
А можно в коде прописать так что бы основное меню вызывалось через клавишу ESC как в Milena Lite 2 ?
Поделиться362010-08-08 11:05:28
Да. Подключаем его, и меняем.
В коде, конечно, можно прописать всё, другое дело, что придётся много писать. Лучше я позже добавлю возможность переключения между двумя видами.
Поделиться372010-08-15 16:37:01
В основном файле подключаю фаил с локациями - include('location/begin.msf') потом с него пытаюсь вызвать локацию через функцию proc 'begin' . Но локация незагружается. Может сейчас это делается подругому?
Поделиться382010-08-16 15:52:46
Нет, работает так же. Проверьте:
1) возможно, после названия локации begin в файле стоял пробелы или знаки табуляции. Если это так, то их нужно убрать.
2) имя локации отличается от того, что в файле регистром. Если так, нужно привести к одному регистру.
3) и вообще, есть ли такая локация в файле begin.msf? Если в файле одна локация, её всё равно нужно как-то назвать, названия локаций не генерируются из имён файлов. (это для справки)
Поделиться392010-08-16 17:17:53
Нашел причину)))....Оказывается у меня не загружалась локация, потому-что она была в кодировке UTF-8. После того как перевел локацию begin.msf в кодировку ANSI она запустилась..При этом главный файл был в кодировке ANSI
Поделиться402010-08-16 17:21:50
Надо чтоб всё было в ANSI. UTF-8 пока не читаем)
Поделиться412010-08-16 17:25:50
пускай будет в ANSI это не так и важно))... Александр, а Вы немогли бы в следующей версии добавить на форму "Милены" кнопку сворачивания окна?
Поделиться422010-08-17 08:40:55
Добавлю. Тем более, я немного ошибок в модулях нашел, но не критичных. Так что в субботу будет исправленная версия. с кнопочкой:)
Поделиться432010-08-17 18:28:59
Как правельно задавать размеры окна? Пишу window.width = 800 window.height = 600 window.resizeable = not window.resizeable Но программа не реагурует на эти команды, как правельно задавать парамерты окна?
Поделиться442010-08-18 05:57:55
нужно проверить не находится ли окно в полноэкранном режиме; если так, нужно перейти в оконный режим.
Поделиться452010-08-18 17:46:19
Спасибо!.. А подскажите как теперь меняется фоновая картинка меню. Раньше это было text.bgimage ="image.jpg" . теперь через эту функцию меняется фон главного окна. А как задать фон меню, когда нажимаешь ESC ?
Отредактировано Lis (2010-08-18 18:51:54)
Поделиться462010-08-19 06:00:23
standard.menu.style
содержит css стиль окошка. чтобы поменять фон, нужно сделать так:
standard.menu.style = "background-image: url(путь к картинке);"
это добавляет больше возможностей:) ещё почитайте про expandable background. пригодится
Поделиться472010-08-19 17:13:53
Спасибо, Александр!. А где про это можно прочитать?
Поделиться482010-08-20 07:35:26
на сайте htmlayout, точной ссылки я не дам, или можно посмотреть примеры на эту же тему. тоже в htmlayout'e
Поделиться492010-08-22 13:08:21
подскажите, как добавить предмет в инвентарь и при этом вывести его на экран (название предмета) в определеную область экрана?
PS. Александр, большое спасибо за новый релиз...
Поделиться502010-08-22 17:27:42
Итак. Есть два способа.
1) Напечатать всё это в локации common, задав до этого стиль для элемента div с классом inv:
:init require "new.inventory" --подключаем модуль инвентаря milena.style = 'div.inv{position:fixed; width:w; top:t;}' --Чисто для примера, нужно ставить свои значения endl :common --cls теперь нужен обязательно cls() p '<div .inventory>' inv.get('ничего нет.') p '</div>' endl
2) Воспользоваться новыми возможностями, и не печатать по сто раз одно и то же (это немного сложнее, правда, но, мне кажется, красивее). Определение стиля оставляем такое, какое оно есть.
:init require "new.inventory" --подключаем модуль инвентаря require "dom" --подключим модуль dom для удобства milena.style = 'div.inv{position:fixed; width:w; top:t;}' --Чисто для примера, нужно ставить свои значения --Но нам понадобится новая функция, которая возвратит текст - то, что нужно вывести на панели инвентаря function getinv(pr) inv.init() local result = "" pr = pr or inv.prefix --Указанный или текущий префикс for i, v in ipairs(inv.items) do if v.prefix==pr then --Вещи для указанного префикса result = result..('<a .button href=%q>%s</a><br>'):format(v(), v()) --Добавляет в выводимый текст ссылку на вещь в инвентаре end end return result end endl :common --cls теперь нужен обязательно cls() --Выводим поле под инвентарь if not dom 'div.inventory' then dom['body']:set_html('<div .inventory/>', 2) end endl :common1 if dom 'div.inventory' then --Заменяем текст на панели инвентаря dom['div.inventory']:set_html(getinv(), 0) end endl
Поделиться512011-02-27 12:35:18
И сразу возникла небольшая проблема, даже джве (сверху новая версия, снизу - старая):
не захотела работать таблица text, и вместо зеленого на черном получается стандартный черный на белом текст; плюс возникли проблемы доступа к таблицам, которых раньше не было
http://rghost.ru/4555034
Или это я что-то делаю не так?
Отредактировано Andreas (2011-02-27 12:36:32)
Поделиться522011-03-02 16:39:46
а можно код? так как
text.color = green text.bgcolor = black
прекрасно работал на обеих версиях (скачанной и моей новой, которую никто не видел))
И, кстати, не "одеть", а "надеть". У меня раньше тоже такое было. Одеть можно кого-то, а надеть можно что-то.
Поделиться532011-06-27 01:32:19
Вот такой пример кода
require "new.inventory" inv.add2("Thing1","INV1") inv.add2("Thing2","INV2") inv.add2("Thing3","INV3") :loc1 pnl(#inv.items) endl
В результате ошибка "attempt to index global "inv" (nil value)", хотя в старой версии все работало.
Поделиться542011-06-27 14:15:45
Всё стало немного строже в новой версии. Нужно явно указывать локацию (пусть даже без имени)
: require "new.inventory" inv.add2("Thing1","INV1") inv.add2("Thing2","INV2") inv.add2("Thing3","INV3") :loc1 pnl(#inv.items) endl
будет работать