Project1

标题: 关于图片的问题 [打印本页]

作者: jiushiainilip19    时间: 2016-10-8 16:44
标题: 关于图片的问题
在游戏中我用图片显示血量
可是遇到一个问题:
就是图片减少的方式是从下往上减少的,看起来有些不妥,这个是什么原因呢?

是计算方式的问题吗! 如何解决这个问题!

正常视觉应该是从上到下!
RUBY 代码复制
  1. def draw_actor_hp1_bar(actor, x, y,height=60)
  2.     bitmap=Bitmap.new("Graphics/Pictures/xue1") # 60  60
  3.     w1 = 1.0 * actor.hp / actor.maxhp * height
  4.     src_rect = Rect.new(0, 0, 60,w1)
  5.     self.contents.blt(x, y, bitmap, src_rect)
  6.   end

满血.png (9.62 KB, 下载次数: 13)

满血.png

减血.png (8.73 KB, 下载次数: 14)

减血.png

作者: yang1zhi    时间: 2016-10-8 16:48
问题出在W1。
获取图片的高。
该怎么写我不知道
作者: 七重    时间: 2016-10-8 17:55
本帖最后由 七重 于 2016-10-8 19:06 编辑

虽然这个是XP的问题,不过我之前也为同样的问题烦恼过所以也尝试回复一下。


如果是在VA上的话,也许可以通过改变显示端口的oy的方法来实现,同时要改变高度。(我猜XP应该也可以吧?)

这是最近才学的方法,虽然自己的游戏也有用到这个功能,但是还没有更新上去。



作者: 夜狠简单    时间: 2016-10-8 21:38
(x, y, bitmap, src_rect)改的是y值吗?
作者: cinderelmini    时间: 2016-10-9 12:45
rm坐标系默认原点在左上角~
大概这么换算一下应该可以了……吧…………
  1. def draw_actor_hp1_bar(actor, x, y,height=60)
  2.     bitmap=Bitmap.new("Graphics/Pictures/xue1") # 60  60
  3.     w1 = 1.0 * actor.hp / actor.maxhp * height
  4.     cy = height - w1
  5.     src_rect = Rect.new(0, cy, 60,w1)
  6.     self.contents.blt(x, y + cy, bitmap, src_rect)
  7.   end
复制代码





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