Jump to content
Korean Random
Sign in to follow this  
Stepan371

нотация цвета 0x и #. в чем разница?

Recommended Posts

color='0xff0000'

 

Это обратно примеру из цитаты:

 

"#" заменяется на "0x" перед преобразованием строки в число.
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 оба варианта работоспособны в "extraFields": [] карусели.
как окрашивание рамок, так и bgColor выбранного танка.

shot_020.jpg

 

shot_021.jpg

Share this post


Link to post

Short link
Share on other sites

Как уже объяснил Sirmax,  если ожидается число, то подойдут оба варианта, если строка, то только #.

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites
, в каком это месте работает? У меня что-то второй вариант не работает.

да, спасибо, ktulho.

я лишь хотел проиллюстрировать, что работают оба варианта.

 

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

Edited by Stepan371

Share this post


Link to post

Short link
Share on other sites

Насколько я понял не совсем так. Из файла конфигурации цвет читается как строка. Если необходимо ее преобразовать в число, то перед этим # (если запись была вида #XXXXXX) заменяется на 0x.

Share this post


Link to post

Short link
Share on other sites

из соображений схожести с другими языками, - литералы либо явно декларируются, либо компилятор/интерпретатор определяет по их представлению в теле программы.
если указано 0x??????, то - явно воспринимается, как численная константа.
а из char поля берем строковую константу и отдаем ее подпрограмме/функции низкого уровня на преобразование в int.
AFAIR, обрезка диеза с заменой на 0x там не очень работает.
впрочем, на ассемблере я не писал уже лет 25-30.
спорить не возьмусь ))

Edited by Stepan371

Share this post


Link to post

Short link
Share on other sites

@Stepan371, мне кажется, вы глубоко копаете. Это же не код программы, а конфигурационный файл.

Share this post


Link to post

Short link
Share on other sites
таким образом, поставив число, там, где оно должно быть, мы облегчим жизнь интрепретатору - не будет надобности преобразовывать литерал из строки

Оптимизатор от бога! Коврики из машины не достаёшь, чтобы быстрее ехала и расход меньше был? © кто-то

Edited by TwoPizza
  • Upvote 1
  • Downvote 1

Share this post


Link to post

Short link
Share on other sites

спасибо, ktulho

 

Как уже объяснил Sirmax, если ожидается число, то подойдут оба варианта, если строка, то только #.

не совсем так. вот пример, где ожидается численный литерал и строчный не заработал
"hp_ratio": [
      { "value":  10, "color": "0xDD0000" },
      { "value":  25, "color": "0xFF6531" },
      { "value":  50, "color": "0xFF9932" },
      { "value":  60, "color": "0xFFCC22" },
      { "value":  75, "color": "0x99FF44" },
      { "value": 101, "color": "0x33FF88" }
    ]

в строке ниже {{c:hp-ratio}} цифры не окрасил

"nickFormatRight": "<font alpha='#A0'>{{clan}}</font> {{name%.15s~..}} | <font color='{{c:hp-ratio}}'>{{hp-ratio%03d|100}}</font>",

 

спасибо, sirmax - за лаконичный и полный ответ.
 

спасибо всем желавшим помочь.
сожалею, кому мои месседжи показались грубыми.
 

abstract, как я понял ответ sirmax -
#??????   - char

0x?????? - int
в некоторых конструкциях, строчный литерал преобразуется в численный, до обработки интерпретатором

Edited by Stepan371

Share this post


Link to post

Short link
Share on other sites

"hp_ratio": [

      { "value":  10, "color": "0xDD0000" },

      { "value":  25, "color": "0xFF6531" },

      { "value":  50, "color": "0xFF9932" },

      { "value":  60, "color": "0xFFCC22" },

      { "value":  75, "color": "0x99FF44" },

      { "value": 101, "color": "0x33FF88" }

    ]

в строке ниже {{c:hp-ratio}} цифры не окрасил

"nickFormatRight": "<font alpha='#A0'>{{clan}}</font> {{name%.15s~..}} | <font color='{{c:hp-ratio}}'>{{hp-ratio%03d|100}}</font>",

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

 

Ты всё перепутал, там наоборот ожидается строка, а ты суёшь число.

  • Upvote 1
  • Downvote 3

Share this post


Link to post

Short link
Share on other sites
Ты всё перепутал, там наоборот ожидается строка, а ты суёшь число

 

"суёшь", это не то слово, которое можно применить в данном контексте. и "всё" я препутать не мог.

как, я написал выше, - строчный литерал в этой конструкции у меня не работает. проверено.

этот пример из дефолта colors.xc

"colorHP": {

      "very_low":         "0xFF0000",

      "low":                 "0xDD4444", 

      "average":           "0xFFCC22", 

      "above_average": "0xFCFCFC" 

    }

"hp_ratio": [

      { "value": 10,  "color": ${"def.colorHP.very_low"     } },    

      { "value": 25,  "color": ${"def.colorHP.low"          } },     

      { "value": 50,  "color": ${"def.colorHP.average"      } },     

      { "value": 101, "color": ${"def.colorHP.above_average"} }     

    ],

Edited by Stepan371
  • Downvote 2

Share this post


Link to post

Short link
Share on other sites

 

 

строчный литерал в этой конструкции у меня не работает. проверено.

Потому что там строка и ожидается, а не число. 

 

и "всё" я препутать не мог.

Но все-таки умудрился )

  • Downvote 2

Share this post


Link to post

Short link
Share on other sites
{{c:hp_ratio}}

 

да, спасибо, я это видел - {{c:hp-ratio}} давно стоит. и работает.

а {{c:hp_ratio}}, в свое сремя, работать не захотел.

посему, - поставил и не трогал. принял, как данность

 

вот у sirmax в sirmax-minimapLabels.xc

//"shadow": { "color": "{{c:hp-ratio}}", "alpha": 80, "blur": 2, "strength": 4 },

 

 

Потому что там строка и ожидается, а не число.

 

я проверил - результат отрицательный.

предлагаю проверить - вам.

Edited by Stepan371

Share this post


Link to post

Short link
Share on other sites

D │ {{c:hp-ratio}}     │   │ X │ X │ X │ X │ X │   │ color depending on current health ratio (only in vehicle markers)
однако, работает и в панелях игроков

Share this post


Link to post

Short link
Share on other sites

 

 

 {{c:hp_ratio}}
, тут я был не прав.

 

 

"hp_ratio": [       { "value":  10, "color": "0xDD0000" },       { "value":  25, "color": "0xFF6531" },       { "value":  50, "color": "0xFF9932" },       { "value":  60, "color": "0xFFCC22" },       { "value":  75, "color": "0x99FF44" },       { "value": 101, "color": "0x33FF88" }     ]
, такая конструкция в маркерах работает. 

P.S. в панелях игроков тоже работает.

post-17624-0-36414300-1471260329.jpg

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

 

Потому что там строка и ожидается, а не число.

 

char мы получаем на выходе, для чего и используется неявное преобразование
<font color='{{c:hp-ratio}}'>

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...