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

Project1

 找回密码
 注册会员
搜索

如何修改战斗显示伤害的样式

查看数: 2603 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-10-25 23:27

正文摘要:

    如图,显示伤害都是默认这个样式,我想修改比如出现和消失的方式、字体的大小、颜色等,结果没在脚本中找到描绘的地方,甚至不知道“critical”怎么描绘的。可以修改的只有“MISS”。     ...

回复

芯☆淡茹水 发表于 2013-10-25 23:27:31
伤害的定义,在 帮助 —> RGSS参考 —> RGSS内部类 —> RPG::Sprite  里面,里面包括了 白色闪烁;动画;伤害;循环动画,,,等。

本人只把伤害的定义贴出来,加以注释,希望LZ能理解并修改。
  1. module RPG
  2.   class Sprite < ::Sprite
  3.    # 伤害(伤害值,会心一击)
  4.     def damage(value, critical)
  5.       #释放伤害
  6.       dispose_damage
  7.       #如果伤害值为数值,取绝对值后转化为字符串,其它直接转化为字符串。
  8.       if value.is_a?(Numeric)
  9.         damage_string = value.abs.to_s
  10.       else
  11.         damage_string = value.to_s
  12.       end
  13.       # 描绘伤害的位图
  14.       bitmap = Bitmap.new(160, 48)
  15.       # 描绘的字体
  16.       bitmap.font.name = "Arial Black"
  17.       # 字体大小
  18.       bitmap.font.size = 32
  19.       # 颜色
  20.       bitmap.font.color.set(0, 0, 0)
  21.       # 动态伤害(上下左右闪动)
  22.       bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
  23.       bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
  24.       bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
  25.       bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
  26.       # 如果伤害值是数值并且小于 0 ,字体颜色为(绿色),其它为(白色)。
  27.       if value.is_a?(Numeric) and value < 0
  28.         bitmap.font.color.set(176, 255, 144)
  29.       else
  30.         bitmap.font.color.set(255, 255, 255)
  31.       end
  32.       # 描绘伤害值
  33.       bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
  34.       # 如果是 会心一击 ,描绘 CRITICAL 。
  35.       if critical
  36.         bitmap.font.size = 20
  37.         bitmap.font.color.set(0, 0, 0)
  38.         bitmap.draw_text(-1, -1, 160, 20, "CRITICAL", 1)
  39.         bitmap.draw_text(+1, -1, 160, 20, "CRITICAL", 1)
  40.         bitmap.draw_text(-1, +1, 160, 20, "CRITICAL", 1)
  41.         bitmap.draw_text(+1, +1, 160, 20, "CRITICAL", 1)
  42.         bitmap.font.color.set(255, 255, 255)
  43.         bitmap.draw_text(0, 0, 160, 20, "CRITICAL", 1)
  44.       end
  45.       # 显示的精灵(端口)
  46.       @_damage_sprite = ::Sprite.new(self.viewport)
  47.       # 位图
  48.       @_damage_sprite.bitmap = bitmap
  49.       # 原点
  50.       @_damage_sprite.ox = 80
  51.       @_damage_sprite.oy = 20
  52.       # 坐标
  53.       @_damage_sprite.x = self.x
  54.       @_damage_sprite.y = self.y - self.oy / 2
  55.       # Z值
  56.       @_damage_sprite.z = 3000
  57.       # 显示的持续时间(帧)
  58.       @_damage_duration = 40
  59.     end
  60.   end
  61. end
复制代码

点评

果然在内部,但是为什么他们不写在公开的脚本里呢?  发表于 2013-10-27 18:00

评分

参与人数 2星屑 +100 收起 理由
myownroc + 90 认可答案
未命名 + 10 还有注释很详细啊。

查看全部评分

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

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

GMT+8, 2025-6-28 00:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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