| 赞 | 274  | 
 
| VIP | 0 | 
 
| 好人卡 | 3 | 
 
| 积分 | 495 | 
 
| 经验 | 40966 | 
 
| 最后登录 | 2024-6-21 | 
 
| 在线时间 | 1919 小时 | 
 
 
 
 
 
Lv5.捕梦者 
	- 梦石
 - 10 
 
        - 星屑
 - 39540 
 
        - 在线时间
 - 1919 小时
 
        - 注册时间
 - 2010-11-14
 
        - 帖子
 - 3319
 
 
  
 
 | 
	
最近试着给工程加RGD,结果各种位图描绘都异常了,想知道原因与解决方案。为了方便观察,使用了位图边框着色脚本。(也就是在draw_text的同时fill_rect) 
 
未使用RGD 
 
 
 
使用RGD 
 
 
 
绘制部分的代码 
- def initialize_text_sprites
 
 -     viewport = Viewport.new(0, @font.size, Graphics.width, Graphics.height - @font.size) # 防止文字向上越界
 
 -     viewport.z = BASE_Z + 2 # 防止文字被被地图和黑块遮住
 
 -     
 
 -     @text_sprites = Array.new(@texts.size){ Sprite.new(viewport) } # 指定viewport
 
 -     @text_sprites.each_with_index do |sprite, i|
 
 -       # 矩形准备
 
 -       rect = Bitmap.text_size(@texts[i], @font)
 
 -       # 绘制位图
 
 -       sprite.bitmap = Bitmap.new(rect.width, rect.height)
 
 -       sprite.bitmap.font = @font
 
 -       sprite.bitmap.draw_text(rect, @texts[i])
 
 -       # 调整位置
 
 -       sprite.ox = sprite.bitmap.width / 2
 
 -       sprite.x = Graphics.width / 2        # 横向居中
 
 -       sprite.y = Graphics.height + rect.height * (1.1 * i - 1) # 1.1可以省略吗?
 
 -     end
 
 -   end
 
  复制代码 其中Bitmap.text_size是 
- def self.text_size(text, font = Font.new)
 
 -     bmp = BMP_FOR_TEXT_SIZE # Bitmap.new(1, 1)
 
 -     bmp.font = font
 
 -     rect = bmp.text_size(text) # 含边框与斜体调整
 
 -     rect
 
 -   end
 
  复制代码 
 
 
 
 
 |   
 
 
 
 |