设为首页收藏本站

仙剑之十里坡

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 3079|回复: 0
打印 上一主题 下一主题

伤害美化~使用方法不解释

[复制链接]

1013

主题

5

听众

2万

积分

返璞归真

不器用な星の瞬き

会员等级: 10

  • TA的每日心情
    擦汗
    昨天 20:16
  • 签到天数: 1406 天

    [LV.10]以坛为家III

    精华
    2
    积分
    23743
    历练
    3
    声望
    133
    人气
    2619

    转帖之王 金融巨子 黑色羽翼

    单身中……
    帮我摆脱单身吧
    跳转到指定楼层
    1
    发表于 2010-3-27 18:39:29 |只看该作者 |倒序浏览
    本帖最后由 白爪子的黑猫 于 2010-3-26 22:40 编辑
    1. #==============================================================================
    2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
    3. #==============================================================================


    4. # ============================================================================
    5. # 伤害效果美化 v1.0 by SailCat
    6. # ============================================================================

    7. # 脚本使用说明:

    8. # 1.使用时需要将Damage.png复制到你的游戏的Graphics/Pictures目录下

    9. # 2.Damage.png文件的格式:

    10. #   大小为180 x 96

    11. #   (0, 0) - (179, 31)为伤害值的数字表,其中每个数字宽18,高32

    12. #   (0, 32) - (179, 63)为回复值(伤害负值)的数字表,其中每个数字宽18,高32

    13. #   (0, 64) - (89, 95)为会心一击标记的图画,长宽为90 x 32

    14. #   (90, 64) - (179, 95)为未命中标记的图画,长宽为90 x 32

    15. # ============================================================================

    16. module RPG

    17.   class Sprite < ::Sprite
    18.     #--------------------------------------------------------------------------
    19.     # ● 伤害值描画
    20.     #--------------------------------------------------------------------------
    21.     def damage(value, critical, sp_damage = false)

    22.      # 释放伤害
    23.       dispose_damage
    24.       # 如果伤害值是数值
    25.       if value.is_a?(Numeric)
    26.         # 绝对值转为字符串
    27.         damage_string = value.abs.to_s
    28.       else
    29.         # 转为字符串
    30.         damage_string = value.to_s
    31.       end
    32.       # 初始化位图
    33.       bitmap = Bitmap.new(162, 64)
    34.       bitmap.font.name = "Arial Black"
    35.       bitmap.font.size = 32
    36.       # 伤害值是数值的情况下
    37.       if value.is_a?(Numeric)
    38.         # 分割伤害值字符串
    39.         damage_array = damage_string.scan(/./)
    40.         damage_x = 81 - damage_string.size * 9
    41.         # 伤害值为负的情况下
    42.         if value < 0
    43.           # 调用回复数字表
    44.           rect_y = 32
    45.         else
    46.           # 调用伤害数字表
    47.           rect_y = 0
    48.         end
    49.         # 循环伤害值字符串

    50.        for char in damage_array
    51.          number = char.to_i
    52.           # 显示伤害数字
    53.        if sp_damage
    54.          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damagesp"),
    55.          Rect.new(number * 18, rect_y, 18, 32))
    56.          damage_x += 18
    57.       else
    58.          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),
    59.          Rect.new(number * 18, rect_y, 18, 32))
    60.          damage_x += 18
    61.       end
    62. end
    63.       # 伤害值不是数值的情况
    64.       else
    65.         # 如果伤害值不是 Miss
    66.         unless value == "Miss"
    67.           # 系统默认描画字符串
    68.           bitmap.font.color.set(0, 0, 0)
    69.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)
    70.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)
    71.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)
    72.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)
    73.           bitmap.font.color.set(255, 255, 255)
    74.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)
    75.         # Miss 的情况下
    76.         else
    77.           # 显示未击中图画
    78.           bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))
    79.         end
    80.       end
    81.       # 会心一击标志打开的情况
    82.       if critical
    83.         # 显示会心一击图画
    84.         bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))
    85.       end
    86.       # 伤害值定位
    87.       @_damage_sprite = ::Sprite.new(self.viewport)
    88.       @_damage_sprite.bitmap = bitmap
    89.       @_damage_sprite.ox = 81
    90.       @_damage_sprite.oy = 20
    91.       @_damage_sprite.x = self.x
    92.       @_damage_sprite.y = self.y - self.oy / 2
    93.       @_damage_sprite.z = 3000
    94.       @_damage_duration = 40
    95.     end
    96.   end
    97. end

    98. #==============================================================================
    99. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
    100. #==============================================================================
    复制代码

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?加入我们

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    转播转播0 分享淘帖0 分享分享0 收藏收藏0
    夜空の星に 捧げた願いの
    欠片積めて 爆誕する奇跡
    您需要登录后才可以回帖 登录 | 加入我们

    手机版|Archiver|仙剑之十里坡 ( 苏ICP备11022766号 )  

    GMT+8, 2024-11-22 05:50 , Processed in 0.670140 second(s), 33 queries .

    Powered by Discuz! X2.5

    © 2001-2012 Comsenz Inc.

    回顶部