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

Project1

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

[已经解决] ace sideview怎么设置伤害的消失时间

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
68 小时
注册时间
2011-11-12
帖子
92
跳转到指定楼层
1
发表于 2017-4-30 16:59:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
伤害消失的太慢了,能设置消失时间快一些吗?
我在脚本里找了好久也没找到额
搜的是DAMAGE_POP
已经在做游戏了~~~愉悦的做游戏体验

Lv1.梦旅人

梦石
0
星屑
50
在线时间
68 小时
注册时间
2011-11-12
帖子
92
2
 楼主| 发表于 2017-4-30 17:01:30 | 只看该作者
  #--------------------------------------------------------------------------
  # ● 伤害表示
  #--------------------------------------------------------------------------
  def hit_count
    for i in [email protected]
      if @battler.sv.hit == nil
        @hit = i
        return @battler.sv.hit = @hit
      end
    end
    @hit = @battler.sv.hit.size
    @battler.sv.hit.push(@hit)
  end  
  #--------------------------------------------------------------------------
  # ● 伤害表示
  #--------------------------------------------------------------------------
  def set_damage
    return @action_end = true if !N03::DAMAGE_POP
    damage = @battler.result.hp_damage if @battler.result.hp_damage != 0
    damage = @battler.result.hp_drain  if @battler.result.hp_drain  != 0
    damage = @battler.result.mp_damage if @battler.result.mp_damage != 0
    damage = @battler.result.mp_drain  if @battler.result.mp_drain  != 0
    damage = @battler.result.tp_damage if @battler.result.tp_damage != 0
    if !damage or damage == 0
      @action_end = true if @st == nil
      return # ステートだけPOPする設定を考慮して@action_endは返さない
    end
    hit_count
    #@hit = @battler.sv.hit
    #@battler.sv.hit += 1 if damage != 0
    file = N03::DAMAGE_PLUS if damage > 0
    file = N03::DAMAGE_MINUS if damage < 0
    add_file = N03::DAMAGE_MP if @battler.result.mp_damage != 0
    add_file = N03::DAMAGE_TP if @battler.result.tp_damage != 0
    adjust_x = N03::DAMAGE_ADJUST
    @num = []
    @num_base = []
    damage = damage.abs
    max_num = damage.to_s.size
    max_num += 1 if add_file != nil
    for i in 0...max_num
      @num = Sprite.new
      if add_file != nil && i == max_num - 1
        @num.bitmap = Cache.system(add_file)
        cw = (damage % (10 * 10 ** i))/(10 ** i)
        sw = 0 if sw == nil
      else
        @num.bitmap = Cache.system(file)
        cw = (damage % (10 * 10 ** i))/(10 ** i)
        sw = @num.bitmap.width / 10
        @num.src_rect.set(cw * sw, 0, sw, @num.bitmap.height)
      end
      @num_base = []
      @num_base[0] = (sw + adjust_x) * i * -1 + (@battler.sv.x / 100)
      @num_base[1] =  -(@num.bitmap.height / 3) - i * 2 - @hit * 2 + (@battler.sv.y - @battler.sv.h - @battler.sv.j - @battler.sv.oy_adjust)/ 100
      @num_base[0] -= @num.bitmap.width / 2 - adjust_x if add_file != nil && i == max_num - 1
      @num.z = 1000 + i + @hit * 10
    end
    @Time = @pop_time = 80
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    return if @time == 0
    for i in [email protected] do update_state_move(@st, i) end if @st != nil
    for i in [email protected] do update_num_move(@num, i) end if @num != nil
    @time -= 1
    @action_end = true if @time == 0
  end
  #--------------------------------------------------------------------------
  # ● ステート画像の更新
  #--------------------------------------------------------------------------
  def update_state_move(state, index)
    min = @pop_time - index * 2
    case @time
    when min-15..min
      @st_base[index][0] += @direction
      state.opacity += 25
    when min-80..min-50
      @st_base[index][0] += @direction
      state.opacity -= 25
    end
    state.x = (@st_base[index][0] - $sv_camera.x) * $sv_camera.zoom
    state.y = (@st_base[index][1] - $sv_camera.y) * $sv_camera.zoom
  end
  #--------------------------------------------------------------------------
  # ● 数値の更新
  #--------------------------------------------------------------------------
  def update_num_move(num, index)
    min = @pop_time - index * 2
    case @time
    when min-1..min
      @num_base[index][0] += @direction * @hit
      @num_base[index][1] -= 5 + @hit * 2
    when min-3..min-2
      @num_base[index][0] += @direction * @hit
      @num_base[index][1] -= 4 + @hit * 2
    when min-6..min-4
      @num_base[index][0] += @direction
      @num_base[index][1] -= 3 + @hit * 2
    when min-14..min-7
      @num_base[index][0] += @direction
      @num_base[index][1] += 2
    when min-17..min-15
      @num_base[index][1] -= 2 + @hit * 2
    when min-23..min-18
      @num_base[index][1] += 1
    when min-27..min-24
      @num_base[index][1] -= 1
    when min-30..min-28
      @num_base[index][1] += 1
    when min-33..min-31
      @num_base[index][1] -= 1
    when min-36..min-34
      @num_base[index][1] += 1
    end
    num.x = (@num_base[index][0] - $sv_camera.x) * $sv_camera.zoom
    num.y = (@num_base[index][1] - $sv_camera.y) * $sv_camera.zoom
    num.opacity = 256 - (12 - @time) * 32
    num.visible = false if @time == 0
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  def dispose
    @battler.sv.hit[@hit] = nil if @hit
    bitmap.dispose if bitmap
    for i in [email protected] do @num.dispose end if @num != nil
    for i in [email protected] do @st.dispose end if @st != nil
    super
  end
end
已经在做游戏了~~~愉悦的做游戏体验
回复 支持 反对

使用道具 举报

Lv6.析梦学徒

老鹰

梦石
40
星屑
34725
在线时间
6740 小时
注册时间
2012-5-26
帖子
3259

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

3
发表于 2017-4-30 17:31:46 | 只看该作者
num.opacity = 256 - (12 - @time) * 32 这一行
其中@Time 是经过的时间帧计数(减法计数,逐渐减小至零结束)
计算出来的结果就是图片的透明度
当前是@time每帧减一,当@time小于12时,开始逐渐渐隐,每帧减少32透明度
你可以把32改大,这样原本当@time减到4时消失,就会变成减到比4大的数字就消失

评分

参与人数 1梦石 +1 收起 理由
RaidenInfinity + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
68 小时
注册时间
2011-11-12
帖子
92
4
 楼主| 发表于 2017-5-1 18:55:54 | 只看该作者
百里_飞柳 发表于 2017-4-30 17:31
num.opacity = 256 - (12 - @time) * 32 这一行
其中@Time 是经过的时间帧计数(减法计数,逐渐减小至零结 ...

好的好的,十分感谢!!!!!
已经在做游戏了~~~愉悦的做游戏体验
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 10:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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