Project1

标题: 如何用脚本在战斗的时候写一个用图片显示的血条 [打印本页]

作者: a3738312    时间: 2015-9-1 11:25
标题: 如何用脚本在战斗的时候写一个用图片显示的血条
RT,我看了版主的战斗美化视频,觉得一个方形的条还是不好看,所以在此求图片显示血条的脚本或者该怎么写脚本
作者: RyanBern    时间: 2015-9-2 08:35
首先,根据你图片素材的不同,脚本可能略有不同。
你要准备HP槽和HP条的图片素材,然后修改这两个方法:
draw_actor_hp_bar
draw_actor_sp_bar
提示(涉及到的方法均可以在F1中找到):
去掉绘制空槽的那几句脚本,换成绘制HP槽图片的脚本(利用Bitmap#blt)
去掉绘制HP条的脚本,换成绘制HP条图片的脚本(利用Bitmap#blt),在这里,有两种绘制模式,一种是直接对素材进行拉伸,这种方法容易出马赛克,方法是利用Bitmap#stretch_blt;另一种是从素材中截取部分长度。
当然,你的素材大小必须合适。
作者: 邪月长啸    时间: 2015-9-2 09:17
我不会脚本,我只收集脚本
所以只发脚本



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, 下载次数: 84)




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