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

Project1

 找回密码
 注册会员
搜索
查看: 3688|回复: 2
打印 上一主题 下一主题

[已经解决] window_base下面text_size(str)函数调用出错。。求指点

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
124 小时
注册时间
2010-8-8
帖子
58
跳转到指定楼层
1
发表于 2012-2-15 13:55:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 psychopiz 于 2012-2-15 14:32 编辑

window_base下面 有个text_size(str)函数用来测量字符串宽度尺寸,我用这个调用这个函数后出现了下面这个错误:

我是这么添加的:
  1. #==============================================================================
  2. # ■ Window_Location
  3. #------------------------------------------------------------------------------
  4. #  显示所在地图的窗口
  5. #==============================================================================

  6. class Window_Location < Window_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对象
  9.   #--------------------------------------------------------------------------
  10.   def initialize
  11.     super(0, 0, window_width, fitting_height(1))
  12.     @map_name = $game_map.display_name
  13.     refresh
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 获取窗口的宽度
  17.   #--------------------------------------------------------------------------
  18.   def window_width
  19.     return mpaname_width + 24
  20.   end
  21.   #--------------------------------------------------------------------------
  22.   # ● 获取窗口的宽度
  23.   #--------------------------------------------------------------------------
  24.   def mpaname_width
  25.     text_size(@map_name).width
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ● 刷新
  29.   #--------------------------------------------------------------------------
  30.   def refresh
  31.     draw_text(contents.rect, @map_name)
  32.   end
  33. end
复制代码
为什么出的错啊{:1_11:}@ 跪求指点{:1_17:}@

Lv2.观梦者

梦石
0
星屑
503
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

2
发表于 2012-2-15 14:11:32 | 只看该作者
本帖最后由 iisnow 于 2012-2-15 14:13 编辑

注意看Window_Base中text_size的定义:
  1.   def text_size(str)
  2.     contents.text_size(str)
  3.   end
复制代码
在contents存在的基础上(也就是没有dispose的基础上),上述函数才能正常运行……

也就是在create_contents的方法后面添加才有效
可是initialize方法的重定义毕竟麻烦了
于是可以这么改:
  1.   def mpaname_width
  2.     Bitmap.new(1,1).text_size(@map_name).width
  3.   end
复制代码
这样就可以了


还有一个错误就是;
  1. @map_name = $game_map.display_name
复制代码
这句必须在super前面,不然@map_name在mpaname_width方法里面还未定义

  1. class Window_Location < Window_Base
  2.   #--------------------------------------------------------------------------
  3.   # ● 初始化对象
  4.   #--------------------------------------------------------------------------
  5.   def initialize
  6.     @map_name = $game_map.display_name
  7.     super(0, 0, window_width, fitting_height(1))
  8.     refresh
  9.   end
  10.   #--------------------------------------------------------------------------
  11.   # ● 获取窗口的宽度
  12.   #--------------------------------------------------------------------------
  13.   def window_width
  14.     return mpaname_width + 24
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 获取窗口的宽度
  18.   #--------------------------------------------------------------------------
  19.   def mpaname_width
  20.     Bitmap.new(1,1).text_size(@map_name).width
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 刷新
  24.   #--------------------------------------------------------------------------
  25.   def refresh
  26.     draw_text(contents.rect, @map_name)
  27.   end
  28. end
复制代码
我帖子中要有是不HX的空白,请Ctrl + A
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
124 小时
注册时间
2010-8-8
帖子
58
3
 楼主| 发表于 2012-2-15 14:31:48 | 只看该作者
果然是这样,万分感谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

GMT+8, 2024-4-20 11:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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