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

Project1

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

[已经解决] 如何用脚本在战斗的时候写一个用图片显示的血条

[复制链接]

Lv1.梦旅人

梦石
0
星屑
63
在线时间
53 小时
注册时间
2012-7-17
帖子
40
跳转到指定楼层
1
发表于 2015-9-1 11:25:39 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
RT,我看了版主的战斗美化视频,觉得一个方形的条还是不好看,所以在此求图片显示血条的脚本或者该怎么写脚本

Lv2.观梦者

梦石
0
星屑
310
在线时间
853 小时
注册时间
2014-5-5
帖子
948
3
发表于 2015-9-2 09:17:20 | 只看该作者
我不会脚本,我只收集脚本
所以只发脚本



RUBY 代码复制
  1. def HP(actor,x,y,w=74,width=144)
  2.  
  3.  
  4.   #血条
  5.   #HP最大值
  6.   @bitmap3 =Bitmap.new("Graphics/Pictures/MHP")
  7.   w3=@bitmap3.width   
  8.   @src_rect3 = Rect.new( 0, 0, w3, @bitmap3.height)
  9.   self.contents.blt(x+68,y+58,@bitmap3,@src_rect3)
  10.   #HP  
  11.   @bitmap1 =Bitmap.new("Graphics/Pictures/HP")  
  12.   w1=@bitmap1.width *actor.hp/actor.maxhp
  13.   @src_rect1 = Rect.new( 0, 0, w1, @bitmap1.height)   
  14.   self.contents.blt(x+68,y+58,@bitmap1,@src_rect1)
  15.  
  16.  
  17.  
  18.  
  19.  
  20.       hp_x = x
  21.       flag = false
  22.  
  23.  
  24.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  25.     actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  26.  
  27.  
  28.  
  29.     # 描绘 MaxHP
  30.     if flag
  31.       self.contents.font.color =normal_color
  32.       self.contents.draw_text(hp_x + 20, y+40, 12, 20, "/", 1)
  33.       self.contents.draw_number(hp_x + 35, y, actor.maxhp.to_s)     
  34.     end
  35. end
  36.  
  37.   #技能条
  38. def SP(actor,x,y,w=74,width=144)
  39.   #SP最大值
  40.   @bitmap4 =Bitmap.new("Graphics/Pictures/MSP")  
  41.    w4=@bitmap4.width
  42.   @src_rect4 = Rect.new( 0, 0, w4, @bitmap4.height)
  43.   self.contents.blt(x+68,y+59,@bitmap4,@src_rect4)
  44.    #sp
  45.   @bitmap2 =Bitmap.new("Graphics/Pictures/SP")
  46.   w2=@bitmap2.width *actor.sp/actor.maxsp
  47.   @src_rect2 = Rect.new( 0, 0, w2, @bitmap2.height)
  48.   self.contents.blt(x+68,y+59,@bitmap2,@src_rect2)
  49.  
  50.  
  51.       sp_x = x
  52.       flag = false
  53.  
  54.     # 描绘 SP
  55.  
  56.     self.contents.font.color = actor.sp == 0 ? knockout_color :
  57.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  58.  
  59.     # 描绘 MaxSP
  60.     if flag
  61.       self.contents.font.color = normal_color
  62.       self.contents.draw_text(sp_x + 20, y+41, 13, 20, "/", 1)
  63.        #把括号后的2去掉,中间的两个数字也去掉,
  64.     self.contents.draw_number(sp_x + 35, y,  actor.maxsp.to_s)
  65.       #把draw_text改为draw_number就行了!!
  66.     end
  67.   end
  68.   #########################################################



附加血条素材
Pictures.rar (25.19 KB, 下载次数: 83)

点评

我知道怎么用了,这个正是我需要的,谢谢  发表于 2015-9-3 21:58
这个怎么用啊  发表于 2015-9-3 21:50

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9532
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

2
发表于 2015-9-2 08:35:41 | 只看该作者
首先,根据你图片素材的不同,脚本可能略有不同。
你要准备HP槽和HP条的图片素材,然后修改这两个方法:
draw_actor_hp_bar
draw_actor_sp_bar
提示(涉及到的方法均可以在F1中找到):
去掉绘制空槽的那几句脚本,换成绘制HP槽图片的脚本(利用Bitmap#blt)
去掉绘制HP条的脚本,换成绘制HP条图片的脚本(利用Bitmap#blt),在这里,有两种绘制模式,一种是直接对素材进行拉伸,这种方法容易出马赛克,方法是利用Bitmap#stretch_blt;另一种是从素材中截取部分长度。
当然,你的素材大小必须合适。

点评

ps如果打算用楼下的脚本的话,那么问题就是解决了吧?  发表于 2015-9-3 22:01
裁剪就是我说的第二种方式,使用Bitmap#blt,self.contents.blt(x, y, bitmap, Rect.new(0, 0, w1, h)),其中w1为裁剪后的高度  发表于 2015-9-3 22:01
如何直接让HP条被裁剪呢,就是不拉伸,减少的部分就直接裁掉  发表于 2015-9-3 21:52
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 21:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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