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

Project1

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

[已经解决] 经验条增幅异常

[复制链接]

Lv3.寻梦者

梦石
0
星屑
3616
在线时间
1892 小时
注册时间
2010-6-19
帖子
1211
跳转到指定楼层
1
发表于 2014-7-30 09:07:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
弄了个图片显示经验条增减效果的脚本,发现个问题,图片显示经验和当前的经验不成比例。这是怎么回事。
  1.   class Window_Status < Window_Base
  2.     def refresh     
  3.     self.contents.draw_text(44, 325, 300, 32, @actor.exp_s + "/" + @actor.next_exp_s)
  4.     @exp_a = nil
  5.     @exp_b = nil
  6.     @exp_a = Sprite.new
  7.     @exp_b = Sprite.new  
  8.     #=================图片显示============
  9.     @exp_a.bitmap = Bitmap.new(130,50)    #(底宽度,第高度)
  10.     @exp_b.bitmap= Bitmap.new(130,5)     #(经验条宽度,第高度)
  11.    
  12.     #=================底颜色============
  13.     color1 = Color.new(150,150,150,255)
  14.    
  15.     #=================经验条颜色============
  16.     color2 = Color.new(255,100,100,255)  
  17.    
  18.     #==================底=========================
  19.     @exp_a.x = 60                 
  20.     @exp_a.y = 250  
  21.     @exp_a.z = 10000
  22.     @exp_a.bitmap.fill_rect(0,0,130,32,color1)
  23.    
  24.     #=================经验值增幅度===============
  25.     @exp_c = 130*@actor.exp/@actor.next_rest_exp_s.to_i
  26.    
  27.     #=================经验条增幅条==============
  28.     @exp_b.x = 60
  29.     @exp_b.y = 250  
  30.     @exp_b.z = 10001
  31.     @exp_b.bitmap.fill_rect(0,0,@exp_c,32,color2)
  32.   end
  33.   
  34.   #===================释放经验条====================
  35.   def dispose
  36.     super   
  37.     @exp_a.bitmap.dispose
  38.     @exp_b.bitmap.dispose  
  39.     @exp_a.dispose  
  40.     @exp_b.dispose   
  41.     @exp_a = nil
  42.     @exp_b = nil
  43.   end
  44. end
复制代码

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-7-30 10:07:41 | 只看该作者
next_rest_exp_s是距离下一等级还需要的经验 并且返回字符串

换成next_exp_s.to_i试试
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3616
在线时间
1892 小时
注册时间
2010-6-19
帖子
1211
3
 楼主| 发表于 2014-7-30 11:57:38 | 只看该作者
恐惧剑刃 发表于 2014-7-30 10:07
next_rest_exp_s是距离下一等级还需要的经验 并且返回字符串

换成next_exp_s.to_i试试

我把第9行和10行换成
@exp_a.bitmap = Bitmap.new("Graphics/Pictures/底显示")
@exp_a.bitmap = Bitmap.new("Graphics/Pictures/经验条显示")
怎么经验图片不会变化
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
4
发表于 2014-7-30 13:23:54 | 只看该作者
黑米馒头 发表于 2014-7-30 11:57
我把第9行和10行换成
@exp_a.bitmap = Bitmap.new("Graphics/Pictures/底显示")
@exp_a.bitmap = Bitmap. ...

建议使用另一种方法读图

在窗口中:
如果有多张图片最好在初始化先生成一个矩形 @rect = Rect.new(0, 0, 1, 1)
# 读图
bitmap = RPG::Cache.load_bitmap(路径<注意用/隔开>, 图片名称, 色调)
可以不传色调参数。
# 描绘
self.contents.blt(X坐标, Y坐标, bitmap, @rect.set(0, 0, bitmap.width, bitmap.height))


这样就只需self.contents.clear就可以清除所有内容,也无需新定义dispose释放。


你只是读取了一张图并没有改变它的宽度,当然不会变化
你可以使用上述方法读取 然后 改变矩形的宽度就可以
比如
@rect.set(0, 0, bitmap.width*actor.exp/actor.next_exp_s.to_i)

当然你也可以src_rect,不过我还是觉得这里说的这种方法更好

点评

不确定LZ要的是裁剪效果还是拉伸效果。如果是拉伸效果还要改改才行。  发表于 2014-7-30 13:37

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3616
在线时间
1892 小时
注册时间
2010-6-19
帖子
1211
5
 楼主| 发表于 2014-7-30 13:51:58 | 只看该作者
恐惧剑刃 发表于 2014-7-30 13:23
建议使用另一种方法读图

在窗口中:

  class Window_Status < Window_Base
  def refresh   
@rect = Rect.new(30, 30, 32, 32)
# 读图
bitmap = RPG::Cache.load_bitmap("Graphics/Pictures/,经验条显示",0)
# 描绘
self.contents.blt(20, 30, bitmap, @rect.set(249, 10, bitmap.width, bitmap.height))
self.contents.clear
@rect.set(249, 10, bitmap.width*actor.exp/actor.next_exp_s.to_i)
end
end
这样怎么不行。。。不太会脚本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
6
发表于 2014-7-30 19:33:45 | 只看该作者
@rect放在初始化initialize里就好
读图要三个参数不是两个参数
修改为 *******("Graphics/Pictures/", "经验条显示")
后边那个0可以不带

blt(X坐标, Y坐标, bitmap, rect)
这里设置的X坐标和Y坐标就是位图的坐标

rect中有四个参数 X坐标, Y坐标, 宽度, 高度
这里的X坐标 Y坐标和上边描绘位图的X坐标Y坐标不是一个概念。

不过一般留零就可以
但是要描绘动态图,就需要调整传送矩形的X坐标与Y坐标了


还是建议LZ去看看 癫狂侠客 有关菜单 的教程。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 10:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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