Project1

标题: VX有现敌人血槽的脚本吗? [打印本页]

作者: 小鼠标    时间: 2008-2-4 09:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小星子    时间: 2008-2-4 19:46
这个不复杂,只要我能下好并成功安装好VX.....{/ll}
作者: 小鼠标    时间: 2008-2-4 20:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小星子    时间: 2008-2-4 20:21
那就给个样式先,免得做好了又说不符合要求。
作者: 小鼠标    时间: 2008-2-4 20:27
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小星子    时间: 2008-2-4 20:34
理论上是可以的……
但现在的主要问题是我这里下了两个莫妮卡的版本都是无法运行,现在再试第三个,不过这个的下载速度真的是慢的可以,可以的话把默认的那个Script.rvdata 传一份到论坛附件,然后我就可以开工了
你最好设计一下样子,位置等等
如果只是简单的要在敌人的战斗图头顶上显示一条血的话,那么这个倒简单的很了.
作者: 趙雲    时间: 2008-2-4 20:47
  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
复制代码


很简单的血条
顺便问好SailCat大大 [LINE]1,#dddddd[/LINE]版主对此帖的认可:『热心帮助』,积分『+20』。
作者: 小鼠标    时间: 2008-2-4 21:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: 趙雲    时间: 2008-2-4 21:08
我用的是长血条,刚才改短的时候忘记改刷新部分了
现在好了,重新复制一下吧
个人观点,显示敌人MP的没有多大用处,浪费资源 {/gg}
作者: 小鼠标    时间: 2008-2-4 21:24
提示: 作者被禁止或删除 内容自动屏蔽
作者: 趙雲    时间: 2008-2-4 21:36
华丽是要以FPS为代价滴。
自己学RUBY吧,爱咋改咋改。{/wx}
作者: 小星子    时间: 2008-2-4 21:46
写了个简易抽象版的.
  1. #==============================================================================
  2. # BY 1012 脚本屋·不上网的猫
  3. #==============================================================================
  4. # ■ Sprite_Battler
  5. #------------------------------------------------------------------------------
  6. #  战斗显示用活动块。Game_Battler 类的实例监视、
  7. # 活动块的状态的监视、活动块状态自动变化。
  8. #==============================================================================

  9. class Sprite_Battler < Sprite_Base
  10.   BAR_WIDTH = 88 # 血槽宽
  11.   BAR_HEIGHT = 6  # 血槽高
  12.   COLOR1 = Color.new(255, 0, 0) # 血槽左颜色
  13.   COLOR2 = Color.new(0, 255, 0) # 血槽右颜色
  14.   #--------------------------------------------------------------------------
  15.   # ● 初始化对象
  16.   #     viewport : 视区
  17.   #     battler  : 战斗者 (Game_Battler)
  18.   #--------------------------------------------------------------------------
  19.   def initialize(viewport, battler = nil)
  20.     super(viewport)
  21.     @battler = battler
  22.     @battler_visible = false
  23.     @effect_type = 0            # 效果种类
  24.     @effect_duration = 0        # 效果剩余时间
  25.     @bar = Sprite.new(viewport)
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 释放
  29.   #--------------------------------------------------------------------------
  30.   def dispose
  31.     if self.bitmap != nil
  32.       self.bitmap.dispose
  33.     end
  34.     @bar.dispose
  35.     super
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● 更新画面
  39.   #--------------------------------------------------------------------------
  40.   def update
  41.     super
  42.     if @battler == nil
  43.     else
  44.       @use_sprite = @battler.use_sprite?
  45.       if @use_sprite
  46.         self.x = @battler.screen_x
  47.         self.y = @battler.screen_y
  48.         self.z = @battler.screen_z
  49.         update_battler_bitmap
  50.         create_bar
  51.         update_bar
  52.       end
  53.       setup_new_effect
  54.       update_effect
  55.     end
  56.   end
  57.   #--------------------------------------------------------------------------
  58.   # ● 创建血条
  59.   #--------------------------------------------------------------------------
  60.   def create_bar
  61.     @bar.ox = BAR_WIDTH / 2
  62.     @bar.oy = BAR_HEIGHT
  63.     @bar.x = self.x
  64.     @bar.y = @battler.screen_y - @height
  65.     @bar.z = self.z
  66.     @bar.bitmap = Bitmap.new(BAR_WIDTH, BAR_HEIGHT)
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 更新血槽
  70.   #--------------------------------------------------------------------------
  71.   def update_bar
  72.     width = @battler.hp * 100 * BAR_WIDTH / @battler.maxhp / 100
  73.     @bar.bitmap.gradient_fill_rect(0,0,BAR_WIDTH,BAR_HEIGHT,COLOR1,COLOR2)
  74.     @bar.bitmap.fill_rect(width,0,BAR_WIDTH - width, BAR_HEIGHT,Color.new(0,0,0))
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 更新死亡效果
  78.   #--------------------------------------------------------------------------
  79.   def update_collapse
  80.     self.blend_type = 1
  81.     self.color.set(255, 128, 128, 128)
  82.     self.opacity = 256 - (48 - @effect_duration) * 6
  83.     @bar.blend_type = 1
  84.     @bar.color.set(255, 128, 128, 128)
  85.     @bar.opacity = 256 - (48 - @effect_duration) * 6
  86.   end
  87. end
复制代码

作者: 小鼠标    时间: 2008-2-4 21:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 小星子    时间: 2008-2-5 22:12
更新了一下
作者: 思妍    时间: 2008-2-5 22:27
以下引用小鼠标于2008-2-4 13:49:22的发言:


以下引用趙雲于2008-2-4 13:36:50的发言:

华丽是要以FPS为代价滴。
自己学RUBY吧,爱咋改咋改。


= =#是啥意思? 不懂...不懂

通俗易懂的来说,就是华丽要以运行速度为代价的。
作者: 小星子    时间: 2008-2-5 22:50
也不一定就一定要损失……
作者: ask556    时间: 2008-2-9 01:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: ask556    时间: 2008-2-10 22:07
提示: 作者被禁止或删除 内容自动屏蔽




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