Author Topic: Работа с wGui  (Read 120 times)

0 Members and 1 Guest are viewing this topic.

Offline SlinZa

  • Commoner
  • *
  • Posts: 3
  • Reputation 1
  • I'm a newbie.
Работа с wGui
« on: January 31, 2019, 07:34:32 PM »
Привет!

Подскажите, нет ли в движке перегруженных функций для работы с wGui? А то посмотрев код с примера 2, как то стало тоскливо, что придется писать столько лишнего на первый взгляд кода. Ведь в каждую функцию надо передавать типы положения и размера состоящие из 4 переменных. Ведь порою проще передать все в одной строке через запятую.
Code: [Select]
fromPos.x=50
fromPos.y=250
toPos.x=300
toPos.y=265
scroll_alpha=wGuiScrollBarCreate(true,fromPos,toPos)

Из примера выше видно, что приходиться писать дополнительно 4 строки.

В итоге, пришлось создать функцию с чуть измененным именем и стало немного проще..
Code: [Select]
const wGUI_HORIZONTAL = true

function wGuiScrollBarCreateH(byval wX as Int32, byval wY as Int32, byval wW as Int32, byval wH as Int32) as wGuiObject
   return wGuiScrollBarCreate(wGUI_HORIZONTAL, type(wX, wY), type(wW, wH))
end function

scroll_alpha=wGuiScrollBarCreateH(50, 250, 300, 265)

Кстати в справке указана переменная wGUI_HORIZONTAL, но она ни где не инициализирована.

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 892
  • Reputation 63
Re: Работа с wGui
« Reply #1 on: January 31, 2019, 07:49:35 PM »
Привет, SlinZa.

Quote
Подскажите, нет ли в движке перегруженных функций для работы с wGui
На данный момент нет. Не вижу проблемы, оберни нужные тебе функции в свои, где аргументы- через запятую.
В старых версиях так и было, но в результате долгих обсуждений мы выработали некий стандарт описания функций для движка.
Поэтому и появились wVector2i, wColor4s и прочее.

Когда я правил код, признаюсь, не учел, что фрибейсик может принимать значения векторов только при инициализации.
Т.е.
Code: [Select]
Dim as wVector2i myVec=(30,40) - можно, но потом придется
Code: [Select]
myVec.x=20: myVec.y=30
В С/С++ варианте все несколько проще, т.е. можно так:
wGuiScrollBarCreate(true,{20,30},{50,60});

Зато с таким подходом удалось уменьшить длинные списки аргументов у функций (были экземпляры, у которых число аргументов было >12).

Надеюсь, несколько прояснил нашу позицию. :)
Под лежачий камень мы всегда успеем...

Offline SlinZa

  • Commoner
  • *
  • Posts: 3
  • Reputation 1
  • I'm a newbie.
Re: Работа с wGui
« Reply #2 on: January 31, 2019, 07:57:52 PM »
Понял, спасибо.

Подскажи еще, почему в типе wColor4s у переменных используется UInt16 (2 байта), хотя для нее используется число от 0 до 255? То есть достаточно 1 байта. Из-за этого тип занимает 8 байт вместо 4.

Offline Nikolas - WS3D Developer

  • Programmer
  • Global Moderator
  • Marquess
  • *
  • Posts: 892
  • Reputation 63
Re: Работа с wGui
« Reply #3 on: January 31, 2019, 09:54:04 PM »
Согласен. Глянул внутри враппера: там unsigned char, т.е. 1 байт.
Во внешних заголовках unsigned short, т.е. 2 байта. Недосмотрел, видимо.
Поправим для wColor4s и wColor3s.
Благодарю за замечание.
Под лежачий камень мы всегда успеем...