Project1
标题:
Window_BattleStatus窗口refresh的问题...
[打印本页]
作者:
doranikofu
时间:
2008-2-4 03:18
标题:
Window_BattleStatus窗口refresh的问题...
Window_BattleStatus窗口refresh的时候会先清除窗口内容
但是我的窗口里面还有人物头像一些每次战斗中不会发生变化的内容
如果不刷新这些东西而只刷新血槽和数值能不能提高运行速度?
难道要新建一个窗口放那些不变的图片么 感觉比较麻烦{/gg}
作者:
水迭澜
时间:
2008-2-4 03:19
能的……
具体的我记得主站上有讲~
作者:
doranikofu
时间:
2008-2-4 03:42
是的。但是其实这个还可以继续改进,refresh的时候,不要全部.clear了,先把需要refresh的区域rect选出来,然后fill_rect清掉重描绘。
这个?{/fd}
不是很明白 能举个例子么{/gg}
比如我的这个
def refresh
# 変更するものがない場合、飛ばす
@item_max = $game_party.actors.size
# 描写を開始
self.contents.clear
for i in 0...@item_max
actor = $game_party.actors[i]
actor_x = i * 146 + 35
# 歩行キャラグラフィックの描写
draw_actor_graphic(actor, actor_x+10 , 5)
# HP/SPメーターの描写
draw_actor_hp_meter_line(actor, actor_x+96, 25, 75, 10)
draw_actor_sp_meter_line(actor, actor_x+96, 53, 75, 10)
#★ HP_store描写
draw_actor_hp_store_meter_line(actor, actor_x+96, 70, 72, 6)
# HP数値の描写
self.contents.font.size = 24 # HP/SP数値の文字の大きさ
self.contents.font.color = Color.new(0,0,0,192)
self.contents.draw_text(actor_x+90, 11, 80, 24, actor.hp.to_s, 2)
self.contents.font.color = actor.hp == 0 ? knockout_color :
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
self.contents.draw_text(actor_x+88, 11, 80, 24, actor.hp.to_s, 2)
# SP数値の描写
self.contents.font.color = Color.new(0,0,0,192)
self.contents.draw_text(actor_x+90, 39, 80, 24, actor.sp.to_s, 2)
self.contents.font.color = actor.sp == 0 ? knockout_color :
actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
self.contents.draw_text(actor_x+88, 39, 80, 24, actor.sp.to_s, 2)
# 用語「HP」と用語「SP」の描写
bitmap = Bitmap.new("Graphics/Icons/name_"+actor.id.to_s)
src_rect = Rect.new(0, 0, 24, 64)
self.contents.blt(actor_x, 6, bitmap, src_rect)
bitmap = Bitmap.new("Graphics/Icons/menu_HP.png")
src_rect = Rect.new(0, 0, 24, 24)
self.contents.blt(actor_x+88, 8, bitmap, src_rect)
bitmap = Bitmap.new("Graphics/Icons/menu_SP.png")
src_rect = Rect.new(0, 0, 24, 24)
self.contents.blt(actor_x+88, 36, bitmap, src_rect)
# ステートの描写
draw_actor_state(actor, actor_x+18, 50)
@refresh_flag = false
end
end
复制代码
作者:
水迭澜
时间:
2008-2-4 03:46
是这样的
默认的时候不是self.contents.clear吗
这个是清除全部窗口内容的
而要清除一个固定的矩形就
self.contents.fill_rect(x,y,宽,高,Color.new(0,0,0,0))(大概这么写吧)
就是用透明色去填充这个矩形的内部……
不过你自己要对好坐标看清除哪部分了 [LINE]1,#dddddd[/LINE]
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者:
沉影不器
时间:
2008-2-4 03:52
提示:
作者被禁止或删除 内容自动屏蔽
作者:
doranikofu
时间:
2008-2-4 04:49
恩 我看还是一起刷好了 Orz
感谢两位解答
作者:
3535
时间:
2008-2-4 04:53
头像一些每次战斗中不会发生变化的内容...放到Spriteset_Battle...
(要是图)
作者:
doranikofu
时间:
2008-2-4 04:55
我用的超级横板 z坐标貌似有点麻烦 而且还有几个小图标{/gg}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1