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

Project1

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

关于伤害效果美化的位置

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
95
在线时间
2 小时
注册时间
2008-5-31
帖子
63
跳转到指定楼层
1
发表于 2008-6-3 19:14:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  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)

  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.           bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),

  54.             Rect.new(number * 18, rect_y, 18, 32))

  55.           # 后移一位

  56.           damage_x += 18

  57.         end

  58.       # 伤害值不是数值的情况

  59.       else

  60.         # 如果伤害值不是 Miss

  61.         unless value == "Miss"

  62.           # 系统默认描画字符串

  63.           bitmap.font.color.set(0, 0, 0)

  64.           bitmap.draw_text(-1, 27, 162, 36, damage_string, 1)

  65.           bitmap.draw_text(+1, 27, 162, 36, damage_string, 1)

  66.           bitmap.draw_text(-1, 29, 162, 36, damage_string, 1)

  67.           bitmap.draw_text(+1, 29, 162, 36, damage_string, 1)

  68.           bitmap.font.color.set(255, 255, 255)

  69.           bitmap.draw_text(0, 28, 162, 36, damage_string, 1)

  70.         # Miss 的情况下

  71.         else

  72.           # 显示未击中图画

  73.           bitmap.blt(36, 28, RPG::Cache.picture("Damage"), Rect.new(90, 64, 90, 32))

  74.         end

  75.       end

  76.       # 会心一击标志打开的情况

  77.       if critical

  78.         # 显示会心一击图画

  79.         bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))

  80.       end

  81.       # 伤害值定位

  82.       @_damage_sprite = ::Sprite.new(self.viewport)

  83.       @_damage_sprite.bitmap = bitmap

  84.       @_damage_sprite.ox = 81

  85.       @_damage_sprite.oy = 20

  86.       @_damage_sprite.x = self.x

  87.       @_damage_sprite.y = self.y - self.oy / 2

  88.       @_damage_sprite.z = 3000

  89.       @_damage_duration = 40

  90.     end

  91.   end

  92. end

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



请问怎么调整伤害值的数字的位置`我想它显示上边一点~怎么调整呢~
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2007-8-10
帖子
170
2
发表于 2008-6-3 19:18:03 | 只看该作者
# 伤害值定位

     @_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

彩色的就是
……
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

3
发表于 2008-6-3 19:18:27 | 只看该作者
     @_damage_sprite.ox = 81

     @_damage_sprite.oy = 20

     @_damage_sprite.x = self.x

     @_damage_sprite.y = self.y - self.oy / 2

修改这些部分吧。
self.x和self.y其实就是本身的xy位置
p.s.可以修改ox和oy来实现数字变动 [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
95
在线时间
2 小时
注册时间
2008-5-31
帖子
63
4
 楼主| 发表于 2008-6-3 19:18:47 | 只看该作者
以下引用0飘絮0于2008-6-3 11:18:03的发言:

# 伤害值定位

    @_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

彩色的就是


那么是怎么修改那= =~~是输入数字么?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
95
在线时间
2 小时
注册时间
2008-5-31
帖子
63
5
 楼主| 发表于 2008-6-3 19:19:23 | 只看该作者
以下引用精灵使者于2008-6-3 11:18:27的发言:

    @_damage_sprite.ox = 81

    @_damage_sprite.oy = 20

    @_damage_sprite.x = self.x

    @_damage_sprite.y = self.y - self.oy / 2

修改这些部分吧。
self.x和self.y其实就是本身的xy位置
p.s.可以修改ox和oy来实现数字变动


    @_damage_sprite.ox = 81

    @_damage_sprite.oy = 20

这里我修改了~没效果
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

6
发表于 2008-6-3 19:20:24 | 只看该作者
那里你可以加减需要的数字来调整位置,那个其实就是坐标
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1707
在线时间
3039 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

7
发表于 2008-6-3 22:23:36 | 只看该作者
那你就修改下边的部分,下边的那个通过加减需要的数字来修改坐标。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-8-3 03:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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