赞 | 6 |
VIP | 4 |
好人卡 | 58 |
积分 | 5 |
经验 | 58579 |
最后登录 | 2024-6-30 |
在线时间 | 1478 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 508
- 在线时间
- 1478 小时
- 注册时间
- 2011-9-17
- 帖子
- 1316
|
本帖最后由 iisnow 于 2012-2-15 14:13 编辑
注意看Window_Base中text_size的定义:- def text_size(str)
- contents.text_size(str)
- end
复制代码 在contents存在的基础上(也就是没有dispose的基础上),上述函数才能正常运行……
也就是在create_contents的方法后面添加才有效
可是initialize方法的重定义毕竟麻烦了
于是可以这么改:- def mpaname_width
- Bitmap.new(1,1).text_size(@map_name).width
- end
复制代码 这样就可以了
还有一个错误就是;- @map_name = $game_map.display_name
复制代码 这句必须在super前面,不然@map_name在mpaname_width方法里面还未定义
:- class Window_Location < Window_Base
- #--------------------------------------------------------------------------
- # ● 初始化对象
- #--------------------------------------------------------------------------
- def initialize
- @map_name = $game_map.display_name
- super(0, 0, window_width, fitting_height(1))
- refresh
- end
- #--------------------------------------------------------------------------
- # ● 获取窗口的宽度
- #--------------------------------------------------------------------------
- def window_width
- return mpaname_width + 24
- end
- #--------------------------------------------------------------------------
- # ● 获取窗口的宽度
- #--------------------------------------------------------------------------
- def mpaname_width
- Bitmap.new(1,1).text_size(@map_name).width
- end
- #--------------------------------------------------------------------------
- # ● 刷新
- #--------------------------------------------------------------------------
- def refresh
- draw_text(contents.rect, @map_name)
- end
- end
复制代码 |
|