| 
本帖最后由 诺亚之城 于 2013-10-13 19:47 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 主站的那些脚本在显示血量的时候,居然默契无一例外的,均把SP也给显示出来了。{:2_254:}
 
 有没有只显示血量的?
 如果血条是图片,能作者自定义血条图片样子而不是代码构建就更好了。
 
 http://www.66rpg.com/articles/3232
 http://www.66rpg.com/articles/3127
 这里有两个代码构建类的,注释稀少。
 
 
   
 
   
 这是随手捏出来的两个血条图片,可以自定图片血条的话非常感谢@芯☆淡茹水
 
 这里是描绘的地方……
 
 #--------------------------------------------------------------------------    # ● ライン描画 by 桜雅 在土    #--------------------------------------------------------------------------    def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)      # 描写距離の計算。大きめに直角時の長さ。      distance = (start_x - end_x).abs + (start_y - end_y).abs      # 描写開始      if end_color == start_color        for i in 1..distance          x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i          y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i          if width == 1            self.contents.set_pixel(x, y, start_color)          else            self.contents.fill_rect(x, y, width, width, start_color)          end        end      else        for i in 1..distance          x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i          y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i          r = start_color.red * (distance-i)/distance + end_color.red * i/distance          g = start_color.green * (distance-i)/distance + end_color.green * i/distance          b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance          a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance          if width == 1            self.contents.set_pixel(x, y, Color.new(r, g, b, a))          else            self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))          end        end      end    end
#--------------------------------------------------------------------------   
  # ● ライン描画 by 桜雅 在土   
  #--------------------------------------------------------------------------   
  def draw_line(start_x, start_y, end_x, end_y, start_color, width = 1, end_color = start_color)   
    # 描写距離の計算。大きめに直角時の長さ。   
    distance = (start_x - end_x).abs + (start_y - end_y).abs   
    # 描写開始   
    if end_color == start_color   
      for i in 1..distance   
        x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i   
        y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i   
        if width == 1   
          self.contents.set_pixel(x, y, start_color)   
        else   
          self.contents.fill_rect(x, y, width, width, start_color)   
        end   
      end   
    else   
      for i in 1..distance   
        x = (start_x + 1.0 * (end_x - start_x) * i / distance).to_i   
        y = (start_y + 1.0 * (end_y - start_y) * i / distance).to_i   
        r = start_color.red * (distance-i)/distance + end_color.red * i/distance   
        g = start_color.green * (distance-i)/distance + end_color.green * i/distance   
        b = start_color.blue * (distance-i)/distance + end_color.blue * i/distance   
        a = start_color.alpha * (distance-i)/distance + end_color.alpha * i/distance   
        if width == 1   
          self.contents.set_pixel(x, y, Color.new(r, g, b, a))   
        else   
          self.contents.fill_rect(x, y, width, width, Color.new(r, g, b, a))   
        end   
      end   
    end   
  end 
 |