加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 qq634488405 于 2022-3-26 10:57 编辑
自己改把原来的Window_Command里的update_cursor_rect方法想实现选择框反色显示,采用的方法为获取选择框内的颜色,记录文字颜色的坐标,然后填充选择框,修改坐标位置颜色为背景色,修改后的脚本如下#-------------------------------------------------------------------------- # ● 更新光标矩形 #-------------------------------------------------------------------------- def update_cursor_rect # 光标位置不满 0 的情况下 if @index < 0 self.cursor_rect.empty return end # 获取当前的行 row = @index / @column_max # 当前行被显示开头行前面的情况下 if row < self.top_row # 从当前行向开头行滚动 self.top_row = row end # 当前行被显示末尾行之后的情况下 if row > self.top_row + (self.page_row_max - 1) # 从当前行向末尾滚动 self.top_row = row - (self.page_row_max - 1) end # 计算光标的宽 cursor_width = @width_txt # 计算光标坐标 x = @index % @column_max * cursor_width y = @index / @column_max * 32 - self.oy # 设置光标位置 self.cursor_rect.set(x, y, @width_txt, 32) x_y = [] # 获取文字颜色坐标 for i in x..(x + @width_txt - 1) for j in y..y+31 x_y.push([i,j]) if self.contents.get_pixel(i,j) == normal_color end end # 填充选择框 self.contents.fill_rect(self.cursor_rect, normal_color) # 文字位置设置为背景色 x_y.each do |i| self.contents.set_pixel(i[0],i[1],back_color) end end end
#--------------------------------------------------------------------------
# ● 更新光标矩形
#--------------------------------------------------------------------------
def update_cursor_rect
# 光标位置不满 0 的情况下
if @index < 0
self.cursor_rect.empty
return
end
# 获取当前的行
row = @index / @column_max
# 当前行被显示开头行前面的情况下
if row < self.top_row
# 从当前行向开头行滚动
self.top_row = row
end
# 当前行被显示末尾行之后的情况下
if row > self.top_row + (self.page_row_max - 1)
# 从当前行向末尾滚动
self.top_row = row - (self.page_row_max - 1)
end
# 计算光标的宽
cursor_width = @width_txt
# 计算光标坐标
x = @index % @column_max * cursor_width
y = @index / @column_max * 32 - self.oy
# 设置光标位置
self.cursor_rect.set(x, y, @width_txt, 32)
x_y = []
# 获取文字颜色坐标
for i in x..(x + @width_txt - 1)
for j in y..y+31
x_y.push([i,j]) if self.contents.get_pixel(i,j) == normal_color
end
end
# 填充选择框
self.contents.fill_rect(self.cursor_rect, normal_color)
# 文字位置设置为背景色
x_y.each do |i|
self.contents.set_pixel(i[0],i[1],back_color)
end
end
end
其中normal_color为黑色,back_color为菜单背景色,菜单背景使用的纯色
实际效果在反色显示的时候文字部分不完整,浏览器不支持flash上传不了图片,截图来看字体边缘的点颜色与normal_color有点区别,求大佬指导,或者有无其他实现方法,谢谢
|