Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Скрипты Создание диалогов. Очень просто! (Пусть вас не пугает огромное кол-во текста.) |
Создание диалогов. Очень просто! |
› Понедельник
› 23.09.2013
› 16:23
› Сообщение #
для реагирования на размер монитора используются операторы
т.е. если указать размер x = SafeZoneX; y = SafeZoneY; h = SafeZoneH; w = SafeZoneW; то при любом мониторе картинка будет во весь экран, и левый/верхний угол всегда будет совпадать с монитором. если указать x = 0; y = 0; h = 1; w = 1; то размер и положение фиксируются от точки 0,0 и картинка будет прыгать и вылезать за экран Для твоего случая надо комбинировать. - независимый размер - зависимое положение. x = SafeZoneX; y = SafeZoneY; h = 1; w = 1; |
› Понедельник
› 23.09.2013
› 16:46
› Сообщение #
Спасибо за ответ, а style указывать 48 или оставить мой?
|
› Понедельник
› 23.09.2013
› 16:58
› Сообщение #
стиль на размер и положение не влияет.
|
› Понедельник
› 23.09.2013
› 17:11
› Сообщение #
Оказывается влияет если я меняю на 48 стиль то картинка начинает изменять высоту и ширину при изменении размеров окна игры. Ваш метод так же не помог((
могу показать скрипт. сейчас я проверяю скрипт таким способом, может это не верно? сначала игра на фуллскрине, размер экрана 1980х1080 потом нажимаю alt+enter (виндоумод) и смотрю, что изменилось. |
› Понедельник
› 23.09.2013
› 17:38
› Сообщение #
смотри как изменяются переменные SafeZoneX,итд
только они контролируют размер |
› Вторник
› 08.10.2013
› 19:56
› Сообщение #
Это понятно)) Только толку от этого мало.
Можешь сделать небольшой пример с прямоугольной картинкой, где у тебя не будет расползаться текст и картинка при изменении размеров окна. Добавлено (08.10.2013, 19:56) |
› Вторник
› 08.10.2013
› 20:30
› Сообщение #
Для удобства, должно быть несколько элементов расположенных с одинаковым шагом
|
› Среда
› 09.10.2013
› 13:46
› Сообщение #
спасибо!
|
› Вторник
› 01.07.2014
› 22:11
› Сообщение #
скрипт для определения ИДД диалога.
sleep 3; hint "GO"; // старт // сбор инфы об основных окнах, чтобы на них больше не отвлекаться _ms = []; for "_a" from 2 to 1000 do { If (isNull (FindDisplay _a)) then { _ms set [count _ms, _a]; }}; // теперь одкрывайте любой диалог, его ИДД будет записан в массив и скопирован в буфер. _md = []; While {true} do { { if !(isNull (FindDisplay _x)) then { if !(_x in _md) then { _md set [count _md, _x]; hint "DZIN" }}} forEach _ms; copyToClipboard str _md; sleep 0.5; }; Сообщение отредактировал Slon - Вторник, 01.07.2014, 22:11
|
› Суббота
› 26.07.2014
› 13:30
› Сообщение #
|
› Суббота
› 26.07.2014
› 14:02
› Сообщение #
стандартной такой нет. Но используя контроль события Нажатия или клика, и зная координаты и размер кнопки, можно сделать кнопку любой формы.
https://community.bistudio.com/wiki/User_Interface_Event_Handlers Например (для круглой) в момент клика обработчик передаёт координаты положения курсора, проверяется расстояние до центра кнопки, если оно меньше радиуса, значит был клик на кнопке. Тут можно подать звук, заменить картинку, изменить яркость, прозрачность итд. Сообщение отредактировал Slon - Суббота, 26.07.2014, 14:28
|
› Воскресенье
› 23.11.2014
› 17:00
› Сообщение #
Slon, Здравствуйте! Какими командами можно работать из скрипта с диалогом? Редактировать его, удалять элементы, добавлять элементы?
|
› Понедельник
› 24.11.2014
› 00:01
› Сообщение #
Команд множество. тут подборка
https://community.bistudio.com/wiki....Control удалять/добавлять элементы нельзя. Их можно делать невидимыми - изменяя размер до Нуля, делая прозрачными, смещая за пределы экрана, скрыть спец командой ctrlShow [idc, show] |
› Понедельник
› 24.11.2014
› 07:27
› Сообщение #
Slon, с командой ctrlShow разобрался. Спасибо огромное!!! Вот только понять не могу как полноценно можно работать с GUI если с его редактированием такие ограничения... Вот смотрите я делаю доп инвентарь, по сюжету это будет виртуальная сумочка под всякую мелочь. Там должны лежать те вещи которые в арме не предусмотрены для лежания в инвентаре. Вопрос встал только с GUI. Представим что этот инвентарь имеет форму квадрата, в нем кнопки с изображением предметов лежащих в нем, так вот когда я кладу туда предметы то можно рассчитать сколько сейчас находится в инвентаре предметов и определить текущему его местоположение, но если я из середины беру предмет, то как мне передать тем, что лежали после него, что им нужно сдвинуться и заполнить пустое пространство??? Если на каждое место в инвентаре сделать соответствующую переменную (_а = 1, _b = 1, с = 1...) при помещении предмета в инвентарь менять тут переменную на которую помещен предмет допустим на 1 и тогда теоретически можно сделать проверку на то, какое из мест занято и делать эту проверку при помещении предметов в инвентарь и удалении предметов. Как думаете так пойдет или есть варианты проще? А и еще, чтоб у меня нормально работал этот инвентарь, то мне получается нужно в GUI прописать все что в нем может быть использовано когда либо а при запуске с помощью ctrlShow скрыть все предметы которые не нужны а когда понадобятся можно их ctrlShown обратно вернуть да? Только не особо понятно как ctrlShown работает...
Тут все ясно. disableSerialization; _ds = findDisplay 100000; _cn = _ds displayCtrl 100006; _cn ctrlShow false; А тут не ясно что есть _bool и что тогда есть _ctrl _bool = ctrlShown _ctrl; |
› Понедельник
› 24.11.2014
› 19:06
› Сообщение #
|
| |||
Чат сайта |