赞 | 673 |
VIP | 62 |
好人卡 | 144 |
积分 | 335 |
经验 | 110435 |
最后登录 | 2024-11-1 |
在线时间 | 5108 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 33518
- 在线时间
- 5108 小时
- 注册时间
- 2012-11-19
- 帖子
- 4878
|
发表于 2013-10-25 23:27:31
|
显示全部楼层
伤害的定义,在 帮助 —> RGSS参考 —> RGSS内部类 —> RPG::Sprite 里面,里面包括了 白色闪烁;动画;伤害;循环动画,,,等。
本人只把伤害的定义贴出来,加以注释,希望LZ能理解并修改。- 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(160, 48)
- # 描绘的字体
- bitmap.font.name = "Arial Black"
- # 字体大小
- bitmap.font.size = 32
- # 颜色
- bitmap.font.color.set(0, 0, 0)
- # 动态伤害(上下左右闪动)
- bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
- bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
- bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
- bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
- # 如果伤害值是数值并且小于 0 ,字体颜色为(绿色),其它为(白色)。
- if value.is_a?(Numeric) and value < 0
- bitmap.font.color.set(176, 255, 144)
- else
- bitmap.font.color.set(255, 255, 255)
- end
- # 描绘伤害值
- bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
- # 如果是 会心一击 ,描绘 CRITICAL 。
- if critical
- bitmap.font.size = 20
- bitmap.font.color.set(0, 0, 0)
- bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
- bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
- bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
- bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
- bitmap.font.color.set(255, 255, 255)
- bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
- end
- # 显示的精灵(端口)
- @_damage_sprite = ::Sprite.new(self.viewport)
- # 位图
- @_damage_sprite.bitmap = bitmap
- # 原点
- @_damage_sprite.ox = 80
- @_damage_sprite.oy = 20
- # 坐标
- @_damage_sprite.x = self.x
- @_damage_sprite.y = self.y - self.oy / 2
- # Z值
- @_damage_sprite.z = 3000
- # 显示的持续时间(帧)
- @_damage_duration = 40
- end
- end
- end
复制代码 |
评分
-
查看全部评分
|