Project1
标题:
为了FPS,怎么样才能够局部刷新窗口?!
[打印本页]
作者:
失去的记忆
时间:
2011-4-20 16:40
标题:
为了FPS,怎么样才能够局部刷新窗口?!
最近把系统自带的所有窗口都重写了一遍,发现方法大同小异,写完后运行.....
发现FPS狂降!!!所以在这里想请教一个局部刷新窗口的方法,例如:
物品栏中有100个物品,在物品窗口我想让光标移动到哪,那一个物品的名字就变成绿色,
如果要做到这个效果就只能这样:
if 按下左右键
刷新窗口 #这个刷新是全部刷新100个物品
end
复制代码
如果这样的话会描画很卡的说,有没有办法这样写?
if 按下左右键
刷新该物品所在区域
end
复制代码
当然这些物品都是在一个窗口中,我本想原理是先清除改光标区域,然后重新描画,但是代码不知道怎么写!
PS:请各位老大指点下~
作者:
心雪
时间:
2011-4-20 19:35
本帖最后由 心雪 于 2011-4-20 20:45 编辑
fill_rect 透明色
受姬中,无范例
Color.new(r,g,b,alpha)
alpha为0即为透明色
作者:
失去的记忆
时间:
2011-4-21 07:48
本帖最后由 失去的记忆 于 2011-4-21 07:49 编辑
理论上可以,但是实际上操作不行,我在Window_Item里面定义了一个方法
def set_rect(x,y,w,h)
rect = Rect.new(0,0,30,30)
self.contents = Bitmap.new(30,30)
self.contents.fill_rect(rect, Color.new(255, 255, 255,100))
end
复制代码
如果不加“self.contents = Bitmap.new(30,30)”这一句,那么就会报错“contents”为空!!!!
如果加了就会把所有的Bitmap覆盖掉,所以不知道该如何解决
作者:
fux2
时间:
2011-4-21 07:54
二次描绘不就可以了,重新描绘一个绿色的想通文字覆盖到该道具的位置。
作者:
禾西
时间:
2011-4-21 11:57
生成一塊用作蒙板的bitmap覆蓋在上面,然後在這個蒙板上描繪綠色文字。
作者:
后知后觉
时间:
2011-4-21 14:55
物品窗口光标处为红色.rar
(188.7 KB, 下载次数: 19)
2011-4-21 14:54 上传
点击文件名下载附件
作者:
心雪
时间:
2011-4-21 15:35
本帖最后由 心雪 于 2011-4-21 15:36 编辑
class Bitmap
def clean_rect(*args)
case args[0]
when Rect
fill_rect(args[0],Color.new(0,0,0,0))
when Fixnum
fill_rect(args[0],args[1],args[2],args[3],Color.new(0,0,0,0))
end
end
end
复制代码
很难么- -
使用Bitmap#clean_rect(rect)或clean_rect(x,y,width,height)来清除一个Bitmap的矩形区域,然后重新描绘这个区域即可
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1