Project1

标题: 在状态栏显示图片 [打印本页]

作者: ayran    时间: 2011-9-30 09:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 烁灵    时间: 2011-9-30 09:36
@pic = Sprite.new
@pic.bitmap = RPG::Cache.picture(filename)

记得dispose
作者: ayran    时间: 2011-9-30 11:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: fux2    时间: 2011-9-30 11:32
本帖最后由 fux2 于 2011-9-30 11:55 编辑
  1. module Fux2
  2.   StateIcon = Hash.new("049-Skill06")
  3.   StateIcon["幻惑"] = "046-Skill03"
  4.   StateIcon["毒"] = "045-Skill02"
  5. end

  6. class Window_Base < Window
  7.   def make_battler_state_text(battler, width, need_normal)
  8.     unless battler.states.size.zero?
  9.       sbitmap = Bitmap.new(battler.states.size*26,24)
  10.       battler.states.each_with_index{|i,j| sbitmap.blt(j*26+1,0,RPG::Cache.icon(Fux2::StateIcon[$data_states[i].name]),Rect.new(0,0,24,24))}
  11.     else
  12.       return nil
  13.     end
  14.     sbitmap
  15.   end
  16.   def draw_actor_state(actor, x, y, width = 120)
  17.     bitmap = make_battler_state_text(actor, width, true)
  18.     if bitmap
  19.       self.contents.blt(x, y+4, bitmap,Rect.new(0,0,bitmap.width,bitmap.height))
  20.     else
  21.       self.contents.draw_text(x,y,width,32,"无")
  22.     end
  23.   end
  24. end
复制代码

作者: ayran    时间: 2011-9-30 11:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: fux2    时间: 2011-9-30 11:57
ayran 发表于 2011-9-30 11:51
能否告诉我1到5这部分和7到最后这部分,2个部分分别起了十么作用吗?
如果我要同样在状态栏其他地方采用 ...

第一个部分用来保存一个列表,因为RMXP默认没有状态图标,就要写出对应显示的图片
02行是指当列表里不存在指定状态图标时候的默认图标.
其他的应该看得懂。
07行以后就是重写了原本的“获取状态文字”和"描绘状态"
套用的话应该可以.
作者: ayran    时间: 2011-9-30 12:10
提示: 作者被禁止或删除 内容自动屏蔽
作者: fux2    时间: 2011-9-30 12:13
ayran 发表于 2011-9-30 12:10
再请教一下:
module Fux2
  StateIcon = Hash.new("049-Skill06")

可以,但是下面的24,26之类的数字也要扩大,我这里没考虑到拓展问题,所以写成了常量.
作者: ayran    时间: 2011-9-30 12:38
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1