Project1

标题: "彩虹神剑"延长伤害显示时间 [打印本页]

作者: 薄荷冰水    时间: 2010-8-23 17:23
标题: "彩虹神剑"延长伤害显示时间
抱歉,又再次来打扰了...

我用的彩虹神剑是这里的版本
http://rpg.blue/forum.php?mod=viewthread&tid=27095&highlight=%E5%BD%A9%E8%99%B9%E7%A5%9E%E5%89%91
我只找到了这个
def damage(value, critical)

      # 释放伤害,效果是伤害数字快速消失,觉得不如不消失好看......

      #dispose_damage

如果把#去掉,我想要的这部分效果就迅速消失,
如果是被注释掉的,效果就好很多,
但是,我想说 = =,我希望能把这个
冒伤害的数字能显示得久一点..
= =,个人游戏需要的效果,
但不知道从哪修改...
因为这个伤害数字一飞出去就迅速消失了,我想要的效果是让它显示久一点再消失,
应该怎么修改???
是在
          # 显示伤害数字

          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),

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

          # 后移一位

          damage_x += 18

        end

这改?  貌似不对吧...
作者: Cola酱    时间: 2010-8-23 17:23
本帖最后由 Cola酱 于 2010-8-23 19:24 编辑

啊啊啊啊啊啊啊
在调试时已经有人抢占先机了
悲剧啊
不过像LS那样改会开始会卡的 而且伤害会飞
除了@_total_damage_duration = 40 改大
还要把412~415改成
  damage[0].x = self.x + (self.viewport.rect.x -
              self.ox + self.src_rect.width / 2 +
              (40 - damage[1]) * damage[3] / 10)/4
  damage[0].y -= (damage[4]+damage[1]/10)/4
412~415行后面的除4是我自己加的,这里是控制弹出伤害的远近程度,时间加长要把这里改大
MS还是会卡
等会再改吧

作者: pigsss    时间: 2010-8-23 18:28
# 总伤害持续帧
     @_total_damage_duration = 40  #《===帧数
作者: 薄荷冰水    时间: 2010-8-23 20:07
啊啊啊啊啊啊啊
在调试时已经有人抢占先机了
悲剧啊
不过像LS那样改会开始会卡的 而且伤害会飞
除了@_total ...
Cola酱 发表于 2010-8-23 19:20



@_total_damage_duration = 40
这句错啦!
应该是改这句
@_damage_duration = 40

不过后面那段改伤害飞的范围的确实很有用!
已经OK了~....
谢谢喔!
作者: Cola酱    时间: 2010-8-23 21:14
是@_damage_duration = 40啦
毕竟我还是在用学校的开机时间
懒得开工程 就直接复制楼上的那个了 哪知道.....
不好意思哈~
PS:改这一句我是调试时,使用方动画后会卡,MS大于40就会有多余的等待,才出被打的动画
LZ你改了其他地方吗?我看了半小时都找不到怎么解决多余等待的问题
感谢LZ啦
作者: 薄荷冰水    时间: 2010-8-23 23:05
回复 Cola酱 的帖子


    貌似我没改其他地方呢 - - ,
我这里有在测试,因为我没有画好战斗动作,素材原创嘛...
先拿了个默认的动画来测试,
因为彩虹神剑蹂躏进了齐时战斗
所以,对象方和使用方都是同时出现动画,
为了测试是不是真的卡,我还特地用了同样的动画作用在 怪物和人之上...
不知道是不是电脑关系,我这里不卡 - -..
还很同步,FPS有37~41
..
不懂你那为什么会卡喔..
我把那个调到了100呢 - -..
对了,你知道怎么把  一击必杀的那个图叠在伤害数字的下面不?
我修改过坐标,不过发现 会心一击的那个图标显示会盖过伤害数字,
我觉得和Z坐标有关,但是又不知道改哪里
作者: Cola酱    时间: 2010-8-24 08:20
MS这个很简单呢
275行:@_total_damage_sprite.z = 3001
3001改小
一般是2999 因为@_damage_sprite.z = 3000
如果你改到更小的就会被藏在框/人物等后面
PS:可能是半透明的伤害放在总伤害的上面,很难看出来
改 damage[0].opacity = damage[1]*20 把 20改大
这个是控制消失的速度
作者: 薄荷冰水    时间: 2010-8-24 09:40
回复 Cola酱 的帖子


    :@_total_damage_sprite.z = 3001
这句应该是  总伤害的Z坐标=3001
其他的是3000,是因为让总伤害显示在所有的分伤害的前面,
因为我会心一击的图标不是字母,不是那个C什么什么L的,我替换成了像闪电那种的图,我想把它放在数字下面,无奈总是无果,我把
      # 会心一击标志打开的情况
      if critical
        # 显示会心一击图画
        bitmap.blt(36, 32, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))
      end
这段,放在
          # 显示伤害数字
          bitmap.blt(damage_x, 32, RPG::Cache.picture("Damage"),
          Rect.new(number * 18, rect_y, 18, 32))
          # 后移一位
          damage_x += 18
        end
这段之前的时候,分伤害的最后一个数字,可以显示在会心一击的图标之前~但是其他数字仍然被会心一击挡住..............
..............................................................................................................
那个PS,半透明伤害,不是很理解  = =,看不懂脚本还真麻烦..
作者: Cola酱    时间: 2010-8-24 12:36
真的不好意思哈 又看错了= =
你是不是要这样的效果
[attach]26580[/attach]
会心一击放在字的下面
那就把
bitmap.blt(36, 0, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32))
改成
bitmap.blt(36, 32, RPG::Cache.picture("Damage"), Rect.new(0, 64, 90, 32),255)
即可
你可以改一下后面那个255  也就是会心一击图片透明度啦
把它改到100再配上图片背景 应该有差不多的效果了
不过目前这个方法会有BUG
你先试试看吧
我现在在学校 很多时候都不方便
下午我回去再帮你改脚本

【关于那个PS】
你可以把那个damage[0].opacity = damage[1]*20 的20改大(2000)改小(1)试试
应该就明白它的作用了
调试时把它改大好很多呢

【关于BUG】
因为这个会心一击是和伤害数字一起描绘的
共用同一个Bitmap 也就是还是会被后面的伤害挡住
不过如果把透明度改低一点看起来就会好一些
如果要达到你的那种效果必须要把数字和图片重新分开描绘

我现在不是很有空
今晚再发吧


作者: 薄荷冰水    时间: 2010-8-24 13:14
真的不好意思哈 又看错了= =
你是不是要这样的效果

会心一击放在字的下面
那就把
bitmap.blt(36, 0, RPG:: ...
Cola酱 发表于 2010-8-24 12:36



这样啊~
透明度在Photoshop里改会更容易..
如果要重新描绘的话 - -
我不会, = =..
我只能用图片来换着法子来实现了,
那...
私下PM吧,重新描绘可能就太麻烦了点..
我先再画画看哪个效果比较好..





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1