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

Project1

 找回密码
 注册会员
搜索
12
返回列表 发新帖
楼主: lxzuz

[已经解决] 如何在地图上凭空显示伤害

[复制链接]

Lv5.捕梦者

梦石
0
星屑
37641
在线时间
5311 小时
注册时间
2006-11-10
帖子
6541
发表于 2018-6-17 17:17:35 | 显示全部楼层
本帖最后由 灯笼菜刀王 于 2018-6-17 17:18 编辑
lxzuz 发表于 2018-6-17 14:14
十分感谢!请问能不能控制显示时间呢,还有把数字换成变量显示行不行


正常的伤害是跳一下就没了哦, 现在已经是超额显示了

想要让它消失, 就 damege(nil,false)就可以了, 不过如果不是写在同一个事件脚本框里, 那就要用 @a 赋值

如果是要跳一下消失的正常伤害显示, 那想办法到scene map的update里刷新这个精灵就可以了

提示: 可以用全局变量, 这样就不受事件和脚本限制了,

至于后面的那个问题, 行还是不行, 自己实验一下不就清楚了?  不经过自己动手想学会脚本可是不可能的哦, 所以咱就不给你直接的方法了, 自己尝试吧,记得备份, 能做到运行游戏不弹出什么玩意就算成功

点评

明白了,谢谢了  发表于 2018-6-17 18:35
XP可以用一句话调用, 那是默认有这个功能, 默认VA默认脚本没有这个功能, 所以显示伤害的方法要自己写, 这样说能懂了不?  发表于 2018-6-17 18:34
我的意思是,像上面这种一样,在地图凭空显示伤害,但是不知道脚本怎么来啊  发表于 2018-6-17 18:30
VA的伤害显示方法要自己写, 默认只是用窗口显示一段文字 XXXX收到XX点伤害而已.  发表于 2018-6-17 18:27
其实我还想了解一下VA的显示方法,能说下吗?  发表于 2018-6-17 18:11
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
657
在线时间
333 小时
注册时间
2011-3-14
帖子
121
 楼主| 发表于 2018-6-17 17:30:24 | 显示全部楼层
灯笼菜刀王 发表于 2018-6-17 17:17
正常的伤害是跳一下就没了哦, 现在已经是超额显示了

想要让它消失, 就 damege(nil,false)就可 ...

问题解决了,十分感谢!

点评

a.dispose 前面打错了哦,直接复制会跳出玩意来的=3=  发表于 2018-6-17 17:41
特别提醒, 用 a.damage(nil,false) 让它消失后,顺便后面再加一句 a.disopose 把它释放掉, 虽然占不了多少资源,但是能省则省才绿色=.=  发表于 2018-6-17 17:40
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
995
在线时间
180 小时
注册时间
2013-2-16
帖子
176
发表于 2018-7-7 20:03:32 | 显示全部楼层
这是我自己写的任意显示伤害的脚本,用的时候只要初始化一个Damage对象就行了,
然后填参数(显示在屏幕上的x坐标,显示在屏幕上的y坐标,显示的数值,可选颜色,可选是否暴击)
移动轨迹是随机一个0-180度的斜抛运动+落地反弹,想改轨迹可以在update里面改,
该时间的话可以改update里面有关@t的判断
  1. module POP
  2.         G = 0.25
  3.         V = 1.5
  4.         E = 1.0
  5. end
  6. class Damage < Sprite
  7.         def initialize(x,y,num,color=Color.new(200,200,200),critical=false)
  8.                 super()
  9.                 width = num.to_s.size*18
  10.                 self.x = x
  11.                 self.y = y - 50
  12.                 @ori_y = y - 25
  13.                 self.bitmap = Bitmap.new(width,36)
  14.                 self.bitmap.font.size = 22
  15.                 self.bitmap.font.name = "Arial Black"
  16.                 if num.is_a?(Integer)
  17.                         if num > 0
  18.                                 self.bitmap.font.color = color#Color.new(255,55,55)
  19.                         elsif num < 0
  20.                                 self.bitmap.font.color = Color.new(55,255,55)
  21.                         else
  22.                                 self.bitmap.font.color = Color.new(200,200,200)
  23.                         end
  24.                 else
  25.                         self.bitmap.font.name = "黑体"
  26.                         self.bitmap.font.color = Color.new(200,200,200)
  27.                 end
  28.                 self.bitmap.draw_text(2,14,width,22,num.to_s)
  29.                 if critical
  30.                         self.bitmap.font.size = 12
  31.                         self.bitmap.font.color = Color.new(255,255,55)
  32.                         self.bitmap.font.name = "黑体"
  33.                         self.bitmap.draw_text(2,4,width,12,"致命")
  34.                 end
  35.                 v = POP::V
  36.                 angle = ((rand(90)+45)/(180.to_f))*Math::PI
  37.                 @t = 0
  38.                 @e = POP::E
  39.                 @vx = v*Math.cos(angle)*0.6
  40.                 @vy = v*Math.sin(angle)
  41.                 Graphics.damages << self
  42.         end
  43.         def update
  44.                 @t += 1
  45.                 @vy -= POP::G#g
  46.                 self.x += @vx*@t
  47.                 self.y -= @vy*@t
  48.                 if self.y >= @ori_y
  49.                         @vy = @e*(@vy).abs
  50.                         @vx = @e*@vx
  51.       self.y = @ori_y
  52.                 end
  53.                 if self.zoom_x < 1
  54.                         self.zoom_x += 0.1
  55.                         self.zoom_y += 0.1
  56.                 end
  57.                 if @t > 20
  58.                         self.opacity -= 40
  59.                 elsif @t >= 40
  60.                         self.dispose
  61.                 end
  62.         end
  63. end
  64. module Graphics
  65.         @damages = []
  66.         class << self
  67.                 attr_accessor :damages
  68.                 alias damage_update update
  69.                 def update
  70.                         @damages.freshen
  71.                         damage_update
  72.                         for i in @damages
  73.                                 next if i.disposed?
  74.                                 i.update
  75.                                 #return
  76.                         end
  77.                 end
  78.         end
  79. end
复制代码

点评

十分感谢!  发表于 2018-7-9 16:57

评分

参与人数 1星屑 +25 收起 理由
guoxiaomi + 25 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2018-7-21 00:41:05 | 显示全部楼层
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 23:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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