赞 | 8 |
VIP | 50 |
好人卡 | 9 |
积分 | 7 |
经验 | 25417 |
最后登录 | 2023-1-15 |
在线时间 | 224 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 676
- 在线时间
- 224 小时
- 注册时间
- 2006-12-7
- 帖子
- 839
|
3楼
楼主 |
发表于 2008-2-4 03:42:05
|
只看该作者
是的。但是其实这个还可以继续改进,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
复制代码 |
|