is there a way I could use #000000 instead of 000,000,000 ..... for colors

Blitz3D Forums/Blitz3D Beginners Area/is there a way I could use #000000 instead of 000,000,000 ..... for colors

Apollonius(Posted 2003) [#1]
Is there a way I could use HTML color codes (example: #000000 is black) instead of using Color 0,0,0 it would be really useful and less long to figure out the colors........


WolRon(Posted 2003) [#2]
Yes, write a function.

Clr(#000000)


Apollonius(Posted 2003) [#3]
Can you use a function in a function?

How would I go about to do this function I'm clueless :|


TeraBit(Posted 2003) [#4]
I think that #000000

Should be

$000000

in blitz.


sswift(Posted 2003) [#5]
This will work:

Color $FF,$FF,$FF


Rimmsy(Posted 2003) [#6]
or this:

color 0,0,rgb


rdodson41(Posted 2003) [#7]
You should be able to make a function that does this. You should just have to pass in the code ( the #000000 thingy ) and use Left/Mid/Right to pull out the R G and B parts in the code. The you just convert them to decimal system using some of those functions, and your done!

-Rich05


Apollonius(Posted 2003) [#8]
So far I got this...

Function MGUI_clr( clr$)

clr_red   = "$" + Left$(clr$,3)
clr_green = "$" + Mid$(clr$,-1) + Mid$(clr$,1)
clr_blue  = "$" + Right(clr$,-2)

End Function


But I got no idea how to get this function to return thoses for the "Color 0,0,0" in my other function... *thinking*


Apollonius(Posted 2003) [#9]
MGUI_clr(FFFFFF)

Function MGUI_clr( clr$)

clr_red   = "$" + Left$(clr$,3)
clr_green = "$" + Mid$(clr$,-1) + Mid$(clr$,1)
clr_blue  = "$" + Right(clr$,-2)

End Function


Wheres my error?


soja(Posted 2003) [#10]
You can only return one variable from a function.
Why don't you just set the color from within the function?

Plus, your string functions are wrong. Did you read the documentation?

Like:
Mid$ (string$, offset, characters)

string$ = any valid string
offset = location within the string to start reading
characters = how many characters to read frm the offset point

So, to get the green value, something like Mid$(clr, 3, 2)...

Then when you're done, "Color(clr_red, clr_green, clr_blue)"


ford escort(Posted 2003) [#11]
the only problem with html color codes is that they are in hexadecimal, i can't see a way to convert an hexadecimal string to a decimal value without anoter function that handle hexadecimal conversion...

the a=$ff return 255
but a="$ff" don't work

so i had to include hexadecimal conversion in the function

; usage : setcolor("rrggbb")
; setcolor("ff0000") for red
; setcolor("00ff00") for green
; setcolor("0000ff") for blue
Function setcolor$(mycolor$) 
	Hexa$="0123456789abcdef"
	red=((Instr(hexa$,Mid$(mycolor$,1,1),1)-1)*16)+((Instr(hexa$,Mid$(mycolor$,2,1),1)-1))
	green=((Instr(hexa$,Mid$(mycolor$,3,1),1)-1)*16)+((Instr(hexa$,Mid$(mycolor$,4,1),1)-1))
	blue=((Instr(hexa$,Mid$(mycolor$,5,1),1)-1)*16)+((Instr(hexa$,Mid$(mycolor$,6,1),1)-1))
	Color red,green,blue
End Function



CS_TBL(Posted 2003) [#12]
future enhancement!

Eventually you want something more luxury, like:

color red,green,blue,brightness#

brightness# is a float between 0 (all black), 1 (normal) and 2++ (bright(er))

Handy for drawing 3d tiles (buttons etc.) .. you only need to adjust the brightness and all stuff is rgb customizable while the light/shadow remains!


TartanTangerine (was Indiepath)(Posted 2003) [#13]
Na, tis easier than that..

Global fore1 = $5f5f5f
Global fore1r = fore1 Shr 16 And $FF
Global fore1g = fore1 Shr 8 And $FF
Global fore1b = fore1 And $FF


jfk EO-11110(Posted 2003) [#14]
As rims said you can use a little trick:

color 0,0,$FFFFFF
or
color 0,0,$58A2FF

or whatever rgb color. this is the easiest way.
save bytes, save plutonium.


jondecker76(Posted 2003) [#15]
there is code for this in the code archives already. It includes functions for putting RGB values into an integer, as well as extracting RG&B components from the integer.


Hansie(Posted 2003) [#16]
maybe my code below can be of help somehow .. dunno


Function print_debug_info()
	totalDrivers%=CountGfxDrivers() 
	r_dec%=0 : g_dec%=0 : b_dec%=0
	r_hex$=0 : g_hex$=0 : b_hex$=0	
	r_dec=ColorRed() : g_dec=ColorGreen() : b_dec=ColorBlue()
	r_hex=Hex$(r_dec) : g_Hex=Hex$(g_dec) : b_Hex=Hex$(b_dec)

	Cls
	Print "Date                          : " + CurrentDate()
	Print "Time                          : " + CurrentTime()
	Print "PlayField Width               : " + GraphicsWidth()
	Print "PlayField Height              : " + GraphicsHeight()
	Print "PlayField Depth               : " + GraphicsDepth()
	Print "PlayField Memory              : " + GraphicsBuffer()
	Print "PlayField Drawing Color (DEC) : " + r_dec + " " + g_dec + " " + b_dec
	Print "PlayField Drawing Color (HEX) : " + Right$(r_hex,2) + " " + Right$(g_hex,2) + " " + Right$(b_Hex,2)
	Select JoyType() 
	Case 0 
	Print "Joystick                      : None" 
	Case 1 
	Print "Joystick                      : Digital" 
	Case 2 
	Print "Joystick                      : Analog"  
	End Select 
	For t = 1 To totalDrivers 
	Print "Installed GFX driver(s)       : " + GfxDriverName$(t) 
	Next
	Print "Total GFX memory on card      : " + TotalVidMem() + " " + "(Bytes)" + " " + (TotalVidMem() / 1024) + " " + "(Mb)"
	Print "Avail GFX memory              : " + AvailVidMem() + " " + "(Bytes)" + " " + (AvailVidMem() / 1024) + " " + "(Mb)"
	Print "Operating system installed    : " + SystemProperty("OS")
	Print "CPU installed                 : " + SystemProperty("CPU")
End Function