赞 | 4 |
VIP | 44 |
好人卡 | 11 |
积分 | 12 |
经验 | 54954 |
最后登录 | 2021-10-2 |
在线时间 | 1276 小时 |
Lv3.寻梦者 ○赛
- 梦石
- 0
- 星屑
- 1249
- 在线时间
- 1276 小时
- 注册时间
- 2013-1-22
- 帖子
- 2246
|
第九章 创建第一个窗口3
这一节主要是讲上一次是如何得出那个66的 = = 刚刚发现和66rpg的66一样..好吉利 = =
大家可以打开帮助,找到Bitmap,看到最后面有一个方法。- text_size(str)
- 取得以 draw_text 方法描绘字符串 str 的矩形(Rect)。但是,不包含斜体的部分。
复制代码 我就是用这个方法得到的..
用法一:在开始游戏之前临时建立一个Bitmap类的实例,调用该方法得到宽度。
代码:
text = Bitmap.new(1,1).text_size("新手村").width
p text
exit
临时建立一个宽1长1的Bitmap,调用方法。
用法二:在窗口里使用该方法。
代码:
def refresh
self.contents.clear
w = self.contents.text_size("新手村").width
draw_text(0,0,w,22,"新手村")
end
用法三(重点):
在draw_text(x,y,width,height)后面,有
draw_text(rect, str[, align])
这里用到了Rect类(矩形),可以直接利用text_size获得矩形。
代码:
w = self.contents.text_size("新手村")
draw_text(w,"新手村")
好了,上面那些纯属非重点,重点从这里开始 = =
既然“新手村”是不会变的,那么为什么要反复描绘呢?
我们现在就要让它“变”起来,我们要将“新手村”换成当前队伍里一号角色的名字。
首先介绍一个非常有用的东西,内嵌表达式。
在F1帮助里也有,就是可以在字符串里以“#{变量名}”的方式代入变量。
于是可以得到下面的东西。- def refresh
- self.contents.clear
- @name = $game_party.actors[0].name # 变量@name代入一号角色名字
- self.contents.draw_text(0,0,text_size(@name).width,text_size(@name).height,"#{@name}")
- end
复制代码 好了,本章结束 = = 由于本章未经测试,可能有误,欢迎批评指正!我会塞最大的糖表示感谢(虽然只有30)! |
评分
-
查看全部评分
|