Project1

标题: 文字问题 [打印本页]

作者: sblkhgm    时间: 2014-4-9 19:58
标题: 文字问题
为什么这样写没反映,文字不是往两边延伸的
  1.     rect = @text.bitmap.text_size(str.to_s)
  2.     rect.x,rect.y = x,y
  3.     @text.bitmap.draw_text(rect, str.to_s,1)
复制代码
这样写就可以
  1. @text.bitmap.draw_text(x,y,50,10,str.to_s,1)
复制代码
我只是想省点事,不用找  他的长度  宽度,请问用第一个 要怎么改
作者: 你最珍贵    时间: 2014-4-9 20:21
是问对齐方式吗?
@text.bitmap.draw_text(x,y,50,10,str.to_s,1)
后面的,1就是对齐方式 0:左对齐 1:居中 2:右对齐

作者: atom0520    时间: 2014-4-9 20:42
你设的的rect不是Rect.new那样的rect类的实例,你设的rect不过是一个等于@text.bitmap.text_size(str.to_s) 的数值
作者: atom0520    时间: 2014-4-9 20:49
哦,对不起我说错了,rect = @text.bitmap.text_size(str.to_s) 生成的是rect类实例,我想问题可能是rect.x,rect.y = x,y 的x和y是参照bitmap上的原点的,而@text.bitmap.draw_text(x,y,50,10,str.to_s,1) 中的x,y是参照整个游戏画面的原点的,两者若要显示相同效果则不能相同,你把rect.x,rect.y = x,y 改成rect.x,rect.y = 0,0试试
作者: atom0520    时间: 2014-4-9 21:02
啊,再次抱歉啊,我刚刚又试了试,再更正一下
@text.bitmap.draw_text(x,y,50,10,str.to_s,1) 中的x,y是也是参照bitmap的原点的,所以说若rect.x,rect.y = x,y 中的x,y和后者中的x,y保持一致的话,按理说后面一种方法能显示前面一种也能显示了,如果保证两种方法中的x,y一致还存在上述问题的话,那我也不清楚是什么回事了
作者: sblkhgm    时间: 2014-4-9 21:28
你最珍贵 发表于 2014-4-9 20:21
是问对齐方式吗?

对,就是这问题
作者: sblkhgm    时间: 2014-4-9 21:39
atom0520 发表于 2014-4-9 20:49
哦,对不起我说错了,rect = @text.bitmap.text_size(str.to_s) 生成的是rect类实例,我想问题可能是rect.x ...

这个是显示坐标 rect.x,rect.y,这个是长和 宽rect = @text.bitmap.text_size(str.to_s)
但是我这样也不行
rect = @text.bitmap.text_size(str.to_s)
@text.bitmap.draw_text(x,y,rect.width,rect.height,str.to_s,1)
作者: atom0520    时间: 2014-4-10 12:55
sblkhgm 发表于 2014-4-9 21:39
这个是显示坐标 rect.x,rect.y,这个是长和 宽rect = @text.bitmap.text_size(str.to_s)
但是我这样也不 ...

那你看看你@text精灵的x,y或者z坐标有没有问题呢?
作者: 活得好啊    时间: 2014-4-13 17:38


   路过 看看。

作者: 芯☆淡茹水    时间: 2014-4-14 10:57
这样试试:
width = @text.bitmap.text_size(str.to_s).width
rect = Rect.new(0, 0, width, 32)
@text.bitmap.draw_text(rect, str.to_s,1)





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