tips:dynamiccolor
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tips:dynamiccolor [2015/01/22 03:12] – [Gradually Transition Color As Battery Drains, From Green to Yellow to Red] rahul_pawa | tips:dynamiccolor [2016/07/05 19:32] (current) – Correcting this entry to match below (which is correct) wmissimer | ||
---|---|---|---|
Line 19: | Line 19: | ||
- | {bl} > 66 and string.format(' | + | {bl} > 66 and string.format(' |
Line 53: | Line 53: | ||
- | {bl} > 66 and string.format(' | + | {bl} > 66 and string.format(' |
- | Here again we are using a condition to set the color value of an object, this time the condition is {bl} > 66, and the value we get is a function of the battery level: string.format(' | + | Here again we are using a condition to set the color value of an object, this time the condition is {bl} > 66, and the value we get is a function of the battery level: string.format(' |
- | The string.format function is how you build a string in LUA. I am using it here to convert the decimal number generated by the formula (100-{bl})*255/ | + | The string.format function is how you build a string in LUA. I am using it here to convert the decimal number generated by the formula (100-{bl})*255/ |
- | Let's talk about that first argument, you always need something like this when you use string.format. It always needs the single quotes (' '), and in those quotes is a code that tells LUA what our string will look like. In this case, %x tells it the first thing in our string will be a hexadecimal number, and %s tells us it will be followed by a string (some letters or numbers). The formatting here is also important, note that there is no space between %x and %s, this tells LUA that there shouldn' | + | Let's talk about that first argument, you always need something like this when you use string.format. It always needs the single quotes (' '), and in those quotes is a code that tells LUA what our string will look like. In this case, %.2x tells it the first thing in our string will be a 2 digit hexadecimal number, and %s tells us it will be followed by a string (some letters or numbers). The formatting here is also important, note that there is no space between %.2x and %s, this tells LUA that there shouldn' |
- | The second argument is a linear formula that uses the battery level as its variable. It correlates to the %x in the first argument. The formula itself is: (100-{bl})*255/ | + | The second argument is a linear formula that uses the battery level as its variable. It correlates to the %.2x in the first argument. The formula itself is: (100-{bl})*255/ |
The third argument is a string that is simply the rest of the color code, in this case I want maximum green and no blue. | The third argument is a string that is simply the rest of the color code, in this case I want maximum green and no blue. | ||
Line 69: | Line 69: | ||
There is similar code in the second condition to transition from yellow to red when the battery level is between 16 and 66: | There is similar code in the second condition to transition from yellow to red when the battery level is between 16 and 66: | ||
- | {bl} > 16 and string.format(' | + | {bl} > 16 and string.format(' |
In the above you should note there are now four arguments in the string.format function. The three codes each correspond to arguments 2-4 in order. The formula has changed a little because I am using a bigger range, I've decided that I want the gradual transition from yellow to red to start at battery level = 66, and end at battery level = 16. | In the above you should note there are now four arguments in the string.format function. The three codes each correspond to arguments 2-4 in order. The formula has changed a little because I am using a bigger range, I've decided that I want the gradual transition from yellow to red to start at battery level = 66, and end at battery level = 16. |
tips/dynamiccolor.txt · Last modified: 2016/07/05 19:32 by wmissimer