Сообщение: 15
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация:
0
Отправлено: 02.09.07 18:45. Заголовок: Re:
Ну ты умеешь в скриптах обрабатывать нажатия кнопок? Вот и нужно для появления инвентаря обработать требуемое событие. Без программирования тут не обойтись. Загляни в папку проекта wme_demo_3d/data/scripts. Открой скрипт game.script Это главный сценарий игры. Найди там строку on "LeftClick". Это обработчик нажатия левой кнопки мыши. Весь код, заключённый в этом блоке в фигурные скобки, будет выполняться по левому клику мышью. Вот тут и надо написать код, отвечающий за вызов инвентаря. Хотя, пожалуй, будет более правильным написать этот код в файле scene.script, который является общим для всех сцен.
Отправлено: 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 нужно смириться с тем, что окно инвентаря будет всегда выезжать, если подвести мышь к верхней кромке экрана. Для того, чобы вызывать окно инвентаря другим способом (например нажатием правой клавиши мыши или какой-нибудь кнопкой на клавиатуре) нужно окно инвентаря загружать как обычное окно и разрабатывать самому весь инструментарий для управления инвентарем?
Отправлено: 18.05.08 20:21. Заголовок: Поправлю сам себя :)..
Поправлю сам себя :) Окно инвентаря - объект особенный. Соответственно и открывать/закрывать его нужно по особенному, а именно спомощью команд Game.InventoryVisible = true/false. Извините, что нафлудил в предыдущем посте, я только начинаю осваивать WME и не заметил в файле game_loop.script таких строк
Сообщение: 55
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация:
0
Отправлено: 19.05.08 13:33. Заголовок: Да, инвентарь - особ..
Да, инвентарь - особое окно. Мне тоже ещё предстоит его переделать. Инвентарь загружается следующим образом (скрипт game_loop.script) var InvWindow = Game.GetInventoryWindow();
Сообщение: 57
Зарегистрирован: 10.07.07
Откуда: Россия, Новосибирск
Репутация:
0
Отправлено: 21.05.08 05:35. Заголовок: Хочу поправить свою ..
Хочу поправить свою ошибку. Строка var InvWindow = Game.GetInventoryWindow(); не загружает инвентарь, а возвращает ссылку на уже загруженный объект "Инвентарь".
Отправлено: 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(); //Включаем монопольный режим для окна инвентаря } }
Все даты в формате GMT
3 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет