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

Project1

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

[已经解决] 事件里运行正确 脚本编辑器里运行却错误

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
625
在线时间
0 小时
注册时间
2009-12-9
帖子
2
跳转到指定楼层
1
发表于 2009-12-18 09:57:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这是在看一个脚本教程时遇到的问题
有如下语句
  1. class My_Window < Window_Base
  2. def initialize
  3.    super(0, 0, 200, 200)
  4. end
  5. end
  6. My_Window.new
复制代码
新建工程,新建一个事件,选择脚本,将上述代码输入,然后测试。
与事件对话会出现一个小框框,完全没有问题。
但是如果在脚本编辑器的Main前面新建一页,同样将该代码复制,保存运行,却出现错误,如图。

我完全没有修改过任何脚本,怎么会出现这种错误呢?

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
2
发表于 2009-12-18 10:34:50 | 只看该作者
这是因为——

这段脚本的最后一行 My_Window.new 执行并生成 My_Window 对象的时候,会调用基类(Window_Base)的 initialize 方法,而在 Window_Base 的 initialize 方法中,处理窗口皮肤初始化的时候引用到了一个在 Scene_Title 开始之前都不会生成的对象,那就是 $game_system,并通过它引用了 windowskin_name。由于 $game_system 直到标题场景执行之前都不会初始化,所以这里就会因为 $game_system 还没有初始化而出错。这时 $game_system 的值为 nil,所以错误信息是不能为 nil 找到一个名为 windowskin_name 的方法

而如果同样的脚本放到事件脚本中执行,那么早就经过了标题场景进入了地图/战斗画面,$game_system 自然也就早已初始化了,故没有上述问题
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
625
在线时间
0 小时
注册时间
2009-12-9
帖子
2
3
 楼主| 发表于 2009-12-18 11:37:43 | 只看该作者
哦 这样啊
明白了
谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-26 10:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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