幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1653|回复: 3

[RMVX] 人物战斗不能后,怎样可以让战斗图不消失而是变成灰色?

[复制链接]

10

主题

128

帖子

1410

积分

⑥精研

积分
1410
发表于 2008-2-17 16:17:40 | 显示全部楼层 |阅读模式
恩......图都准备好了(一彩色一灰白),但战斗图就是没了......OTL......|||||
还有,顺便,当人物HP在30%以下时自动判断为重伤状态,战斗图自动切换为很诱人很虐的受伤表情哦哦哦~~~~(这些图我画得很快乐啊哈哈哈哈~~~~~~~)HP恢复后再换回去......
怎么做?
郁闷中……
回复

使用道具 举报

32

主题

1176

帖子

10216万

积分

⑥精研

大家都爱好少年

积分
102162186
发表于 2008-2-17 16:41:11 | 显示全部楼层
module RPG
  class Sprite < ::Sprite
    def collapse
      self.tone=Tone.new(0,0,0,255)
      self.opacity = 255
      @_collapse_duration = 0
      @_whiten_duration = 0
      @_appear_duration = 0
      @_escape_duration = 0
    end
end
end
插入MAIN前
不过这个无法判断死的是敌人还是角色
至于更改战斗图那个暂时无思路……orz……
P。S 等我今天晚上去更新KOYASA2的系统……回头帮你写……
战,然后死!
回复 支持 反对

使用道具 举报

10

主题

128

帖子

1410

积分

⑥精研

积分
1410
 楼主| 发表于 2008-2-17 17:46:35 | 显示全部楼层
夜你果然很强大......(小R思维模式:会编程的都是神!)
其实......一开始这些东西我是用事件做的......但是HP恢复后图换不过来OTL......)
郁闷中……
回复 支持 反对

使用道具 举报

32

主题

1176

帖子

10216万

积分

⑥精研

大家都爱好少年

积分
102162186
发表于 2008-2-17 18:10:17 | 显示全部楼层
比较完美地实现了第一个效果……
  1. module RPG
  2.   class Sprite < ::Sprite
  3.     def collapse_1
  4.      self.blend_type = 1
  5.       self.tone=Tone.new(0,0,0,255)
  6.       self.opacity = 255
  7.       @_collapse_duration = 0
  8.       @_whiten_duration = 0
  9.       @_appear_duration = 0
  10.       @_escape_duration = 0
  11.     end
  12.     def appear
  13.       self.blend_type = 0
  14.       self.color.set(0, 0, 0, 0)
  15.       self.opacity = 0
  16.       self.tone=Tone.new(0,0,0,0)
  17.       @_appear_duration = 16
  18.       @_whiten_duration = 0
  19.       @_escape_duration = 0
  20.       @_collapse_duration = 0
  21.     end
  22.   end
  23. end
  24. #==============================================================================
  25. # ■ Sprite_Battler
  26. #------------------------------------------------------------------------------
  27. #  战斗显示用活动块。Game_Battler 类的实例监视、
  28. # 活动块的状态的监视。
  29. #==============================================================================
  30. class Sprite_Battler < RPG::Sprite
  31.   def update
  32.     super
  33.     # 战斗者为 nil 的情况下
  34.     if @battler == nil
  35.       self.bitmap = nil
  36.       loop_animation(nil)
  37.       return
  38.     end
  39.     # 文件名和色相与当前情况有差异的情况下
  40.     if @battler.battler_name != @battler_name or
  41.        @battler.battler_hue != @battler_hue
  42.       # 获取、设置位图
  43.       @battler_name = @battler.battler_name
  44.       @battler_hue = @battler.battler_hue
  45.       self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)
  46.       @width = bitmap.width
  47.       @height = bitmap.height
  48.       self.ox = @width / 2
  49.       self.oy = @height
  50.       # 如果是战斗不能或者是隐藏状态就把透明度设置成 0
  51.       if @battler.dead? or @battler.hidden
  52.         self.opacity = 0
  53.       end
  54.     end
  55.     # 动画 ID 与当前的情况有差异的情况下
  56.     if @battler.damage == nil and
  57.        @battler.state_animation_id != @state_animation_id
  58.       @state_animation_id = @battler.state_animation_id
  59.       loop_animation($data_animations[@state_animation_id])
  60.     end
  61.     # 应该被显示的角色的情况下
  62.     if @battler.is_a?(Game_Actor) and @battler_visible
  63.       # 不是主状态的时候稍稍降低点透明度
  64.       if $game_temp.battle_main_phase
  65.         self.opacity += 3 if self.opacity < 255
  66.       else
  67.         self.opacity -= 3 if self.opacity > 207
  68.       end
  69.     end
  70.     # 明灭
  71.     if @battler.blink
  72.       blink_on
  73.     else
  74.       blink_off
  75.     end
  76.     # 不可见的情况下
  77.     unless @battler_visible
  78.       # 出现
  79.       if not @battler.hidden and not @battler.dead? and
  80.          (@battler.damage == nil or @battler.damage_pop)
  81.         appear
  82.         @battler_visible = true
  83.       end
  84.     end
  85.     # 可见的情况下
  86.     if @battler_visible
  87.       # 逃跑
  88.       if @battler.hidden
  89.         $game_system.se_play($data_system.escape_se)
  90.         escape
  91.         @battler_visible = false
  92.       end
  93.       # 白色闪烁
  94.       if @battler.white_flash
  95.         whiten
  96.         @battler.white_flash = false
  97.       end
  98.       # 动画
  99.       if @battler.animation_id != 0
  100.         animation = $data_animations[@battler.animation_id]
  101.         animation(animation, @battler.animation_hit)
  102.         @battler.animation_id = 0
  103.       end
  104.       # 伤害
  105.       if @battler.damage_pop
  106.         damage(@battler.damage, @battler.critical)
  107.         @battler.damage = nil
  108.         @battler.critical = false
  109.         @battler.damage_pop = false
  110.       end
  111.       # korapusu
  112.       if @battler.damage == nil and @battler.dead?
  113.         if @battler.is_a?(Game_Enemy)
  114.           $game_system.se_play($data_system.enemy_collapse_se)
  115.           collapse
  116.         else
  117.           $game_system.se_play($data_system.actor_collapse_se)
  118.           collapse_1
  119.           @battler_visible = false
  120.         end
  121.       end
  122.     end
  123.     # 设置活动块的坐标
  124.     self.x = @battler.screen_x
  125.     self.y = @battler.screen_y
  126.     self.z = @battler.screen_z
  127.   end
  128. end
复制代码
战,然后死!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-20 13:35 , Processed in 0.010415 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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