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

Project1

 找回密码
 注册会员
搜索

请问Bitmap类使用draw_text方法的时候为什么原点不在左上角

查看数: 2309 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-7-31 20:43

正文摘要:

本帖最后由 喵呜喵5 于 2014-7-31 20:46 编辑 这个是我的测试代码以及最终结果,Bitmap使用draw_text方法的时候为什么原点不在左上角?如何将原点设置到左上角?class Sprite_M5_Test < Sprite   def in ...

回复

kuerlulu 发表于 2014-8-1 17:50:09
我只是来卖个萌..
  1. root = Root.new(0, 0, 640, 480)
  2. button = Button.new(root) do
  3.   text "哈哈哈", 1
  4.   oxy 120, 120
  5. end

  6. rgss_run(root)
复制代码

点评

啊为什么要用Button明明是定义在Label里的  发表于 2014-8-1 17:51
余烬之中 发表于 2014-7-31 20:57:03
本帖最后由 余烬之中 于 2014-7-31 20:59 编辑

摘自F1手册
Horizontal text is left-aligned by default. Set align to 1 to center the text and to 2 to right-align it. Vertical text is always centered.
水平方向默认左对齐 竖直方向永远居中
所以…………用这个测试一下就清楚了
RUBY 代码复制
  1. def 合适高度
  2.   24
  3. end
  4.  
  5. x = Sprite.new.tap{|s|
  6.   s.bitmap = Bitmap.new(Graphics.width, Graphics.height).tap{|b|
  7.     b.fill_rect(b.rect, Color.new(255,255,255))
  8.     b.draw_text(b.rect.tap{|r| r.height = 合适高度}, "Tester Tester")
  9.   }
  10. }
  11. loop{Graphics.update}

点评

我很喜欢这个方法  发表于 2014-8-1 20:01
好吧我在Ruby文档里看到了= =|||  发表于 2014-8-1 18:52
.tap方法是哪里来的(;´Д`)为什么F1里没有  发表于 2014-8-1 18:50

评分

参与人数 1星屑 +140 收起 理由
喵呜喵5 + 140 被这个纵向居中坑了……

查看全部评分

taroxd 发表于 2014-7-31 20:50:16
本帖最后由 taroxd 于 2014-7-31 20:56 编辑

在一个方块里写一行字,当然是写在方块的中间最美观了……
如果不是这样的话,换个字体大小就能让窗口上的文字变得难看死,你信不信?
绘制文字确实是以左上角为原点,但是会绘制在指定矩形y轴的中央。

解决方式:像 Window_Base 里那样,显式指定文字的高度(line_height)即可

参考:在第8行前加入  rect.height = 24

评分

参与人数 2星屑 +140 梦石 +1 收起 理由
VIPArcher + 1 认可答案
喵呜喵5 + 140 认可答案,原来是高度的问题啊…….

查看全部评分

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

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

GMT+8, 2024-9-25 21:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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