Создаю проект як-18т 36ой серии. С рисовалками и gmax все в порядке… Но с програмированием у меня полная беда! Если кто-то хочет принять участие милости просим… Если нет, то дайте материал, учебник по xml…Уже борюсь неделю с кодом не получается…тыркаюсь, тыркаюсь, даже не знаю в какую сторону копать и помочь, объяснить некому… Выложу скрин в плохом качестве, т.к. работа по рисованию моя и не хочется чтоб кто-то ее того… На скрине видно пару приборов которые я смог сделать своими силами, все работает, только кнопочку на g-метр’е не получается сделать, всмысле она работает, но я хочу чтоб визуально она нажималась… кнопка есть нарисованная. Вообще все приборы уже нарисовал, со слоями все как надо.
Dexer (24 July 2009 — 08:51) написал:
Можно же было прочитать, то что я написал посмотреть на скрин. И понять, что то, что написанно по рекомендованной ссылке мне уже давно известно…
Gensta, on 24 July 2009 — 10:42, said:
Я честно говоря из вашего поста тоже не сразу понял что требуется. К вопросу о кнопке с изменением вида от состояния, вот даю пример, как я это делаю.
<Gauge Name=»Sw Mechanism» Version=»1.0″>
<Element>
<Element>
<Select>
<Value>(G:Var1, bool)</Value>
<Case Value=»0″>
<Image Name=»switch_off.bmp» ImageSizes=»40,90″/>
</Case>
<Case Value=»1″>
<Image Name=»switch_on.bmp» ImageSizes=»40,90″/>
</Case>
</Select>
</Element>
<Element>
<Select>
<Value>(G:Var1, bool)</Value>
<Case Value=»0″>
<Image Name=»switch_off_lum.bmp» Luminous=»Yes» ImageSizes=»40,90″/>
</Case>
<Case Value=»1″>
<Image Name=»switch_on_lum.bmp» Luminous=»Yes» ImageSizes=»40,90″/>
</Case>
</Select>
</Element>
</Element>
<Element>
<Select>
<Value>
(A:Circuit general panel on, bool) (G:Var1, bool) && if{ 1 (>L:Dummy_pump,bool) } els{ 0 (>L:Dummy_pump,bool) }}
</Value>
</Select>
</Element>
<Mouse>
<Tooltip>Fuel Pump Manual</Tooltip>
<Cursor Type=»Hand»/>
<Click>(G:Var1, bool) ! (>G:Var1, bool) 1 (>L:TOGGLE_SWITCH_SOUND,bool)</Click>
</Mouse>
</Gauge>
Теперь разбор. В мышиной зоне прописываете G переменную Var1, которая при одном нажатии обретает переменную 1, при следующем 0.
В секции Select (вверху) прописываются бимтмапы включеннного состояния кнопки и выключенного , в засисимости от состояния нашей переменной Var1.
Таким образом осуществляется визуализация нашей кнопки.
Ниже есть секция Select которая в зависимости от состояния G перемнной Var1 присваивает такое же состояние L переменной Dummy. Эта переменная есть то, что мы хотим включить этой кнопкой извне прибора. Если такой необходимости нет, можно эту секцию не писать. Если то, что должно включаться/переключаться находится внутри прибора, привязываем это к G переменной Var1 примерно тем же образом, что и битмап кнопки.
Отредактировано Mihail Stepanov: 24 July 2009 — 11:32
Attached thumbnail(s)
Mihail Stepanov (24 July 2009 — 10:56) написал:
Хорошо=) Я впринципе так и делаю… вот разбираюсь потихоньку. А еще хотелось бы знать что такое:
<
||
>
и переменные A L M и какие там еще есть…
Mihail Stepanov (24 July 2009 — 11:03) написал:
Я считаю лучше делать как умеешь, чем сидеть и ждать пока сделает кто то для нас типа SCS,WM,PT.
Дело в том, что специально скрин выкладываю плохого качества — все размазано…=) чтоб никто не …. А так расширение 2000на 1600=) Я сам дизайнер. Кто-то писал на форуме дизайнера и программиста в одном лице не бывает=)
Attached image(s)
Attached image(s)
<Gauge Name=»Sogl_ks» Version=»1.0″>
<Element>
<Select>
<Value>(G:Var1,bool) </Value>
<Case Value=»0″>
<Image Name=»Sogl_off.bmp» ImageSizes=»115,105″/>
</Case>
<Case Value=»1″>
<Image Name=»Sogl_on.bmp» ImageSizes=»115,105″/>
</Case>
</Select>
</Element>
<Mouse>
<Area Left=»17″ Top=»24″ Right=»75″ Bottom=»74″>
<Click Kind=»LeftSingle+LeftRelease+Leave»>
(M:Event) ‘LeftSingle’ scmp 0 == 1 (>L:KEY_SWITCH_SOUND,bool) if{
1 (>L:KS8 Coord Button, bool)
1 (>G:Var1,bool)
}
(M:Event) ‘LeftRelease’ scmp 0 ==
(M:Event) ‘Leave’ scmp 0 == || if{
0 (>L:KS8 Coord Button, bool)
0 (>G:Var1)
}
</Click>
<Tooltip ID=»»>Course System Quick Ajust</Tooltip>
<Cursor Type=»Hand»/>
</Area>
</Mouse>
</Gauge>
Чешуя (M:Event) ‘LeftSingle’ scmp 0 == есть нечто иное, как нажатие кнопки
а (M:Event) ‘LeftRelease’ scmp 0 == типа отпускание оной, насколько я понял этот
за….ыйxml язык :-))))Я считаю лучше делать как умеешь, чем сидеть и ждать пока сделает кто то для нас типа SCS,WM,PT.
|| Такие знаки ставят после двух переменных. Сей знак означает, что условие будет выполняться, если либо одна переменная либо другая соответствует условию
> а это наоборот «больше»
и переменные A L M и какие там еще есть…
Переменные А это стандартные симовские переменные. Полный список их есть в СДК, и ими можно оперировать в приборах. Скажем так те параметры, которые сим снимает с твоего самоля ( с динамы, с модели) типа обороты двигла, напряжение АКБ, уборка шасси и т.д.
Переменные L это твои собственные переменные. Можешь их выдумывать сам, действуют в пределах твоего самолёта. Но с количеством их не груби. По возможности используй G переменные,если переменная нужна в области одного прибора.
Переменные M мышыные.
Переменная G их всего девять!!!! Var1-Var9. Они «видны» только в пределах одного прибора. Пример того как их все втыкают где надо и не надо ты видел.
Перменная K для меня самого загадка. Как мне кажется, она тоже взаимодействует именно с симовскими параметрами, но чем она от А отличается, я не понял. Надо глянуть в СДК, может там чего написано. Или же здесь подскажут..
Отредактировано Mihail Stepanov: 24 July 2009 — 12:19
if{ 0 } els{ (A:Indicated Altitude, meters) 80 <
правильно??? А почему-то не работает…
<Position X=»0″ Y=»249″/>
<Select>
<Value>(A:Circuit general panel on, bool) if{ (L:CheckLamp,bool) (A:Sim on ground,bool) if{ 0 } els{ (A:Indicated Altitude, meters) 80 < } || }</Value>
<Case Value=»1″>
<Image Name=»GearWarn.BMP» Bright=»Yes» ImageSizes=»144,83,0,0″/>
</Case>
</Select>
<Failures>
<SYSTEM_ELECTRICAL_PANELS Action=»0″/>
</Failures>
</Element>
точнее будет.