Project1
标题:
window_base下面text_size(str)函数调用出错。。求指点
[打印本页]
作者:
psychopiz
时间:
2012-2-15 13:55
标题:
window_base下面text_size(str)函数调用出错。。求指点
本帖最后由 psychopiz 于 2012-2-15 14:32 编辑
window_base下面 有个text_size(str)函数用来测量字符串宽度尺寸,我用这个调用这个函数后出现了下面这个错误:
无标题.jpg
(19.64 KB, 下载次数: 35)
下载附件
保存到相册
2012-2-15 13:52 上传
我是这么添加的:
#==============================================================================
# ■ Window_Location
#------------------------------------------------------------------------------
# 显示所在地图的窗口
#==============================================================================
class Window_Location < Window_Base
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
def initialize
super(0, 0, window_width, fitting_height(1))
@map_name = $game_map.display_name
refresh
end
#--------------------------------------------------------------------------
# ● 获取窗口的宽度
#--------------------------------------------------------------------------
def window_width
return mpaname_width + 24
end
#--------------------------------------------------------------------------
# ● 获取窗口的宽度
#--------------------------------------------------------------------------
def mpaname_width
text_size(@map_name).width
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_text(contents.rect, @map_name)
end
end
复制代码
为什么出的错啊{:1_11:}@ 跪求指点{:1_17:}@
作者:
iisnow
时间:
2012-2-15 14:11
本帖最后由 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
复制代码
作者:
psychopiz
时间:
2012-2-15 14:31
果然是这样,万分感谢!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1