Project1

标题: Window_BattleResult - -+!(乱糟糟一团) [打印本页]

作者: 华华    时间: 2007-8-2 00:56
标题: Window_BattleResult - -+!(乱糟糟一团)
这个,战斗后的提示画面,没做成功。
想要的效果是,左边是人物战斗图,右边用血条显示HP/SP/EXP/。并且战斗结束后恢复50%受损血、魔,这个过程和增加EXP 要用血条显示出来(就像新神奇传说3 战斗后EXP的处理)
下面这个,难看暂且不说。根本不能显示出加血、魔,以及EXP增加的动态效果。我知道是循环得太快了,看不出来。但不知道该怎么该。

或者,我这个思路就有点问题:根本不该用
for i in 1...(_whh-_wh).to_i
   self.contents.fill_rect(_x,10,_wh+i,20,Color.new(255, 160, 153, 145))
end
这样的循环,而是在画好原来的血条后,直接停一下,画回复后的血条。(那如果以后要在血条后再加上具体的数字变化,又怎么办捏- -+)

嘿嘿,大家帮忙看一下吧。还米完成呢,EXP还没做,刷新那里也把外面的循环注释掉了。。。

PS,那个简易血条脚本是怎么做出实心园筒的效果的啊,看了很久没看明白。{/pz}
再PS,使用颜色时很麻烦捏,大家是怎么弄的啊
再再PS,最前面初始化那里,有个self.visible=false,在预设脚本中是哪里把它该成true的呢?由于没找到,就直接给该成true了。。。- -

  1. #==============================================================================
  2. # ■ Window_BattleResult
  3. #------------------------------------------------------------------------------
  4. #  战斗结束时、显示获得的 EXP 及金钱的窗口。
  5. #==============================================================================

  6. class Window_BattleResult < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     exp       : EXP
  10.   #     gold      : 金钱
  11.   #     treasures : 宝物
  12.   #--------------------------------------------------------------------------
  13.   def initialize(exp, gold, treasures)
  14.     @exp = exp
  15.     @gold = gold
  16.     @treasures = treasures
  17.     #-------------窗口位置--------------
  18.     _x=0
  19.     _y=179
  20.     _width=650
  21.     _height=126
  22.     #-----------------------------------
  23.     super(_x,_y,_width,_height)
  24.     self.contents = Bitmap.new(width - 32, height - 32)
  25.     self.y = 160 - height / 2
  26.     self.back_opacity = 150
  27.     self.opacity=100
  28.     self.visible = true  ###############
  29.     refresh
  30.   end
  31.   def refresh
  32.     self.contents.clear
  33.     # for actor in $game_party.actors
  34.       actor=$game_party.actors[0]
  35.       @battler=Sprite.new
  36.       @battler.bitmap=RPG::Cache.battler(actor.battler_name ,actor.battler_hue)
  37.       x=self.x  # 战斗图片的坐标
  38.       [email protected]
  39.       @battler.x=x
  40.       @battler.y=y
  41.       @battler.z=7000
  42.       # 描画血条
  43.       [email protected]+60   # 描绘HP/SP/EXP的整体X坐标
  44.       _w=170                          # 血条长度
  45.       #-------------------------------描绘HP-------------------------
  46.       _wh=(_w*(actor.hp/actor.maxhp)).to_i
  47.       actor.hp += 0.5*(actor.maxhp-actor.hp)
  48.       _whh=(_w*(actor.hp/actor.maxhp)).to_i
  49.       actor.hp=actor.hp.to_i
  50.       
  51.       self.contents.draw_text(_x-30,10,32,20,"HP:")
  52.       self.contents.fill_rect(_x,10,_w,20,Color.new(255, 255, 153, 145))
  53.       self.contents.fill_rect(_x,10,_wh,20,Color.new(255, 160, 153, 145))
  54.       for i in 1...(_whh-_wh).to_i
  55.         self.contents.fill_rect(_x,10,_wh+i,20,Color.new(255, 160, 153, 145))
  56.       end
  57.       #-----------------------------------------------------------------
  58.       #-------------------------------描绘SP-------------------------
  59.       _wh=(_w*(actor.sp/actor.maxsp)).to_i
  60.       actor.sp += 0.5*(actor.maxsp-actor.sp)
  61.       _whh=(_w*(actor.sp/actor.maxsp)).to_i
  62.       actor.sp=actor.sp.to_i
  63.       
  64.       self.contents.draw_text(_x-30,10+30,32,20,"SP:")
  65.       self.contents.fill_rect(_x,10+30,_w,20,Color.new(255, 255, 153, 145))
  66.       self.contents.fill_rect(_x,10+30,_wh,20,Color.new(255, 160, 153, 145))
  67.       for s in 1...(_whh-_wh).to_i
  68.         self.contents.fill_rect(_x,10+30,_wh+s,20,Color.new(255, 160, 153, 145))
  69.       end
  70.       #-----------------------------------------------------------------
  71.       # @battler.bitmap.dispose
  72.       # @battler.dispose
  73.       # self.contents.clear
  74.     # end
  75.   end
  76. end
复制代码
[LINE]1,#dddddd[/LINE]此贴于 2007-8-8 1:08:13 被版主柳柳提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 华华    时间: 2007-8-2 00:56
标题: Window_BattleResult - -+!(乱糟糟一团)
这个,战斗后的提示画面,没做成功。
想要的效果是,左边是人物战斗图,右边用血条显示HP/SP/EXP/。并且战斗结束后恢复50%受损血、魔,这个过程和增加EXP 要用血条显示出来(就像新神奇传说3 战斗后EXP的处理)
下面这个,难看暂且不说。根本不能显示出加血、魔,以及EXP增加的动态效果。我知道是循环得太快了,看不出来。但不知道该怎么该。

或者,我这个思路就有点问题:根本不该用
for i in 1...(_whh-_wh).to_i
   self.contents.fill_rect(_x,10,_wh+i,20,Color.new(255, 160, 153, 145))
end
这样的循环,而是在画好原来的血条后,直接停一下,画回复后的血条。(那如果以后要在血条后再加上具体的数字变化,又怎么办捏- -+)

嘿嘿,大家帮忙看一下吧。还米完成呢,EXP还没做,刷新那里也把外面的循环注释掉了。。。

PS,那个简易血条脚本是怎么做出实心园筒的效果的啊,看了很久没看明白。{/pz}
再PS,使用颜色时很麻烦捏,大家是怎么弄的啊
再再PS,最前面初始化那里,有个self.visible=false,在预设脚本中是哪里把它该成true的呢?由于没找到,就直接给该成true了。。。- -

  1. #==============================================================================
  2. # ■ Window_BattleResult
  3. #------------------------------------------------------------------------------
  4. #  战斗结束时、显示获得的 EXP 及金钱的窗口。
  5. #==============================================================================

  6. class Window_BattleResult < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     exp       : EXP
  10.   #     gold      : 金钱
  11.   #     treasures : 宝物
  12.   #--------------------------------------------------------------------------
  13.   def initialize(exp, gold, treasures)
  14.     @exp = exp
  15.     @gold = gold
  16.     @treasures = treasures
  17.     #-------------窗口位置--------------
  18.     _x=0
  19.     _y=179
  20.     _width=650
  21.     _height=126
  22.     #-----------------------------------
  23.     super(_x,_y,_width,_height)
  24.     self.contents = Bitmap.new(width - 32, height - 32)
  25.     self.y = 160 - height / 2
  26.     self.back_opacity = 150
  27.     self.opacity=100
  28.     self.visible = true  ###############
  29.     refresh
  30.   end
  31.   def refresh
  32.     self.contents.clear
  33.     # for actor in $game_party.actors
  34.       actor=$game_party.actors[0]
  35.       @battler=Sprite.new
  36.       @battler.bitmap=RPG::Cache.battler(actor.battler_name ,actor.battler_hue)
  37.       x=self.x  # 战斗图片的坐标
  38.       [email protected]
  39.       @battler.x=x
  40.       @battler.y=y
  41.       @battler.z=7000
  42.       # 描画血条
  43.       [email protected]+60   # 描绘HP/SP/EXP的整体X坐标
  44.       _w=170                          # 血条长度
  45.       #-------------------------------描绘HP-------------------------
  46.       _wh=(_w*(actor.hp/actor.maxhp)).to_i
  47.       actor.hp += 0.5*(actor.maxhp-actor.hp)
  48.       _whh=(_w*(actor.hp/actor.maxhp)).to_i
  49.       actor.hp=actor.hp.to_i
  50.       
  51.       self.contents.draw_text(_x-30,10,32,20,"HP:")
  52.       self.contents.fill_rect(_x,10,_w,20,Color.new(255, 255, 153, 145))
  53.       self.contents.fill_rect(_x,10,_wh,20,Color.new(255, 160, 153, 145))
  54.       for i in 1...(_whh-_wh).to_i
  55.         self.contents.fill_rect(_x,10,_wh+i,20,Color.new(255, 160, 153, 145))
  56.       end
  57.       #-----------------------------------------------------------------
  58.       #-------------------------------描绘SP-------------------------
  59.       _wh=(_w*(actor.sp/actor.maxsp)).to_i
  60.       actor.sp += 0.5*(actor.maxsp-actor.sp)
  61.       _whh=(_w*(actor.sp/actor.maxsp)).to_i
  62.       actor.sp=actor.sp.to_i
  63.       
  64.       self.contents.draw_text(_x-30,10+30,32,20,"SP:")
  65.       self.contents.fill_rect(_x,10+30,_w,20,Color.new(255, 255, 153, 145))
  66.       self.contents.fill_rect(_x,10+30,_wh,20,Color.new(255, 160, 153, 145))
  67.       for s in 1...(_whh-_wh).to_i
  68.         self.contents.fill_rect(_x,10+30,_wh+s,20,Color.new(255, 160, 153, 145))
  69.       end
  70.       #-----------------------------------------------------------------
  71.       # @battler.bitmap.dispose
  72.       # @battler.dispose
  73.       # self.contents.clear
  74.     # end
  75.   end
  76. end
复制代码
[LINE]1,#dddddd[/LINE]此贴于 2007-8-8 1:08:13 被版主柳柳提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 柳柳    时间: 2007-8-8 09:08
建议:整理一下语言和要问的问题、整理一下逻辑,然后用工程来展示问题,并在应援区进行此问题的讨论。 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~




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