Project1

标题: 在RM VX中,怎么在战斗中显示敌人的血条 [打印本页]

作者: a8236036    时间: 2008-7-8 18:03
标题: 在RM VX中,怎么在战斗中显示敌人的血条


跟这个游戏一样
如果看不到图请到http://hiphotos.baidu.com/srenrangel/pic/item/dad524518f871a3242a75bc3.jpg

谢谢大家帮忙... [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: 风林火山    时间: 2008-7-8 18:16
以下引用a8236036于2008-7-8 10:03:40的发言:


本贴悬赏额度如下:VIP:0   积分:100   


跟这个游戏一样
如果看不到图请到http://hiphotos.baidu.com/srenrangel/pic/item/dad524518f871a3242a75bc3.jpg

谢谢大家帮忙...



图片挂了……


作者: a8236036    时间: 2008-7-8 18:18
-o-看得到啊
作者: 淘金鸭    时间: 2008-7-8 18:21
http://rpg.blue/web/htm/news756.htm
这里好像教了,不过下不了

作者: 风林火山    时间: 2008-7-8 18:22
以下引用淘金鸭于2008-7-8 10:21:58的发言:

http://rpg.blue/web/htm/news756.htm
这里好像教了,不过下不了


最近FTP停用了。
作者: 火鸡三毛老大    时间: 2008-7-8 18:37
敌人血条:
http://rpg.blue/viewthread.php?tid=89746

可能会和某个脚本冲突
作者: a8236036    时间: 2008-7-8 18:41
我用的是
以下引用淘金鸭于2008-7-8 10:21:58的发言:

http://rpg.blue/web/htm/news756.htm
这里好像教了,不过下不了



可以下,不过很慢.

作者: a8236036    时间: 2008-7-8 18:44
以下引用火鸡三毛老大于2008-7-8 10:37:18的发言:

敌人血条:
http://rpg.blue/viewthread.php?tid=89746

可能会和某个脚本冲突


= =!!!

这个不是显示敌人的雪条,而是在右上方加个属性框显示自己的血量

http://hiphotos.baidu.com/srenrangel/pic/item/0c3267c4237794dd38db4944.jpg

作者: a8236036    时间: 2008-7-8 19:09
请求救援_(_ _)_
作者: 火鸡三毛老大    时间: 2008-7-8 19:14
  1. class Spriteset_Battle
  2.   #--------------------------------------------------------------------------
  3.   # ● 生成敌人活动块
  4.   #--------------------------------------------------------------------------
  5.   def create_enemies
  6.     @enemy_sprites = []
  7.     @enemy_hpbar_sprites = []
  8.     for enemy in $game_troop.members.reverse
  9.       @enemy_sprites.push(Sprite_Battler.new(@viewport1, enemy))
  10.       @enemy_hpbar_sprites.push(Sprite_Hpbar.new(@viewport1, enemy))
  11.     end
  12.   end

  13.   #--------------------------------------------------------------------------
  14.   # ● 刷新敌人活动块
  15.   #--------------------------------------------------------------------------
  16.   def update_enemies
  17.     for sprite in @enemy_sprites + @enemy_hpbar_sprites
  18.       sprite.update
  19.     end
  20.   end
  21.   
  22.   #--------------------------------------------------------------------------
  23.   # ● 释放敌人活动块
  24.   #--------------------------------------------------------------------------
  25.   def dispose_enemies
  26.     for sprite in @enemy_sprites + @enemy_hpbar_sprites
  27.       sprite.dispose
  28.     end
  29.   end
  30.   
  31.   
  32. end
  33. #==============================================================================
  34. # ■ Sprite_Sprite_Hpbar
  35. #------------------------------------------------------------------------------
  36. #  血条显示
  37. #==============================================================================

  38. class Sprite_Hpbar < Sprite_Base
  39.   #--------------------------------------------------------------------------
  40.   # ● 定量
  41.   #--------------------------------------------------------------------------
  42.   #--------------------------------------------------------------------------
  43.   # ● 定义实例变量
  44.   #--------------------------------------------------------------------------
  45.   attr_accessor :battler
  46.   #--------------------------------------------------------------------------
  47.   # ● 初始化对像
  48.   #     viewport : 视口
  49.   #     battler  : 战斗者 (Game_Battler)
  50.   #--------------------------------------------------------------------------
  51.   def initialize(viewport, battler = nil)
  52.     super(viewport)
  53.     @battler = battler
  54.     @name = @battler.name
  55.     @hp = @battler.hp
  56.     self.bitmap = Bitmap.new(100,50)
  57.   #  self.bitmap.fill_rect(0,0,100,50,Color.new(255,0,0,255))
  58.     self.bitmap.draw_text(0,10,100,20,@battler.name ,1)
  59.     draw_actor_hp_gauge(@battler, 0, 15, 50)
  60.    
  61.     self.x = @battler.screen_x - 30
  62.     self.y = @battler.screen_y - self.bitmap.height / 2
  63.   #  self.ox = self.bitmap.width
  64.   #  self.oy = self.bitmap.height
  65.     self.z = @battler.screen_z + 5
  66.   end

  67.   #--------------------------------------------------------------------------
  68.   # ● 获取文字色
  69.   #     n : 文字色编号 (0~31)
  70.   #--------------------------------------------------------------------------  
  71.   def text_color(n)
  72.     windowskin = Cache.system("Window")
  73.     x = 64 + (n % 8) * 8
  74.     y = 96 + (n / 8) * 8
  75.     return windowskin.get_pixel(x, y)
  76.   end
  77.   
  78.   #--------------------------------------------------------------------------
  79.   # ● HP矩形的描画
  80.   #     actor : 角色
  81.   #     x     : 描画目标 X 坐标
  82.   #     y     : 描画目标 Y 坐标
  83.   #     width : 宽
  84.   #--------------------------------------------------------------------------  
  85.   def draw_actor_hp_gauge(actor, x, y, width = 120)
  86.     gw = width * @hp / actor.maxhp
  87.     gc1 = text_color(28)
  88.     gc2 = text_color(24)
  89.     self.bitmap.fill_rect(x, y + 24 - 8, width, 6, text_color(19))
  90.     self.bitmap.gradient_fill_rect(x, y + 24 - 8, gw, 6, gc1, gc2)
  91.   end
  92.   
  93.   
  94.   
  95.   #--------------------------------------------------------------------------
  96.   # ● 释放
  97.   #--------------------------------------------------------------------------
  98.   def dispose
  99.     if self.bitmap != nil
  100.       self.bitmap.dispose
  101.     end
  102.     super
  103.   end
  104.   #--------------------------------------------------------------------------
  105.   # ● 刷新画面
  106.   #--------------------------------------------------------------------------
  107.   def update
  108.     super
  109.     if @battler == nil
  110.       self.bitmap = nil
  111.     else
  112.       update_battler_bitmap
  113.     end
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 刷新传送的位图数据
  117.   #--------------------------------------------------------------------------
  118.   def update_battler_bitmap
  119.     if @battler.dead? or @battler.hidden
  120.        self.opacity = 0
  121.      end
  122.     if [email protected]? and [email protected] and self.opacity == 0
  123.        self.opacity = 255
  124.     end  
  125.      
  126.     if @hp != @battler.hp or @name != @battler.name
  127.        @name = @battler.name
  128.        @hp = @battler.hp
  129.        self.bitmap.clear
  130.        self.bitmap.draw_text(0,10,100,20,@battler.name ,1)
  131.        draw_actor_hp_gauge(@battler, 0, 15, 50)
  132.     end
  133.   end
  134. end
复制代码

这个~~~
可以了吧 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: a8236036    时间: 2008-7-8 19:28
可以了 谢谢 火鸡三毛老大

谢谢大家^_^




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