Перейти к содержимому


Фотография

GUI


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 81

#21 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 25 October 2014 - 20:46

Я это все от начала до конца прочел, но вот почему то пока не понадобится что то конкретно, оно не воспринимается в общей массе написанного. Обязательно буду перечитывать. 

_this

Это системная переменная используемая в коде, когда вы вызываете некий код из некого файла вы не редко передаёте коду и переменную, или набор-массив переменных, и вот как раз системная переменная _this и предназначена для того, что бы вы могли в том-неком файле с кодом получить переданные переменные необходимые для использования.

// вызов некого файла с кодом или функции, не важно
newCar execVM "некийФайл.sqf"; // передаём в некий код ссылку на машину

// некийФайл.sqf
_newCar = _this; // теперь мы можем обратиться к объекту машина из этого места

// вызов некого файла с кодом или функции, не важно
[newCar, driverCar, passengerCar] execVM "некийФайл.sqf"; // передаём в некий код массив содержащий ссылки на несколько объектов

// некийФайл.sqf
_newCar = _this select 0;
_driverCar = _this select 1;
_passengerCar = _this select 2;

Доходчиво?


  • 1

#22 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 25 October 2014 - 21:32

 

 

А такие элементы одного GUI собираются сразу во едино или их потом можно каждый по отдельности запустить и тем самым построить этот элемент? И они все запускаются при помощи 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 ?
class RscDisplayTest {	// этот класс представляет собой весь диалог, имя класса это есть то имя которое вы будете давать команде: createDialog "RscDisplayTest";
	onLoad = "[""onLoad"",_this,""RscDisplayTest"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""";	// этот параметр описывает какой файл с кодом будет вызван когда откроется дисплей, в данном случае это RscDisplayTest.sqf
	onUnload = "[""onUnload"",_this,""RscDisplayTest"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; // тоже самое, только когда закроется
	idd = 602;	// каждый дисплей обязан иметь уникальный ID
	enableSimulation = 1; // за пример взят RscDisplayInventory, и скорее всего это относится персонально к нему, я думаю вам это не надо, но решил оставить
	
	class controls {	// а вот с этого места начинается создание того что будет на экране
		
		class CA_ContainerBackground : RscText { // Фон, зоздан на основе класса "текстовое поле - RscText", на выходе он выдаёт просто фон
			idc = 1001;	// id фона, если я не ошибаюсь, по уговору, всё что текст нумеруется от 1000
			
			// здесь настраивается размер и позиция на дисплее
			x = "1 * 					(			((safezoneW / safezoneH) min 1.2) / 40) + 		(safezoneX + (safezoneW - 					((safezoneW / safezoneH) min 1.2))/2)";
			y = "1 * 					(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + 		(safezoneY + (safezoneH - 					(			((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
			w = "12 * 					(			((safezoneW / safezoneH) min 1.2) / 40)";
			h = "23 * 					(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
			//
			
			colorBackground[] = {0.05, 0.05, 0.05, 0.7};	// цвет фона настраивается здесь
		};
		
		// И далее лепите остальной интерфейс
	};
};

  • 1

#23 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 08:39

Вот тут у меня запускается фон (точнее указанное изображение) а вторая часть class RscButton взята из вашего примера от бисов, так вот она не показывается и в ней не нахожу того, что бисы хотели после ее нажатия. Либо я со слоями что то напутал, либо она должна как то иначе запускаться, хотя она входит в состав диалога который запускаю.


Сообщение отредактировал Djon: 26 October 2014 - 11:35

  • 0

#24 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 26 October 2014 - 10:29

Djon, 1. Сворачивайте большие куски текста (кода) спойлером и используйте "<>" (что бы читающему было легче ориентироваться)
2. Для фона БИС'ы предусмотрели специальную секцию:

class controlsBackground {
// собственно фоны писать лучше тут (они вроде будут иметь какие тоособые полезные свойства)
};
class objects {
// define controls here
};
class controls {...

  • 0

#25 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 10:41

Вот тут где пишется активация кнопки и действие по ее нажатию. Пример из wiki но он просто создает фон и текст на нем... Голова уже кипит от всего этого, но бросать не хочется

Тут


Сообщение отредактировал Djon: 26 October 2014 - 11:06

  • 0

#26 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 10:52

vlad333000,  C спойлером как то пока не разобрался но код теперь точно всегда в <> будет)))


  • 0

#27 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 26 October 2014 - 11:01

1. Пишешь текст

2. Выделяешь нужный текст

3. На панели выбираешь кнопочку "Специальные BB-коды" (Верхний ряд, 3 слева)

4. В списке выбираешь "spoiler2"

5. Во вкладке "option" пишешь "Заголовок" (если нужно)

Это спойлер


Сообщение отредактировал vlad333000: 26 October 2014 - 11:02

  • 0

#28 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 11:03

vlad333000, Спасибо) Сейчас отредактирую тему)


  • 0

#29 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 12:02

Если учитывать, что о GUI я не знал ни чего, то теперь могу вывести на экран текст, изображение, определить их форму и местоположение на экране, запускать это при помощи кнопок клавиатуры. 

Думал с активным текстом и кнопками менюшки будет просто, но увы, сегодня тестил все что нашел, все что вытащил из армы, само собой через раз вылет из игры (издержки производства работы с дискрипшеном) и сделать кнопку кликабельной так и не вышло( 


  • 0

#30 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 13:46

Вот собрал такой пример (правда он из Армы 2, фона нет, пару ошибок выдает, но как раз кнопки работают) 


  • 0

#31 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 14:19

В каком месте при запуске эти два файла вообще связываются?


  • 0

#32 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 26 October 2014 - 14:28

class But0 : RscShortcutButton
But0 - имя класса кнопки
RscShortcutButton - ссылка на класс в RscClass.hpp (Имя класса в RscClass.hpp)

Пример


PS Для определения координат лучше использовать

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

- так у тебя на любом мониторе или разрешении будет всегда одинакого выглядеть и всегда будет на экране (А не за границами монитора)

Сообщение отредактировал vlad333000: 26 October 2014 - 14:52

  • 0

#33 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 26 October 2014 - 19:06

Правило создания нового класса.

Если вы создаёте новый класс на базе уже существующего, нужно указать конфигу на это

class Class_1; // это базовый класс

// А теперь на его основе создаём новый
class Class_2: Class_1 {

}; 

idd = 602;

Я же написал в комментариях, что idd вашего диалога должен быть уникальным, а это персональный idd дисплея инвентаря.


Сообщение отредактировал SteelRat: 26 October 2014 - 19:04

  • 0

#34 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 26 October 2014 - 19:16

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


  • 0

#35 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 19:20

SteelRat, А idd может быть буквенным? А то какой он уникальный будет, я ж не знаю какие у кого есть цифровые)))) 


  • 0

#36 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 26 October 2014 - 19:30

Вот, наткнулся на тему, которая может избавить вас от создания своего диалога, там даже можно не просто текст выводить, но и список из которого можно делать выбор, и произвести обработку выбора, реально тема.

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


SteelRat, А idd может быть буквенным? А то какой он уникальный будет, я ж не знаю какие у кого есть цифровые)))) 

Я в таких случаях решал это так, а дам ка я своему дисплею idd = 10000


  • 0

#37 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 26 October 2014 - 19:49

 

Вот, наткнулся на тему, которая может избавить вас от создания своего диалога, там даже можно не просто текст выводить, но и список из которого можно делать выбор, и произвести обработку выбора, реально тема.

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

Дас, армовская версия не рулит, и так господа, у кого есть сие чудо "Take On Helicopters", поделитесь функцией, а то влом ставить торрент эдишн версию, что бы вытащить функцию.


  • 0

#38 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 26 October 2014 - 20:08

Похоже есть альтернатива для армы, из тойже песни

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


  • 0

#39 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 20:51

SteelRat, Интересные функции) 


  • 0

#40 OFFLINE   Djon

Djon

    Старшина

  • Пользователи
  • 433 сообщений

Отправлено 26 October 2014 - 21:10

SteelRat, А вы поклонник МР или SP в большей части? У меня просто задумка не большая по вспомогательным компонентам для SP. Хочу сделать GUI на подобие телефона (функции примерно как в GTA) и исключить рации по возможности (это что бы минимизировать английские выкрики) конечно это тянет за собой последствия, такие как невозможность командовать ботами. Следующий GUI это диалоговое окно которое будет использоваться при непосредственном контакте с ботами (вроде как окна для бесед в сталкере), Ну и конечно же GUI имитирующее дополнительный инвентарь для предметов, которые не предусмотрено поместить в имеющийся инвентарь (его хотел сделать с вкладками по названию типов предметов, в самих вкладках картинки предметов с цифрами штук, к самим предметам придется прикручивать экшен при поднятии и помещении в инвентарь)

Теперь поясню для чего все это нужно:

1) Такие элементы наполнят Арму ясностью событий, так как у нее, согласитесь, частенько этот элемент подхрамывает.

2) Инвентарь даст возможность использовать как вздумается все те предметы, которые в Арме используются как мусор или украшение пустующих столов

3) Все это можно сделать без аддонов а значит предложить свое творение максимальному количеству людей.

Конечно я хотел бы делать такие творения для МР, но сами видите какой из меня конструктор, да и сложнее там всё.

Арма это отличный плацдарм для художества такого рода. И спасибо Вам, что вы помогаете!!! 


  • 0




Яндекс.Метрика