Project1
标题: 如何绘制一条有一定宽度的渐变直线 [打印本页]
作者: Majirefy 时间: 2012-4-18 18:30
标题: 如何绘制一条有一定宽度的渐变直线
本帖最后由 Majirefy 于 2012-4-19 23:20 编辑
在Ace中,Window_MapName中定义了一个方法:draw_update(rect)。
想将这个稍微改造一下,实现成一种效果,在地图的名字下面画一条长长的两边都渐变的直线,当然有一定的宽度。
不知道有什么好办法。
自己改造了一下这个方法:
def draw_background(rect)
temp_rect = rect.clone
temp_rect.width /= 2
temp_rect.y = FONT_SIZE - PADDING
temp_rect.height = LINE_HEIGHT
contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
temp_rect.x = temp_rect.width
contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
end
def draw_background(rect)
temp_rect = rect.clone
temp_rect.width /= 2
temp_rect.y = FONT_SIZE - PADDING
temp_rect.height = LINE_HEIGHT
contents.gradient_fill_rect(temp_rect, back_color2, back_color1)
temp_rect.x = temp_rect.width
contents.gradient_fill_rect(temp_rect, back_color1, back_color2)
end
FONT_SIZE = 36
PADDING = 12
LINE_HEIGHT = 4
两个颜色都是白色:
def back_color1
Color.new(255, 255, 255, 220)
end
def back_color1
Color.new(255, 255, 255, 220)
end
def back_color2
Color.new(255, 255, 255, 0)
end
def back_color2
Color.new(255, 255, 255, 0)
end
不知道有什么更好的方法,因为对contents进行渐变填充的话,其最低点的y坐标会和这个窗口的一样,而设想是和文字稍微隔开一点距离。
具体想要的效果如下:
当然背景是透明的,方便看而已
那个直线也是渐变的……(好吧,自己没有用画图软件做出来……)
作者: 吉井明久 时间: 2012-4-18 19:02
因为太笨了所以明久君无法理解这一段:
因为对contents进行渐变填充的话,其最低点的y坐标会和这个窗口的一样,而设想是和文字稍微隔开一点距离。
您的意思是空间不够么?可以调大窗口大小,或者增大行距嘛…
作者: feizhaodan 时间: 2012-4-18 20:11
本帖最后由 feizhaodan 于 2012-4-18 20:12 编辑
可以试着用@show_count来控制线条宽度。之后一点一点描绘线条的方法也要放在update中。
大致思路:- w = self.width * @show_count / 150 # show_count最大值为150
- rect = Rect.new(self.x+self.width/2,self.y+32,w,4)
- self.content.gradient_fill_rect(rect,backc1,backc2)
复制代码
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |