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

Project1

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

[已经解决] 怪物血量条宽度的修改

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2009-8-22
帖子
105
跳转到指定楼层
1
发表于 2009-9-27 20:11:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 plqws 于 2009-9-28 12:48 编辑

就是这个HP条,血量的长条宽度怎么改?
  1. #==============================================================================
  2. # ■ Window_Base
  3. #------------------------------------------------------------------------------
  4. #  游戏中全部窗口的超级类。
  5. #==============================================================================

  6. class Window_Base < Window
  7.   #--------------------------------------------------------------------------
  8.   # ● 描绘 HP
  9.   #     enemy : 角色
  10.   #     x     : 描绘目标 X 坐标
  11.   #     y     : 描绘目标 Y 坐标
  12.   #     width : 宽
  13.   #--------------------------------------------------------------------------
  14.   def draw_enemy_hp(enemy, x, y, width = 65)
  15.     draw_actor_hp_gauge(enemy, x, y, width)
  16.     self.contents.font.color = system_color
  17.     self.contents.draw_text(x, y, 30, WLH, Vocab::hp_a)
  18.     self.contents.font.color = hp_color(enemy)
  19.     xr = x + width
  20.     self.contents.draw_text(xr - 40, y, 40, WLH, enemy.hp, 2)
  21.   end
  22. end
  23. #==============================================================================
  24. # ■ Sprite_Battler
  25. #------------------------------------------------------------------------------
  26. #  战斗显示用活动块。Game_Battler 类的实例监视、
  27. # 活动块的状态的监视、活动块状态自动变化。
  28. #==============================================================================

  29. class Sprite_Battler < Sprite_Base
  30.   #--------------------------------------------------------------------------
  31.   # ● 常量
  32.   #--------------------------------------------------------------------------
  33.   WHITEN    = 1                      # 白色闪烁 (开始行动)
  34.   BLINK     = 2                      # 闪烁 (伤害)
  35.   APPEAR    = 3                      # 出现 (出现、复活)
  36.   DISAPPEAR = 4                      # 消失 (逃走)
  37.   COLLAPSE  = 5                      # 崩溃 (不能战斗)
  38.   #--------------------------------------------------------------------------
  39.   # ● 定义实例变量
  40.   #--------------------------------------------------------------------------
  41.   attr_accessor :battler
  42.   #--------------------------------------------------------------------------
  43.   # ● 初始化对象
  44.   #     viewport : 视区
  45.   #     battler  : 战斗者 (Game_Battler)
  46.   #--------------------------------------------------------------------------
  47.   def initialize(viewport, battler = nil)
  48.     super(viewport)
  49.     @battler = battler
  50.     @battler_visible = false
  51.     @effect_type = 0            # 效果种类
  52.     @effect_duration = 0        # 效果剩余时间
  53.     if @battler.is_a?(Game_Enemy)
  54.       width = 65 + 32
  55.       height = 24 + 32
  56.       x = @battler.screen_x - width/2
  57.       y = @battler.screen_y - height/2
  58.       @enemy_hp_window = Window_Base.new(x, y, width, height)
  59.       @enemy_hp_window.opacity = 0
  60.       @enemy_hp_window.contents = Bitmap.new(width - 32, height - 32)
  61.       @enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
  62.       @old_hp = -1
  63.     end
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 释放
  67.   #--------------------------------------------------------------------------
  68.   def dispose
  69.     if self.bitmap != nil
  70.       self.bitmap.dispose
  71.       @enemy_hp_window.dispose
  72.     end
  73.     super
  74.   end
  75.   #--------------------------------------------------------------------------
  76.   # ● 更新画面
  77.   #--------------------------------------------------------------------------
  78.   def update
  79.     super
  80.     if @battler == nil
  81.       self.bitmap = nil
  82.     else
  83.       @use_sprite = @battler.use_sprite?
  84.       if @use_sprite
  85.         self.x = @battler.screen_x
  86.         self.y = @battler.screen_y
  87.         self.z = @battler.screen_z
  88.         update_battler_bitmap
  89.       end
  90.       setup_new_effect
  91.       update_effect
  92.       if @enemy_hp_window != nil and @old_hp != @battler.hp
  93.         @enemy_hp_window.contents.clear
  94.         @enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
  95.         @old_hp = @battler.hp
  96.       end
  97.     end
  98.   end
  99. end
复制代码
做人不能太嚣张,菜鸟不能太狂妄!
头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2009-9-22
帖子
62
2
发表于 2009-9-27 21:02:37 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-5-31
帖子
237
3
发表于 2009-9-27 23:26:46 | 只看该作者
其实 width  在这里可以算长度
如果是指垂直边的话,
Window_Base  绘制角色体力值槽
这个 def
  1.   def draw_actor_hp_gauge(actor, x, y, width = 120,ht = 6)
  2.     gw = width * actor.hp / actor.maxhp
  3.     gc1 = hp_gauge_color1
  4.     gc2 = hp_gauge_color2
  5.     self.contents.fill_rect(x, y + WLH - 8, width, ht, gauge_back_color)
  6.     self.contents.gradient_fill_rect(x, y + WLH - 8, gw, ht, gc1, gc2)
  7.   end
复制代码
还有这句
draw_actor_hp_gauge(enemy, x, y, width, 你喜欢的高度)

这样基本行了
。。如果不是垂直边的话。。算我多事。。
未测试
如有冲突。。再找我。。
我。。不是寂寞。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2009-8-22
帖子
105
4
 楼主| 发表于 2009-9-28 12:27:43 | 只看该作者
是不是里面的
def draw_enemy_hp(enemy, x, y, width = 65)
@enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
@enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65)
都要改???
做人不能太嚣张,菜鸟不能太狂妄!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
1 小时
注册时间
2008-5-31
帖子
237
5
发表于 2009-9-28 16:30:35 | 只看该作者
如果是 所有的怪都一个“宽度”的话 就改上面 def的就行了
如果想有不同怪不同宽度的话。。
def draw_enemy_hp(enemy, x, y, width = 65,ht)
就要这样了
之后使用时 @enemy_hp_window.draw_enemy_hp(@battler, 0, 0, 65,宽度)
同理 长度也可以 随意更改。。
但是不同怪不同长度 宽度的话,就会有数据库扩充的问题,可以用备注栏和全局常量解决,个人推荐备注
我。。不是寂寞。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 02:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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