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

Project1

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

[已经解决] 受到伤害后出现伤害点数的脚本。如下

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2014-7-26
帖子
5
跳转到指定楼层
1
发表于 2014-7-26 17:38:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 RyanBern 于 2014-7-26 19:18 编辑

数字一直都存在


这是脚本;该如何修改
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  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. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  95. #=============================================================================
复制代码

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
2
发表于 2014-7-26 17:49:34 | 只看该作者
不明白你要改成什么效果
什么叫 伤害点数
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
3
发表于 2014-7-26 17:53:46 | 只看该作者
本帖最后由 恐惧剑刃 于 2014-7-26 19:01 编辑

显示了伤害值,伤害值却一直保留在画面上??
默认伤害在刷新的时候会自动释放,不会出现这种情况

除非你没有刷新,导致没有释放(浓雾)??

点评

我想LZ的意思应该是伤害值弹出之后在屏幕上停留一小会再消失吧?消失的时候最好是淡出效果的。LZ传的照片看不到,也不知道我猜的对不对。  发表于 2014-7-26 19:19
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2014-7-26
帖子
5
4
 楼主| 发表于 2014-7-26 17:56:25 | 只看该作者
白鬼 发表于 2014-7-26 17:49
不明白你要改成什么效果
什么叫 伤害点数

就是受到伤害以后,失去的HP值数。。。。。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2014-7-26
帖子
5
5
 楼主| 发表于 2014-7-26 17:57:38 | 只看该作者
恐惧剑刃 发表于 2014-7-26 17:53
没有释放

请问,那该加些什么。。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2014-7-26
帖子
5
6
 楼主| 发表于 2014-7-26 18:02:20 | 只看该作者
要该成,受伤害后出现的数字,再过一小段时间后会消失,就是复刻版的吞食天地那样。
回复 支持 反对

使用道具 举报

Lv2.观梦者

会吐槽的画师

梦石
0
星屑
782
在线时间
3431 小时
注册时间
2011-6-10
帖子
6535
7
发表于 2014-7-26 18:09:53 | 只看该作者
显示伤害值脚本 你没有释放
还有,请不要用这样的语气反问。
长名公主玩家群:372588926 攻略娱乐应有尽有
了解更多新RM游戏,游戏制作请加入RPGmaker支援群:113622890
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
4 小时
注册时间
2014-7-26
帖子
5
8
 楼主| 发表于 2014-7-26 19:49:54 | 只看该作者
问题已经解决,谢谢各位
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-10-1 01:26

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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