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

Project1

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

[已经解决] 敌人血条位置的问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
跳转到指定楼层
1
发表于 2020-4-17 21:35:48 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
问下,如何把这个脚本的血条位置移动到怪物左边,上面再加个怪物名字,MP显示去掉,就是图片1的显示,变成图片2那样的,知道的指点下,谢谢

RUBY 代码复制
  1. #==============================================================================
  2. # 功能:战斗中显示敌人血和蓝于敌人脚下
  3. # 适用:RMVX Ace
  4. # 作者:殇殃 2012.3.10
  5. # 使用方法:复制整个脚本插入到Main之前
  6. # 注意:由于血条是显示在敌人脚下,所以敌群的位置不能太靠底部,不然会被挡住。
  7. #       可以自行更改坐标修改显示位置、血条的颜色等。
  8. #==============================================================================
  9. # ■ Window_Base
  10. #------------------------------------------------------------------------------
  11. #  游戏中全部窗口的超级类。
  12. #==============================================================================
  13.  
  14. class Window_Base < Window
  15.   #--------------------------------------------------------------------------
  16.   # ● 描绘敌人HP
  17.   #--------------------------------------------------------------------------
  18.   def draw_enemy_hp(enemy, x, y, width = 80)
  19.     draw_gauge(x, y, width, enemy.hp_rate, hp_gauge_color1, hp_gauge_color2)
  20.     self.contents.font.color = system_color
  21.     self.contents.draw_text(x, y, 30, line_height, Vocab::hp_a)
  22.     self.contents.font.color = hp_color(enemy)
  23.     self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.hp, 2)
  24.     #一个数字占16像素
  25.   end
  26.   #--------------------------------------------------------------------------
  27.   # ● 绘制敌人MP
  28.   #--------------------------------------------------------------------------
  29.   def draw_enemy_mp(enemy, x, y, width = 80)
  30.     draw_gauge(x, y, width, enemy.mp_rate, mp_gauge_color1, mp_gauge_color2)
  31.     self.contents.font.color = system_color
  32.     self.contents.draw_text(x, y, 30, line_height, Vocab::mp_a)
  33.     self.contents.font.color = mp_color(enemy)
  34.     self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.mp, 2)
  35.   end
  36. end
  37. #==============================================================================
  38. # ■ Sprite_Battler
  39. #------------------------------------------------------------------------------
  40. #  战斗显示用活动块。Game_Battler 类的实例监视、
  41. # 活动块的状态的监视、活动块状态自动变化。
  42. #==============================================================================
  43.  
  44. class Sprite_Battler < Sprite_Base
  45.   #--------------------------------------------------------------------------
  46.   # ● 初始化对象
  47.   #     viewport : 视区
  48.   #     battler  : 战斗者 (Game_Battler)
  49.   #--------------------------------------------------------------------------
  50.   def initialize(viewport, battler = nil)
  51.     super(viewport)
  52.     @battler = battler
  53.     @battler_visible = false
  54.     @effect_type = nil      
  55.     @effect_duration = 0   
  56.     if @battler.is_a?(Game_Enemy)
  57.       width = 24 + 80 #边距12*2+血条的长度(在draw_enemy_hp中定义)
  58.       height = 24 + 24*2 #边距12*2+line_height*2
  59.       x = @battler.screen_x - width/2 #screen_x是怪物图片水平方向上的中点位置
  60.       y = @battler.screen_y - 12 #边距12,显示HP/MP的窗口无边框
  61.       @enemy_hpmp_window = Window_Base.new(x, y, width, height)
  62.       @enemy_hpmp_window.opacity = 0
  63.       @enemy_hpmp_window.contents = Bitmap.new(width - 24, height - 24)#位图比窗口小24像素取消边框
  64.       @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 0)
  65.       @old_hp = -1
  66.       @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 24)
  67.       @old_mp = -1
  68.     end
  69.   end
  70.   #--------------------------------------------------------------------------
  71.   # ● 释放
  72.   #--------------------------------------------------------------------------
  73.   def dispose
  74.     if self.bitmap != nil
  75.       self.bitmap.dispose
  76.       @enemy_hpmp_window.dispose
  77.     end
  78.     super
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 更新画面
  82.   #--------------------------------------------------------------------------
  83.   def update
  84.     super
  85.     if @battler == nil
  86.       self.bitmap = nil
  87.     else
  88.       @use_sprite = @battler.use_sprite?
  89.       if @use_sprite
  90.         update_bitmap
  91.         update_origin
  92.         update_position
  93.       end
  94.       setup_new_effect
  95.       setup_new_animation
  96.       update_effect
  97.       if @enemy_hpmp_window != nil and (@old_hp != @battler.hp or @old_mp != @battler.mp)
  98.         if @battler.hp == 0
  99.           @enemy_hpmp_window.hide
  100.         else
  101.           @enemy_hpmp_window.contents.clear
  102.           @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 0)
  103.           @old_hp = @battler.hp
  104.           @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 24)
  105.           @old_mp = @battler.mp
  106.           @enemy_hpmp_window.show #怪物死后再被复活
  107.         end #if battler.hp == 0
  108.       end
  109.     end #if @battler == nil
  110.   end
  111.  
  112. end

55555555.png (306.4 KB, 下载次数: 32)

55555555.png

6666666.jpg (55.19 KB, 下载次数: 28)

6666666.jpg

Lv4.逐梦者

梦石
2
星屑
6682
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

6
发表于 2020-4-17 22:56:09 | 只看该作者
  1. #==============================================================================
  2. # 功能:战斗中显示敌人血和蓝于敌人脚下
  3. # 适用:RMVX Ace
  4. # 作者:殇殃 2012.3.10
  5. # 使用方法:复制整个脚本插入到Main之前
  6. # 注意:由于血条是显示在敌人脚下,所以敌群的位置不能太靠底部,不然会被挡住。
  7. #       可以自行更改坐标修改显示位置、血条的颜色等。
  8. #==============================================================================
  9. # ■ Window_Base
  10. #------------------------------------------------------------------------------
  11. #  游戏中全部窗口的超级类。
  12. #==============================================================================

  13. class Window_Base < Window
  14.   #--------------------------------------------------------------------------
  15.   # ● 描绘敌人HP
  16.   #--------------------------------------------------------------------------
  17.   def draw_enemy_hp(enemy, x, y, width = 80)
  18.     draw_gauge(x, y, width, enemy.hp_rate, hp_gauge_color1, hp_gauge_color2)
  19.     self.contents.font.color = system_color
  20.     self.contents.draw_text(x, y, 30, line_height, Vocab::hp_a)
  21.     self.contents.font.color = hp_color(enemy)
  22.     self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.hp, 2)
  23.     #一个数字占16像素
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 绘制敌人MP
  27.   #--------------------------------------------------------------------------
  28.   def draw_enemy_mp(enemy, x, y, width = 80)
  29.     draw_gauge(x, y, width, enemy.mp_rate, mp_gauge_color1, mp_gauge_color2)
  30.     self.contents.font.color = system_color
  31.     self.contents.draw_text(x, y, 30, line_height, Vocab::mp_a)
  32.     self.contents.font.color = mp_color(enemy)
  33.     self.contents.draw_text(x + width - 64, y, 64, line_height, enemy.mp, 2)
  34.   end
  35. end
  36. #==============================================================================
  37. # ■ Sprite_Battler
  38. #------------------------------------------------------------------------------
  39. #  战斗显示用活动块。Game_Battler 类的实例监视、
  40. # 活动块的状态的监视、活动块状态自动变化。
  41. #==============================================================================

  42. class Sprite_Battler < Sprite_Base
  43.   #--------------------------------------------------------------------------
  44.   # ● 初始化对象
  45.   #     viewport : 视区
  46.   #     battler  : 战斗者 (Game_Battler)
  47.   #--------------------------------------------------------------------------
  48.   def initialize(viewport, battler = nil)
  49.     super(viewport)
  50.     @battler = battler
  51.     @battler_visible = false
  52.     @effect_type = nil      
  53.     @effect_duration = 0   
  54.     if @battler.is_a?(Game_Enemy)
  55.       width = 24 + 80
  56.       height = 24 + 24 * 3
  57.       x = @battler.screen_x - 12 - width * 3 / 2
  58.       y = @battler.screen_y - 12 - height / 2
  59.       @enemy_hpmp_window = Window_Base.new(x, y, width, height)
  60.       @enemy_hpmp_window.opacity = 0
  61.       @enemy_hpmp_window.contents = Bitmap.new(width - 24, height - 24)
  62.       @enemy_hpmp_window.draw_text_ex(0, 0, @battler.name)
  63.       @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 24)
  64.       @old_hp = -1
  65.       @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 48)
  66.       @old_mp = -1
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 释放
  71.   #--------------------------------------------------------------------------
  72.   def dispose
  73.     if self.bitmap != nil
  74.       self.bitmap.dispose
  75.       @enemy_hpmp_window.dispose
  76.     end
  77.     super
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 更新画面
  81.   #--------------------------------------------------------------------------
  82.   def update
  83.     super
  84.     if @battler == nil
  85.       self.bitmap = nil
  86.     else
  87.       @use_sprite = @battler.use_sprite?
  88.       if @use_sprite
  89.         update_bitmap
  90.         update_origin
  91.         update_position
  92.       end
  93.       setup_new_effect
  94.       setup_new_animation
  95.       update_effect
  96.       if @enemy_hpmp_window != nil and (@old_hp != @battler.hp or @old_mp != @battler.mp)
  97.         if @battler.hp == 0
  98.           @enemy_hpmp_window.hide
  99.         else
  100.           @enemy_hpmp_window.contents.clear
  101.           @enemy_hpmp_window.draw_text_ex(0, 0, @battler.name)
  102.           @enemy_hpmp_window.draw_enemy_hp(@battler, 0, 24)
  103.           @old_hp = @battler.hp
  104.           @enemy_hpmp_window.draw_enemy_mp(@battler, 0, 48)
  105.           @old_mp = @battler.mp
  106.           @enemy_hpmp_window.show #怪物死后再被复活
  107.         end #if battler.hp == 0
  108.       end
  109.     end #if @battler == nil
  110.   end

  111. end
复制代码

点评

fjm
非常感谢,可以用了  发表于 2020-4-17 23:02

评分

参与人数 2+2 收起 理由
PLeaseS + 1 塞糖
fjm + 1 认可答案

查看全部评分

祝好。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
5
发表于 2020-4-17 22:43:48 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2180
在线时间
1011 小时
注册时间
2015-10-17
帖子
1285
4
 楼主| 发表于 2020-4-17 22:29:32 | 只看该作者
嗯,这个脚本,添个怪物名字在上面,这个就不会了
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
3
发表于 2020-4-17 22:23:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1899
在线时间
222 小时
注册时间
2018-8-5
帖子
106
2
发表于 2020-4-17 22:08:00 | 只看该作者
显示血条和名字的脚本很多,一搜一大片吧
一点一点加油
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:35

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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