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

Project1

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

绘制血条时发生了奇怪的事情……

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
8 小时
注册时间
2006-10-5
帖子
129
跳转到指定楼层
1
发表于 2009-1-28 03:33:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
刚刚看了血槽绘制的教学录像,于是学着去画了一个

新的脚本:
def HP(actor,x,y)
  @bitmap1 =Bitmap.new("Graphics/Pictures/HP.png")
  w1 = @bitmap1.width * actor.hp/actor.maxhp
  @src_rect1 = Rect.new(0,0,w1,@bitmap1.height)
  self.contents.blt(x,y,@bitmap1,@src_rect1)
end  

def SP(actor,x,y)
  @bitmap2 =Bitmap.new("Graphics/Pictures/SP.png")
  w2 = @bitmap2.width * actor.sp/actor.maxsp
  @src_rect2 = Rect.new(0,0,w2,@bitmap2.height)
  self.contents.blt(x,y,@bitmap2,@src_rect2)
end  


Window_BattleStatus里改的

def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors
      actor_x = i * 160 + 4
      draw_actor_name(actor, actor_x, 0)
      HP(actor,actor_x,32)
      SP(actor,actor_x,64)
      if @level_up_flags
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x, 96, 120, 32, "LEVEL UP!")
      else
        draw_actor_state(actor, actor_x, 96)
      end
    end
  end



好,我们运行……???



神奇的是,我无论怎么换图片,他都只是一个绿色的槽,好吧,我可能在别的地方重新定义了一下,但是怎么查找都没有,也没有用关于血槽的插件脚本……

接着更神奇,我改了一下这个:
HP(actor,actor_x,32)
变为
HP(actor,actor_x,10)




要知道,我定义的可是这个,是一张图片!!!
def HP(actor,x,y)
  @bitmap1 =Bitmap.new("Graphics/Pictures/HP.png")
  w1 = @bitmap1.width * actor.hp/actor.maxhp
  @src_rect1 = Rect.new(0,0,w1,@bitmap1.height)
  self.contents.blt(x,y,@bitmap1,@src_rect1)
end  
而不是一个绿色的槽!

怎么回事?本人新手,大惊小怪之处请见谅

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

2
发表于 2009-1-28 03:54:44 | 只看该作者
方便的话来个工程吧{/dy}

下面写一些我对于这类灵异问题的解决方法。

1、它不是灵异么?让它灵异到底!
现在放在工程里的是一个矩形的图片么?改!改成不规则型的,然后在运行看看,如果还是与图片大小相同的一个矩形,那么多半可以确认,你的@bitmap1在某处还做过了fill_rect的处理。

2、为bitmap执行blt方法时,那个图形用临时变量就足矣了。
pic = RPG::Cache.picture("hp")
self.contents.blt(0, 0, pic, Rect.new(0, 0, pic.width, pic.height))
同样的,这也是为了防止上面1里所描述的问题的出现,也许你在其他地方还对@bitmap1做了处理,但如果像现在这样,方法结束以后,pic就可以认为已经不存在了,也就不怕再出什么问题了。
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
8 小时
注册时间
2006-10-5
帖子
129
3
 楼主| 发表于 2009-1-28 04:02:32 | 只看该作者
这样子不行么……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

4
发表于 2009-1-28 04:17:49 | 只看该作者
你再看看吧!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

5
发表于 2009-1-28 04:30:45 | 只看该作者
用最常规的写法写一次吧 吧@这个东西去掉
def HP(actor,x,y)
bitmap = Bitmap.new("Graphics/Pictures/HP")
w1 = bitmap.width * actor.hp / actor.maxhp
rect = Rect.new(0,0,w1,bitmap.height)
self.contents.blt(x,y,bitmap,rect)
end  
定义这样的方法用局部变量就好了.要最大程度的减少干扰才好

def SP(actor,x,y)
  pic = RPG::Cache.picture("sp")
  w2 = pic.width * actor.sp / actor.maxsp
  self.contents.blt(0, 0, pic, Rect.new(0, 0, w2, pic.height))
end











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
8 小时
注册时间
2006-10-5
帖子
129
6
 楼主| 发表于 2009-1-28 04:47:42 | 只看该作者
照旧……难道真的出了什么问题?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

7
发表于 2009-1-28 05:05:11 | 只看该作者
那还真的称灵异事件了。。。
重新检查你的图片
然后直接显示图片,不要和HP/SP挂钩
def HP(actor,x,y)
bitmap = Bitmap.new("Graphics/Pictures/HP")
w1 = bitmap.width
rect = Rect.new(0,0,w1,bitmap.height)
self.contents.blt(x,y,bitmap,rect)
end
def SP(actor,x,y)
pic = RPG::Cache.picture("sp")
w2 = pic.width
self.contents.blt(0, 0, pic, Rect.new(0, 0, w2, pic.height))
end
如果这样还是那个样子的话就无法了,吧工程发上来
让上面那位大大帮你看看……
或者是重新开个新工程在新工程里试试











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
8 小时
注册时间
2006-10-5
帖子
129
8
 楼主| 发表于 2009-1-28 05:34:59 | 只看该作者
新工程是没事的,但我想不出什么东西能只定义一个HP槽……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6875
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

9
发表于 2009-1-28 05:45:47 | 只看该作者
既然新工程里是正确的那就是你自己工程里什么地方被重新定义了
按理说,方法里使用局部变量应该不会和别的方法起冲突才对
@这个东西可别随随便便就给一些不是大范围使用的变量带上











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
8 小时
注册时间
2006-10-5
帖子
129
10
 楼主| 发表于 2009-1-28 05:50:11 | 只看该作者
问题是到现在我用的都是插件脚本,如果是血槽的话,HP和SP应该是一起被定义不是?况且这还是个绿条子……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-18 15:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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