Project1

标题: XP如何在地图上显示人物血条 [打印本页]

作者: bf21    时间: 2012-8-1 17:15
标题: XP如何在地图上显示人物血条
拜托!!!!!!!!1dsu_plus_rewardpost_czw
作者: 原野清平    时间: 2012-8-1 17:31
本帖最后由 原野清平 于 2012-8-1 17:34 编辑

018_在地图上创建窗口.rar (190.26 KB, 下载次数: 275) ���

或者用这个吧。

RUBY 代码复制
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================
  4.  
  5.  
  6.  
  7.  
  8. #◆◇◆◇◆-----XRXS54. マップ上で簡易ウィンドウ表示 ver1.0 -----◇◆◇◆◇
  9. # by 刻宮
  10.  
  11. # 「ディフォルト機能 & 仕様」
  12. #  ・$WIN_2 = true。としても、スイッチがONでかつ、アクターが存在しなければ
  13. #   ウィンドウは表示されません。この3要素が揃った時にウィンドウを表示します。
  14. #  ・逆にこの要素が一つでも欠けるとウィンドウは自動的に非表示になります。
  15. #  ・ツクール開始時はスイッチはOFFなので、ONにしないと表示されません。
  16. #------------------------------------------------------------------
  17. # カスタマイズポイント
  18. #(*存在しないスイッチを指定されるとエラーになります。)
  19.  
  20.  
  21. #----------------------------------------------------------------
  22. # 使用说明(66RPG提示:本脚本其实难度不是很高,建议学习RGSS略有心得
  23. #           的人尝试自己编写一个同类功能窗口)
  24. #----------------------------------------------------------------
  25. WIN_1     = true  # 是否使用1号窗口,true为使用,false为不使用
  26. SWITVH_1  = 40    # 当此编号开关打开的时候窗口显示。如设置为40则40号开关打开,1号窗口显示
  27. OPACITY_1 = 0   # 1号窗口透明度
  28. X_1       = 0     # 1号窗口X坐标
  29. Y_1       = 384   # 1号窗口Y坐标
  30.  
  31. $WIN_2    = true  # 是否使用2号窗口,true为使用,false为不使用
  32. SWITVH_2  = 41    # 当此编号开关打开的时候窗口显示。如设置为41则41号开关打开,2号窗口显示
  33. OPACITY_2 = 144   # 2号窗口透明度
  34. X_2       = 160   # 2号窗口X坐标
  35. Y_2       = 384   # 2号窗口Y坐标
  36.  
  37. WIN_3     = true  # 是否使用3号窗口,true为使用,false为不使用
  38. SWITVH_3  = 42    # 当此编号开关打开的时候窗口显示。如设置为42则42号开关打开,3号窗口显示
  39. OPACITY_3 = 144   # 3号窗口透明度
  40. X_3       = 320   # 3号窗口X坐标
  41. Y_3       = 384   # 3号窗口Y坐标
  42.  
  43. WIN_4     = true  # 是否使用4号窗口,true为使用,false为不使用
  44. SWITVH_4  = 43    # 当此编号开关打开的时候窗口显示。如设置为43则43号开关打开,4号窗口显示
  45. OPACITY_4 = 144   # 4号窗口透明度
  46. X_4       = 480   # 4号窗口X坐标
  47. Y_4       = 384   # 4号窗口Y坐标
  48.  
  49. SET_SP    = [true,false,true,true] # 决定各个窗口是否显示SP数值,true为显示,false为不显示。
  50. OPTION    = 44    # 决定在对话的时候是否让窗口隐藏的开关编号。
  51.                    # 比如设置为44,则当44号开关打开,则在对话的时候窗口隐藏
  52.                    # 否则窗口不隐藏。
  53.  
  54.  
  55. #=========================================================================
  56. # ■ Scene_Map
  57. #=========================================================================
  58. class Scene_Map
  59. #---------------------------------------------------------------------
  60. # ● フレーム更新
  61. #---------------------------------------------------------------------
  62. alias main_tokimiya main
  63. def main
  64.    # 簡易ウィンドウ1を作成
  65.      @simple_window1 = Window_MapStatus.new(X_1,Y_1,0)
  66.      @simple_window1.opacity = OPACITY_1
  67.      @simple_window1.visible = $game_switches[SWITVH_1]
  68.      unless $game_party.actors.size > 0
  69.        @simple_window1.visible = false
  70.      end
  71.    # 簡易ウィンドウ2を作成
  72.      @simple_window2 = Window_MapStatus.new(X_2,Y_2,1)
  73.      @simple_window2.opacity = OPACITY_2
  74.      @simple_window2.visible = $game_switches[SWITVH_2]
  75.      unless $game_party.actors.size > 1
  76.        @simple_window2.visible = false
  77.      end
  78.    # 簡易ウィンドウ3を作成
  79.      @simple_window3 = Window_MapStatus.new(X_3,Y_3,2)
  80.      @simple_window3.opacity = OPACITY_3
  81.      @simple_window3.visible = $game_switches[SWITVH_3]
  82.      unless $game_party.actors.size > 2
  83.        @simple_window3.visible = false
  84.      end
  85.    # 簡易ウィンドウ4を作成
  86.      @simple_window4 = Window_MapStatus.new(X_4,Y_4,3)
  87.      @simple_window4.opacity = OPACITY_4
  88.      @simple_window4.visible = $game_switches[SWITVH_4]
  89.      unless $game_party.actors.size > 3
  90.        @simple_window4.visible = false
  91.      end
  92.  
  93.      main_tokimiya   # 旧メソッドの呼び出し
  94.  
  95.    # 簡易ウィンドウの解放
  96.      @simple_window1.dispose
  97.      @simple_window2.dispose
  98.      @simple_window3.dispose
  99.      @simple_window4.dispose
  100. end
  101.  
  102. #---------------------------------------------------------------------
  103. # ● フレーム更新
  104. #---------------------------------------------------------------------
  105. alias update_tokimiya update
  106. def update
  107.    update_tokimiya   # 旧メソッドの呼び出し
  108.    # 以前のパラメーターと相違があれば、内容を更新する。
  109.    #
  110.    # ウィンドウ1の更新。
  111.    if WIN_1 == true and $game_party.actors.size > 0
  112.      # データの更新
  113.      actor = $game_party.actors[0]
  114.      factor_1 = @simple_window1.before_1[0] != actor.name
  115.      factor_2 = @simple_window1.before_1[1] != actor.hp
  116.      factor_3 = @simple_window1.before_1[2] != actor.sp
  117.      if factor_1 or factor_2 or factor_3
  118.        @simple_window1.before_1[0] = actor.name
  119.        @simple_window1.before_1[1] = actor.hp
  120.        @simple_window1.before_1[2] = actor.sp
  121.        @simple_window1.refresh(0)
  122.      end
  123.      # 非表示機能の実行
  124.      if @message_window.visible == true and $game_switches[OPTION] == true
  125.        @simple_window1.before_1[3] = false
  126.        @simple_window1.visible = false
  127.      elsif @simple_window1.before_1[3] != $game_switches[SWITVH_1]
  128.        @simple_window1.before_1[3] = $game_switches[SWITVH_1]
  129.        @simple_window1.visible = $game_switches[SWITVH_1]
  130.      end
  131.    end
  132.  
  133.    # ウィンドウ2の更新。
  134.    if $WIN_2 == true and $game_party.actors.size > 1
  135.      # データの更新
  136.      actor = $game_party.actors[1]
  137.      factor_1 = @simple_window2.before_2[0] != actor.name
  138.      factor_2 = @simple_window2.before_2[1] != actor.hp
  139.      factor_3 = @simple_window2.before_2[2] != actor.sp
  140.      if factor_1 or factor_2 or factor_3
  141.        @simple_window2.before_2[0] = actor.name
  142.        @simple_window2.before_2[1] = actor.hp
  143.        @simple_window2.before_2[2] = actor.sp
  144.        @simple_window2.refresh(1)
  145.        # ウィンドウを強制的に生成
  146.        @simple_window2.before_2[3] = true
  147.        @simple_window2.visible = true
  148.      end
  149.      # 非表示機能の実行
  150.      if @message_window.visible == true and $game_switches[OPTION] == true
  151.        @simple_window2.before_2[3] = false
  152.        @simple_window2.visible = false
  153.      elsif @simple_window2.before_2[3] != $game_switches[SWITVH_2]
  154.        @simple_window2.before_2[3] = $game_switches[SWITVH_2]
  155.        @simple_window2.visible = $game_switches[SWITVH_2]
  156.      end
  157.    # アクターが存在しないのにウィンドウが表示されたままの場合。
  158.    elsif @simple_window2.visible == true and @simple_window2.before_2 != nil
  159.      # ウィンドウを消去。
  160.      @simple_window2.before_2[3] = false
  161.      @simple_window2.visible = false
  162.    end
  163.  
  164.    # ウィンドウ3の更新。
  165.    if WIN_3 == true and $game_party.actors.size > 2
  166.      # データの更新
  167.      actor = $game_party.actors[2]
  168.      factor_1 = @simple_window3.before_3[0] != actor.name
  169.      factor_2 = @simple_window3.before_3[1] != actor.hp
  170.      factor_3 = @simple_window3.before_3[2] != actor.sp
  171.      if factor_1 or factor_2 or factor_3
  172.        @simple_window3.before_3[0] = actor.name
  173.        @simple_window3.before_3[1] = actor.hp
  174.        @simple_window3.before_3[2] = actor.sp
  175.        @simple_window3.refresh(2)
  176.        # ウィンドウを強制的に生成
  177.        @simple_window3.before_3[3] = true
  178.        @simple_window3.visible = true
  179.      end
  180.      # 非表示機能の実行
  181.      if @message_window.visible == true and $game_switches[OPTION] == true
  182.        @simple_window3.before_3[3] = false
  183.        @simple_window3.visible = false
  184.      elsif @simple_window3.before_3[3] != $game_switches[SWITVH_3]
  185.        @simple_window3.before_3[3] = $game_switches[SWITVH_3]
  186.        @simple_window3.visible = $game_switches[SWITVH_3]
  187.      end
  188.    # アクターが存在しないのにウィンドウが表示されたままの場合。
  189.    elsif @simple_window3.visible == true and @simple_window3.before_3 != nil
  190.      # ウィンドウを消去。
  191.      @simple_window3.before_3[3] = false
  192.      @simple_window3.visible = false
  193.    end
  194.  
  195.    # ウィンドウ4の更新。
  196.    if WIN_4 == true and $game_party.actors.size > 3
  197.      # データの更新
  198.      actor = $game_party.actors[3]
  199.      factor_1 = @simple_window4.before_4[0] != actor.name
  200.      factor_2 = @simple_window4.before_4[1] != actor.hp
  201.      factor_3 = @simple_window4.before_4[2] != actor.sp
  202.      if factor_1 or factor_2 or factor_3
  203.        @simple_window4.before_4[0] = actor.name
  204.        @simple_window4.before_4[1] = actor.hp
  205.        @simple_window4.before_4[2] = actor.sp
  206.        @simple_window4.refresh(3)
  207.        # ウィンドウを強制的に生成
  208.        @simple_window4.before_4[3] = true
  209.        @simple_window4.visible = true
  210.      end
  211.      # 非表示機能の実行
  212.      if @message_window.visible == true and $game_switches[OPTION] == true
  213.        @simple_window4.before_4[3] = false
  214.        @simple_window4.visible = false
  215.      elsif @simple_window4.before_4[3] != $game_switches[SWITVH_4]
  216.        @simple_window4.before_4[3] = $game_switches[SWITVH_4]
  217.        @simple_window4.visible = $game_switches[SWITVH_4]
  218.      end
  219.    # アクターが存在しないのにウィンドウが表示されたままの場合。
  220.    elsif @simple_window4.visible == true and @simple_window4.before_4 != nil
  221.      # ウィンドウを消去。
  222.      @simple_window4.before_4[3] = false
  223.      @simple_window4.visible = false
  224.    end
  225. end
  226. end
  227.  
  228.  
  229.  
  230. #=========================================================================
  231. # ■ Window_MapStatus,脚本来自[url]www.66rpg.com[/url],转载请注意说明
  232. #=========================================================================
  233. class Window_MapStatus < Window_Base
  234. #--------------------------------------------------------------------------
  235. # ○ 公開インスタンス変数
  236. #--------------------------------------------------------------------------
  237. attr_accessor   :before_1              # 更新前のウィンドウ1のパラメーター
  238. attr_accessor   :before_2              # 更新前のウィンドウ2のパラメーター
  239. attr_accessor   :before_3              # 更新前のウィンドウ3のパラメーター
  240. attr_accessor   :before_4              # 更新前のウィンドウ4のパラメーター
  241. #---------------------------------------------------------------------
  242. # ● フレーム更新
  243. #---------------------------------------------------------------------
  244. def initialize(x,y,id)
  245.    #super(x,y,160,96)
  246.    super(0,0,640,128)
  247.    self.contents = Bitmap.new(width - 32, height - 32)
  248.    self.contents.font.size = 18
  249.    @before_1=[]
  250.    @before_2=[]
  251.    @before_3=[]
  252.    @before_4=[]
  253.     # 現段階のアクターのパラメーターと可視状態を記憶。
  254.    data
  255.    # 項目の描画。
  256.    refresh(id)
  257. end
  258. #--------------------------------------------------------------------------
  259. # ● 項目の描画
  260. #--------------------------------------------------------------------------
  261. def data
  262.    # アクター1の記憶(ただし、パーティが1名以上の場合)
  263.    if $game_party.actors.size > 0
  264.      actor = $game_party.actors[0]
  265.      @before_1 = [actor.name, actor.hp, actor.sp,true]
  266.    end
  267.    # アクター2の記憶(ただし、パーティが2名以上の場合)
  268.    if $game_party.actors.size > 1
  269.      actor = $game_party.actors[1]
  270.      @before_2 = [actor.name, actor.hp, actor.sp,true]
  271.    end
  272.    # アクター3の記憶(ただし、パーティが3名以上の場合)
  273.    if $game_party.actors.size > 2
  274.      actor = $game_party.actors[2]
  275.      @before_3 = [actor.name, actor.hp, actor.sp,true]
  276.    end
  277.    # アクター3の記憶(ただし、パーティが4名以上の場合)
  278.    if $game_party.actors.size > 3
  279.      actor = $game_party.actors[3]
  280.      @before_4 = [actor.name, actor.hp, actor.sp,true]
  281.    end
  282. end
  283. #--------------------------------------------------------------------------
  284. # ● 項目の描画
  285. #--------------------------------------------------------------------------
  286. def refresh(id)
  287.    # 再描画のために一旦内容を破棄する
  288.    self.contents.clear
  289.    # 対応するアクターがいなければ、何もせずに終了する。
  290.    actor = $game_party.actors[id]
  291.    if actor == nil
  292.      return
  293.    end
  294.    # 名前の描画
  295.    draw_actor_name(actor, 0, -5)
  296.    # HPの描画
  297.    if SET_SP[id]
  298.      draw_actor_hp_bar(actor, 0, 18)
  299.    else
  300.      draw_actor_hp_bar(actor, 0, 28)
  301.    end
  302.    # SPの描画
  303.    if SET_SP[id]
  304.      draw_actor_sp_bar(actor, 0, 36)
  305.    end
  306. end
  307. end
  308.  
  309.  
  310. class Window_Base < Window
  311. #--------------------------------------------------------------------------
  312. # ● HP ゲージの描画
  313. #--------------------------------------------------------------------------
  314. # オリジナルのHP描画を draw_actor_hp_original と名前変更
  315. def draw_actor_hp_bar(actor, x, y, width = 144)
  316.    # 変数rateに 現在のHP/MHPを代入
  317.    if actor.maxhp != 0
  318.      rate = actor.hp.to_f / actor.maxhp
  319.    else
  320.      rate = 0
  321.    end
  322.    # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  323.    # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  324.    # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  325.    # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  326.    # align3:ゲージタイプ 0:左詰め 1:右詰め
  327.    plus_x = 0
  328.    rate_x = 120#HP条的X
  329.    plus_y = 25#HP条的Y
  330.    plus_width = 0
  331.    rate_width = 300 #HP条的高
  332.    height = 10#HP条的高
  333.    align1 = 1
  334.    align2 = 2
  335.    align3 = 0
  336.    # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  337.    # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  338.    grade1 = 1
  339.    grade2 = 0
  340.    # 色設定。color1:外枠,color2:中枠
  341.    # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  342.    # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  343.    color1 = Color.new(0, 0, 0, 192)
  344.    color2 = Color.new(255, 255, 192, 192)
  345.    color3 = Color.new(0, 0, 0, 192)
  346.    color4 = Color.new(64, 0, 0, 192)
  347.    color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
  348.    color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.    # 変数spに描画するゲージの幅を代入
  357.    if actor.maxhp != 0
  358.      hp = (width + plus_width) * actor.hp * rate_width / 100 / actor.maxhp
  359.    else
  360.      hp = 0
  361.    end
  362.    # ゲージの描画
  363.    gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  364.                width, plus_width + width * rate_width / 100,
  365.                height, hp, align1, align2, align3,
  366.                color1, color2, color3, color4, color5, color6, grade1, grade2)
  367.  
  368. end
  369. #--------------------------------------------------------------------------
  370. # ● SP ゲージの描画
  371. #--------------------------------------------------------------------------
  372. # オリジナルのSP描画を draw_actor_sp_original と名前変更
  373.  
  374. def draw_actor_sp_bar(actor, x, y, width = 144)
  375.    # 変数rateに 現在のSP/MSPを代入
  376.    if actor.maxsp != 0
  377.      rate = actor.sp.to_f / actor.maxsp
  378.    else
  379.      rate = 1
  380.    end
  381.    # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  382.    # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  383.    # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  384.    # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  385.    # align3:ゲージタイプ 0:左詰め 1:右詰め
  386.    plus_x = 0
  387.    rate_x = 120#SP条的X
  388.    plus_y = 25#SP条的Y
  389.    plus_width = 0
  390.    rate_width = 300 #SP条宽
  391.    height = 10#SP条的高
  392.    align1 = 1
  393.    align2 = 2
  394.    align3 = 0
  395.    # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  396.    # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  397.    grade1 = 1
  398.    grade2 = 0
  399.    # 色設定。color1:外枠,color2:中枠
  400.    # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  401.    # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  402.    color1 = Color.new(0, 0, 0, 192)
  403.    color2 = Color.new(255, 255, 192, 192)
  404.    color3 = Color.new(0, 0, 0, 192)
  405.    color4 = Color.new(0, 64, 0, 192)
  406.    color5 = Color.new(14 * rate, 80 - 24 * rate, 80 * rate, 192)
  407.    color6 = Color.new(62 * rate, 240 - 72 * rate, 240 * rate, 192)
  408.    # 変数spに描画するゲージの幅を代入
  409.    if actor.maxsp != 0
  410.      sp = (width + plus_width) * actor.sp * rate_width / 100 / actor.maxsp
  411.    else
  412.      sp = (width + plus_width) * rate_width / 100
  413.    end
  414.    # ゲージの描画
  415.    gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  416.                width, plus_width + width * rate_width / 100,
  417.                height, sp, align1, align2, align3,
  418.                color1, color2, color3, color4, color5, color6, grade1, grade2)
  419.    # オリジナルのSP描画処理を呼び出し
  420.  
  421. end  
  422. end
  423.  
  424.  
  425. def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  426.                color1, color2, color3, color4, color5, color6, grade1, grade2)
  427.    case align1
  428.    when 1
  429.      x += (rect_width - width) / 2
  430.    when 2
  431.      x += rect_width - width
  432.    end
  433.    case align2
  434.    when 1
  435.      y -= height / 2
  436.    when 2
  437.      y -= height
  438.    end
  439.    # 枠描画
  440.    self.contents.fill_rect(x, y, width, height, color1)
  441.    self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  442.    if align3 == 0
  443.      if grade1 == 2
  444.        grade1 = 3
  445.      end
  446.      if grade2 == 2
  447.        grade2 = 3
  448.      end
  449.    end
  450.    if (align3 == 1 and grade1 == 0) or grade1 > 0
  451.      color = color3
  452.      color3 = color4
  453.      color4 = color
  454.    end
  455.    if (align3 == 1 and grade2 == 0) or grade2 > 0
  456.      color = color5
  457.      color5 = color6
  458.      color6 = color
  459.    end
  460.    # 空ゲージの描画
  461.    self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  462.                                  color3, color4, grade1)
  463.    if align3 == 1
  464.      x += width - gauge
  465.    end
  466.    # 実ゲージの描画
  467.    self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  468.                                  color5, color6, grade2)
  469. end
  470.  
  471.  
  472.  
  473.  
  474.  
  475. class Bitmap
  476. #--------------------------------------------------------------------------
  477. # ● 矩形をグラデーション表示
  478. #     color1 : スタートカラー
  479. #     color2 : エンドカラー
  480. #     align  :  0:横にグラデーション
  481. #               1:縦にグラデーション
  482. #               2:斜めにグラデーション(激重につき注意)
  483. #--------------------------------------------------------------------------
  484. def gradation_rect(x, y, width, height, color1, color2, align = 0)
  485.    if align == 0
  486.      for i in x...x + width
  487.        red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  488.        green = color1.green +
  489.                (color2.green - color1.green) * (i - x) / (width - 1)
  490.        blue  = color1.blue +
  491.                (color2.blue - color1.blue) * (i - x) / (width - 1)
  492.        alpha = color1.alpha +
  493.                (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  494.        color = Color.new(red, green, blue, alpha)
  495.        fill_rect(i, y, 1, height, color)
  496.      end
  497.    elsif align == 1
  498.      for i in y...y + height
  499.        red   = color1.red +
  500.                (color2.red - color1.red) * (i - y) / (height - 1)
  501.        green = color1.green +
  502.                (color2.green - color1.green) * (i - y) / (height - 1)
  503.        blue  = color1.blue +
  504.                (color2.blue - color1.blue) * (i - y) / (height - 1)
  505.        alpha = color1.alpha +
  506.                (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  507.        color = Color.new(red, green, blue, alpha)
  508.        fill_rect(x, i, width, 1, color)
  509.      end
  510.    elsif align == 2
  511.      for i in x...x + width
  512.        for j in y...y + height
  513.          red   = color1.red + (color2.red - color1.red) *
  514.                  ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  515.          green = color1.green + (color2.green - color1.green) *
  516.                  ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  517.          blue  = color1.blue + (color2.blue - color1.blue) *
  518.                  ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  519.          alpha = color1.alpha + (color2.alpha - color1.alpha) *
  520.                  ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  521.          color = Color.new(red, green, blue, alpha)
  522.          set_pixel(i, j, color)
  523.        end
  524.      end
  525.    elsif align == 3
  526.      for i in x...x + width
  527.        for j in y...y + height
  528.          red   = color1.red + (color2.red - color1.red) *
  529.                ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  530.          green = color1.green + (color2.green - color1.green) *
  531.                ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  532.          blue  = color1.blue + (color2.blue - color1.blue) *
  533.                ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  534.          alpha = color1.alpha + (color2.alpha - color1.alpha) *
  535.                ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  536.          color = Color.new(red, green, blue, alpha)
  537.          set_pixel(i, j, color)
  538.        end
  539.      end
  540.    end
  541. end
  542. end
  543.  
  544.  
  545.  
  546. #==============================================================================
  547. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  548. #==============================================================================

作者: bf21    时间: 2012-8-2 09:49
原野清平 发表于 2012-8-1 17:31

工具是旧版本无法打开这个工程。不行啊!
作者: 原野清平    时间: 2012-8-2 09:52
@bf21看点评不说话~




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