设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1128|回复: 5
打印 上一主题 下一主题

战斗中显示角色的经验条

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2008-4-6
帖子
141
跳转到指定楼层
1
发表于 2008-11-23 18:57:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
战斗中显示角色的头像和血条的脚本,麻烦给加个经验条,我自己试加

一下,其他没问题,就是经验条不会随经验的多少而变动,麻烦高手指点

一下。

原脚本如下:
#==============================================================================
# ■ Window_BattleStatus
#------------------------------------------------------------------------------
#  显示战斗画面同伴状态的窗口。
#==============================================================================

class Window_BattleStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0, 640, 480)
    self.contents = Bitmap.new(width - 32, height - 32)
    @level_up_flags = [false, false, false, false]
   
    self.opacity = 0
    @sta_back = []
    @sta_output = []
   
    @hp_bitmap = RPG::Cache.picture("HP_Meter.png")
    @mp_bitmap = RPG::Cache.picture("SP_Meter.png")
   
   @xy_window = Window_xy.new
   @xy_window.x = -16
   @xy_window.y = -16
   @xy_window.opacity = 0
   @xy_window.back_opacity = 0
   @xy_window.contents_opacity = 255
   
    for actor_index in 1..$game_party.actors.size
      @sta_back[actor_index] = Sprite.new
      @sta_back[actor_index].bitmap = Bitmap.new("Graphics/Pictures/" + $game_party.actors[actor_index - 1].name + "战斗.png")
      @sta_back[actor_index].x = 510-(actor_index - 1) * 130
      @sta_back[actor_index].y = 0
      @sta_back[actor_index].z = self.z + 1
      @sta_output[actor_index] = Sprite.new
      @sta_output[actor_index].bitmap = Bitmap.new(180, 120)
      @sta_output[actor_index].x = 476-(actor_index - 1) * 130
      @sta_output[actor_index].y = -29 #(actor_index - 1) * 80 - 29
      @sta_output[actor_index].z = self.z + 200
      @sta_output[actor_index].bitmap.clear
      @sta_output[actor_index].bitmap.font.size = 10
      @sta_output[actor_index].bitmap.font.name = "黑体"
      hp_width = $game_party.actors[actor_index - 1].hp * @hp_bitmap.width/$game_party.actors[actor_index - 1].maxhp
      hp_rect = Rect.new(0, 0, hp_width, 12)
      mp_width = $game_party.actors[actor_index - 1].sp * @mp_bitmap.width/$game_party.actors[actor_index - 1].maxsp
      mp_rect = Rect.new(0, 0, mp_width, 12)
    end
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    super
    for actor_index in 1..$game_party.actors.size
      @sta_back[actor_index].bitmap.dispose
      @sta_back[actor_index].dispose
      @sta_output[actor_index].bitmap.dispose
      @sta_output[actor_index].dispose
    end
  end
  #--------------------------------------------------------------------------
  # ● 设置升级标志
  #     actor_index : 角色索引
  #--------------------------------------------------------------------------
  def level_up(actor_index)
    @level_up_flags[actor_index] = true
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
    actor = $game_party.actors
      #......................................................................
     actor_x =  480#i * 160 + 145
     actor_y =  0#i * 80 + 220
    @sta_output[i + 1].bitmap.clear
      
    hp_width = $game_party.actors.hp * @hp_bitmap.width/$game_party.actors.maxhp
    hp_rect = Rect.new(0, 0, hp_width, 12)
      
    mp_width = $game_party.actors.sp * @mp_bitmap.width/$game_party.actors.maxsp
    mp_rect = Rect.new(0, 0, mp_width, 12)
      
      @sta_output[i + 1].bitmap.blt(80, 44, @hp_bitmap, hp_rect)
      #间距
      @sta_output[i + 1].bitmap.blt(80, 56, @mp_bitmap, mp_rect)
  
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
#     主界面的不透明度下降
    if $game_temp.battle_main_phase
      self.contents_opacity = 255 #if self.contents_opacity > 1
    else
      self.contents_opacity = 255 #if self.contents_opacity < 255
    end
  end
end


此贴于 2008-11-24 13:44:35 被版主darkten提醒,请楼主看到后对本贴做出回应。
版务信息:本贴由楼主自主结贴~
[
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-6-12
帖子
340
2
发表于 2008-11-23 19:11:57 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2008-4-6
帖子
141
3
 楼主| 发表于 2008-11-23 19:13:59 | 只看该作者
这中加法,是错的。。。。。。。。。
[
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-6-12
帖子
340
4
发表于 2008-11-23 19:19:24 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
9 小时
注册时间
2006-9-7
帖子
303
5
发表于 2008-11-23 21:43:27 | 只看该作者
正好我也需要,所以刚才试着修改了一下,成功了.


  1. #==============================================================================
  2. # ■ Window_BattleStatus
  3. #------------------------------------------------------------------------------
  4. #  显示战斗画面同伴状态的窗口。
  5. #==============================================================================

  6. class Window_BattleStatus < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 0, 640, 480)
  12.     self.contents = Bitmap.new(width - 32, height - 32)
  13.     @level_up_flags = [false, false, false, false]
  14.    
  15.     self.opacity = 0
  16.     @sta_back = []
  17.     @sta_output = []
  18.    
  19.     @hp_bitmap = RPG::Cache.picture("HP_Meter.png")
  20.     @mp_bitmap = RPG::Cache.picture("SP_Meter.png")
  21.    
  22.     @exp_bitmap = RPG::Cache.picture("Exp_Meter.png")
  23.    
  24.   # @xy_window = Window_xy.new
  25.   # @xy_window.x = -16
  26.   # @xy_window.y = -16
  27.   # @xy_window.opacity = 0
  28.   # @xy_window.back_opacity = 0
  29.   # @xy_window.contents_opacity = 255
  30.    
  31.     for actor_index in 1..$game_party.actors.size
  32.       @sta_back[actor_index] = Sprite.new
  33.       @sta_back[actor_index].bitmap = Bitmap.new("Graphics/Pictures/" + $game_party.actors[actor_index - 1].name + "战斗.png")
  34.       @sta_back[actor_index].x = 510-(actor_index - 1) * 130
  35.       @sta_back[actor_index].y = 0
  36.       @sta_back[actor_index].z = self.z + 1
  37.       @sta_output[actor_index] = Sprite.new
  38.       @sta_output[actor_index].bitmap = Bitmap.new(180, 120)
  39.       @sta_output[actor_index].x = 476-(actor_index - 1) * 130
  40.       @sta_output[actor_index].y = -29 #(actor_index - 1) * 80 - 29
  41.       @sta_output[actor_index].z = self.z + 200
  42.       @sta_output[actor_index].bitmap.clear
  43.       @sta_output[actor_index].bitmap.font.size = 10
  44.       @sta_output[actor_index].bitmap.font.name = "黑体"
  45.       
  46.       exp_width = $game_party.actors[actor_index - 1].now_exp * @exp_bitmap.width/$game_party.actors[actor_index - 1].next_exp
  47.       exp_rect = Rect.new(0, 0, exp_width, 12)
  48.       
  49.       hp_width = $game_party.actors[actor_index - 1].hp * @hp_bitmap.width/$game_party.actors[actor_index - 1].maxhp
  50.       hp_rect = Rect.new(0, 0, hp_width, 12)
  51.       
  52.       mp_width = $game_party.actors[actor_index - 1].sp * @mp_bitmap.width/$game_party.actors[actor_index - 1].maxsp
  53.       mp_rect = Rect.new(0, 0, mp_width, 12)
  54.       
  55.     end
  56.     refresh
  57.   end
  58.   #--------------------------------------------------------------------------
  59.   # ● 释放
  60.   #--------------------------------------------------------------------------
  61.   def dispose
  62.     super
  63.     for actor_index in 1..$game_party.actors.size
  64.       @sta_back[actor_index].bitmap.dispose
  65.       @sta_back[actor_index].dispose
  66.       @sta_output[actor_index].bitmap.dispose
  67.       @sta_output[actor_index].dispose
  68.     end
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 设置升级标志
  72.   #     actor_index : 角色索引
  73.   #--------------------------------------------------------------------------
  74.   def level_up(actor_index)
  75.     @level_up_flags[actor_index] = true
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● 刷新
  79.   #--------------------------------------------------------------------------
  80.   def refresh
  81.     self.contents.clear
  82.     @item_max = $game_party.actors.size
  83.     for i in 0...$game_party.actors.size
  84.     actor = $game_party.actors[i]
  85.       #......................................................................
  86.      actor_x =  480#i * 160 + 145
  87.      actor_y =  0#i * 80 + 220
  88.     @sta_output[i + 1].bitmap.clear
  89.    
  90.     exp_width = $game_party.actors[i].now_exp * @exp_bitmap.width/$game_party.actors[i].next_exp
  91.     exp_rect = Rect.new(0, 0, exp_width, 12)
  92.       
  93.     hp_width = $game_party.actors[i].hp * @hp_bitmap.width/$game_party.actors[i].maxhp
  94.     hp_rect = Rect.new(0, 0, hp_width, 12)
  95.       
  96.     mp_width = $game_party.actors[i].sp * @mp_bitmap.width/$game_party.actors[i].maxsp
  97.     mp_rect = Rect.new(0, 0, mp_width, 12)
  98.       
  99.       @sta_output[i + 1].bitmap.blt(80, 44, @hp_bitmap, hp_rect)
  100.       #间距
  101.       @sta_output[i + 1].bitmap.blt(80, 56, @mp_bitmap, mp_rect)
  102.       
  103.       @sta_output[i + 1].bitmap.blt(80, 32, @exp_bitmap, exp_rect)
  104.   
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 刷新画面
  109.   #--------------------------------------------------------------------------
  110.   def update
  111.     super
  112. #     主界面的不透明度下降
  113.     if $game_temp.battle_main_phase
  114.       self.contents_opacity = 255 #if self.contents_opacity > 1
  115.     else
  116.       self.contents_opacity = 255 #if self.contents_opacity < 255
  117.     end
  118.   end
  119. end


  120. ##############
  121. # Game_Actor #
  122. ##############


  123. class Game_Actor < Game_Battler
  124. def now_exp
  125. return @exp - @exp_list[@level]
  126. end
  127. def next_exp
  128. return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  129. end
  130. end

复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
十年磨一剑,蓦然回首,年华如水,青春如歌。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2008-4-6
帖子
141
6
 楼主| 发表于 2008-11-25 18:14:58 | 只看该作者
还是有高手的啊,顶了。。。。
[
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-21 04:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表