On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение



Сообщение: 2
Зарегистрирован: 31.08.07
Репутация: 0
ссылка на сообщение  Отправлено: 31.08.07 01:30. Заголовок: Смена клавишы вызова инвентаря


Как поставить определенную клавишу для вызова инвентаря
ну например левый клик?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 8 [только новые]


moderator




Сообщение: 13
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 31.08.07 15:24. Заголовок: Re:


Обрабатывать событие в скрипте onClick или onKeyPress, где вызывать окошко инвентаря.

Спасибо: 0 
ПрофильЦитата Ответить



Сообщение: 7
Зарегистрирован: 31.08.07
Репутация: 0
ссылка на сообщение  Отправлено: 31.08.07 16:29. Заголовок: Re:


Поподробней пожалуйста

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Сообщение: 15
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 02.09.07 18:45. Заголовок: Re:


Ну ты умеешь в скриптах обрабатывать нажатия кнопок? Вот и нужно для появления инвентаря обработать требуемое событие. Без программирования тут не обойтись.
Загляни в папку проекта wme_demo_3d/data/scripts. Открой скрипт game.script
Это главный сценарий игры. Найди там строку on "LeftClick". Это обработчик нажатия левой кнопки мыши. Весь код, заключённый в этом блоке в фигурные скобки, будет выполняться по левому клику мышью. Вот тут и надо написать код, отвечающий за вызов инвентаря.
Хотя, пожалуй, будет более правильным написать этот код в файле scene.script, который является общим для всех сцен.

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 6
Зарегистрирован: 23.10.07
Репутация: 0
ссылка на сообщение  Отправлено: 18.05.08 19:13. Заголовок: Если я не прав, пора..


Если я не прав, поравьте. Во всех демо сценах инвентарь выезжает, если подвести курсор к верхней части экрана. Исследуя скрипты, я не нашел нигде строк, которые загружали бы окно инвентаря в игру, как новый объект. Вместо этого в Project Managere в разделе Game setting можно указать, какое окно использовать в качестве Inventory window. Но здесь можно указывать только файлы-описания с расширением def. В игре же окно можно загружать окна методом LoadWindow только используя файлы-описания с расширениеv window. Соответственно нельзя загрузить окно методом LoadWindow из файла-описания def, и нельзя указать в Game Setting окно из файла-описания window.

Создать окно инвентаря любого вида можно утилитой WindowEdit. Но эта утилита сохраняет окно в файл с расширением def. Такое окно загружается в игру, если на него сослаться в разделе Game Setting.

Окно инвентаря можно создать "руками" в блокноте и сохранить с расширением window. Такое окно можно загружать в игру методом LoadWindow.

В WME есть ряд методов для работы с инвентарем - добавить/удалить объект, скроллинг объектов в окне. Но эти методы работают для окна, которое загружено через Game Setting. Но для такого окна нельзя обратаывать события. Получается, чтобы воспользоваться методами, предоставляемыми WME нужно смириться с тем, что окно инвентаря будет всегда выезжать, если подвести мышь к верхней кромке экрана. Для того, чобы вызывать окно инвентаря другим способом (например нажатием правой клавиши мыши или какой-нибудь кнопкой на клавиатуре) нужно окно инвентаря загружать как обычное окно и разрабатывать самому весь инструментарий для управления инвентарем?

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 7
Зарегистрирован: 23.10.07
Репутация: 0
ссылка на сообщение  Отправлено: 18.05.08 20:21. Заголовок: Поправлю сам себя :)..


Поправлю сам себя :)
Окно инвентаря - объект особенный. Соответственно и открывать/закрывать его нужно по особенному, а именно спомощью команд Game.InventoryVisible = true/false. Извините, что нафлудил в предыдущем посте, я только начинаю осваивать WME и не заметил в файле game_loop.script таких строк

// display the inventory window
if(Game.Interactive && Game.MouseY < 45 && !Game.ResponsesVisible && !WinMenu.Visible) Game.InventoryVisible = true;
else if(Game.MouseY > 100 || Game.ResponsesVisible || !Game.Interactive) Game.InventoryVisible = false;


Спасибо: 0 
ПрофильЦитата Ответить
moderator




Сообщение: 55
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 19.05.08 13:33. Заголовок: Да, инвентарь - особ..


Да, инвентарь - особое окно. Мне тоже ещё предстоит его переделать.
Инвентарь загружается следующим образом (скрипт game_loop.script)
var InvWindow = Game.GetInventoryWindow();

Спасибо: 0 
ПрофильЦитата Ответить
moderator




Сообщение: 57
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация: 0
ссылка на сообщение  Отправлено: 21.05.08 05:35. Заголовок: Хочу поправить свою ..


Хочу поправить свою ошибку. Строка
var InvWindow = Game.GetInventoryWindow();
не загружает инвентарь, а возвращает ссылку на уже загруженный объект "Инвентарь".

Спасибо: 0 
ПрофильЦитата Ответить





Сообщение: 8
Зарегистрирован: 23.10.07
Репутация: 0
ссылка на сообщение  Отправлено: 21.05.08 13:30. Заголовок: Вот как я реализовал..


Вот как я реализовал открытие/закрытие окна инвентаря по правому клику. Эти строки прописываются в файле game.script. Соответственно из файла game_loop.script нужно убрать строки, описывающие работу окна инвентаря, которые я привел в конце своего поста за 23.10.07 (если вы делаете игру на основе шаблонов).

on "RightClick"
{
var invwindow = Game.GetInventoryWindow(); //Получить дескриптор окна инвентаря
if(Game.InventoryVisible) //Если окно открыто,
{
invwindow.Close(); //Выключить монопольный режим для окна инвентаря
Game.InventoryVisible=false; //Закрыть окно
}
else //Иначе
{
Game.InventoryVisible = true; //Делаем окно инвентаря видимым
invwindow.GoExclusive(); //Включаем монопольный режим для окна инвентаря
}
}

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 2
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет