Options

• #### Index

• This is a locked, single-post thread from Creation Asylum. Archived here to prevent its loss.
No support is given.

Using a method I found here to create a gradient, I created a method that allows you to create a gradient bar using 1 or more colors.

If using 1 color, it will obviously be a solid color.

But if you use 2 or more, it will automaticly calculate the width and gradient for each section creating a gradient using all the colors you supplied in order.

Code:
```class Bitmap     def grade(x,y,width,height,start,finish)         for i in 0..width             r = start.red * (width - i) / width + finish.red * i / width             g = start.green * (width - i) / width + finish.green * i / width             b = start.blue * (width - i) / width + finish.blue * i / width             a = start.alpha * (width - i) / width + finish.alpha * i / width             fill_rect(x + i,y,1,height,Color.new(r, g, b, a))         end     end     def draw_gradient(x,y,width,height,colors)         gradient_width = ((width * 1.0) / (colors.size - 1))            if colors.size == 1                   grade(x,y,width,height,colors,colors)                   return             end         for i in 0..(colors.size - 2)             x_var = (x + (i * gradient_width))             grade(x_var,y,gradient_width,height,colors[i],colors[i + 1])         end     end end```

I created a simple hp bar using the above script as an example -

Code:
```class Window_Base < Window   def draw_hp_bar(actor,x,y,width = 100)     hp = actor.hp     max_hp = actor.maxhp     percentage = ((hp * 1.0) / max_hp)     bar_width = (percentage * width)     empty_width = (width - bar_width)     gray = Color.new(50,50,50,255)     hp1 = Color.new(149,0,0,255)     hp2 = Color.new(218,197,7,255)     hp3 = Color.new(152,255,130,255)     #draw empty if any     self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])     #draw gradient     self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3])     #draw border     self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))     self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))     self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))     self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))   end end```

Get creative!

This is the syntax btw (I'm aware of the terrible grammar in this post)

Code:
`self.contents.draw_gradient(x,y,width,height,[color1,color2,color3,color4,etc.])`

As for one color, make sure you keep the brackets anyways.
Thanks given by: