Project1
标题:
受到伤害后出现伤害点数的脚本。如下
[打印本页]
作者:
Lunk@
时间:
2014-7-26 17:38
标题:
受到伤害后出现伤害点数的脚本。如下
本帖最后由 RyanBern 于 2014-7-26 19:18 编辑
数字一直都存在
这是脚本;该如何修改
#==============================================================================
# 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
#==============================================================================
# ============================================================================
# 伤害效果美化 v1.0 by SailCat
# ============================================================================
# 脚本使用说明:
# 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下
# 2.Damage.png文件的格式:
# 大小为180 x 96
# (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32
# (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32
# (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32
# (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32
# ============================================================================
module RPG
class Sprite < ::Sprite
#--------------------------------------------------------------------------
# ● 伤害值描画
#--------------------------------------------------------------------------
def damage(value, critical)
# 释放伤害
dispose_damage
# 如果伤害值是数值
if value.is_a?(Numeric)
# 绝对值转为字符串
damage_string = value.abs.to_s
else
# 转为字符串
damage_string = value.to_s
end
# 初始化位图
bitmap = Bitmap.new(162, 64)
bitmap.font.name = "Arial Black"
bitmap.font.size = 32
# 伤害值是数值的情况下
if value.is_a?(Numeric)
# 分割伤害值字符串
damage_array = damage_string.scan(/./)
damage_x = 81 - damage_string.size * 9
# 伤害值为负的情况下
if value < 0
# 调用回复数字表
rect_y = 32
else
# 调用伤害数字表
rect_y = 0
end
# 循环伤害值字符串
for char in damage_array
number = char.to_i
# 显示伤害数字
bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),
Rect.new(number * 18, rect_y, 18, 32))
# 后移一位
damage_x += 18
end
# 伤害值不是数值的情况
else
# 如果伤害值不是 Miss
unless value == "Miss"
# 系统默认描画字符串
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
# Miss 的情况下
else
# 显示未击中图画
bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))
end
end
# 会心一击标志打开的情况
if critical
# 显示会心一击图画
bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))
end
# 伤害值定位
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 81
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2
@_damage_sprite.z = 3000
@_damage_duration = 40
end
end
end
#==============================================================================
# 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
#=============================================================================
复制代码
作者:
白鬼
时间:
2014-7-26 17:49
不明白你要改成什么效果
什么叫 伤害点数
作者:
恐惧剑刃
时间:
2014-7-26 17:53
本帖最后由 恐惧剑刃 于 2014-7-26 19:01 编辑
显示了伤害值,伤害值却一直保留在画面上??
默认伤害在刷新的时候会自动释放,不会出现这种情况
除非你没有刷新,导致没有释放(浓雾)??
作者:
Lunk@
时间:
2014-7-26 17:56
白鬼 发表于 2014-7-26 17:49
不明白你要改成什么效果
什么叫 伤害点数
就是受到伤害以后,失去的HP值数。。。。。。。。
作者:
Lunk@
时间:
2014-7-26 17:57
恐惧剑刃 发表于 2014-7-26 17:53
没有释放
请问,那该加些什么。。。。。
作者:
Lunk@
时间:
2014-7-26 18:02
要该成,受伤害后出现的数字,再过一小段时间后会消失,就是复刻版的吞食天地那样。
作者:
上贺茂润
时间:
2014-7-26 18:09
显示伤害值脚本 你没有释放
还有,请不要用这样的语气反问。
作者:
Lunk@
时间:
2014-7-26 19:49
问题已经解决,谢谢各位
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1