查看: 1951|回复: 5

[已经解决] 类的继承问题

[复制链接]
梦石
0
星屑
50
在线时间
39 小时
注册时间
2011-8-6
回帖
0
发表于 2014-8-17 10:56:48 | 显示全部楼层 |阅读模式

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

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

×
我在Game_Battler中添加了一个属性mx,并在初始化对象的时候将@mx赋值为0,为什么在Game_Actor中的值还是为nil呢?而在Game_Enemy中的值为0,这是怎么回事呢?
梦石
0
星屑
2826
在线时间
2634 小时
注册时间
2013-1-16
回帖
5453

贵宾

发表于 2014-8-17 11:05:43 | 显示全部楼层
经测试,未发现楼主所说的问题
(Created by @喵kano)


施工现场:hotege.github.io
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2011-8-6
回帖
0
 楼主| 发表于 2014-8-17 11:17:40 | 显示全部楼层
myownroc 发表于 2014-8-17 11:05
经测试,未发现楼主所说的问题

我用新工程测试也没问题,可是我的工程已经修改了好多,我也不知道到底是哪一部分出现了问题,请问有哪些可能会导致变量变为了nil呢?
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2014-8-17 11:47:30 | 显示全部楼层
可能出现此问题的原因:
1.initialize被反复定义,导致有些实变量没有被初始化。
解决方法:利用alias进行别名处理,或者搜索所有initialize的定义,进行修改即可。
2.在进行游戏当中,如果利用了之前未加入新属性的Game_Battler定义生成了一个Game_Actor对象,那么在追加属性后,依然用之前生成的这个对象,那么新属性的值为nil。Game_Enemy对象由于不是保存的而是实时生成的,因此不会出现问题,但是Game_Actor对象要保存在存档中,所以新属性的值不予以初始化。
解决方法:放弃存档重新开一个新游戏。或者在需要访问新属性的地方,加一句@mx = 0 if @mx == nil进行临时初始化即可。

评分

参与人数 1星屑 +120 收起 理由
myownroc + 120 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
2826
在线时间
2634 小时
注册时间
2013-1-16
回帖
5453

贵宾

发表于 2014-8-17 11:48:21 | 显示全部楼层
136667 发表于 2014-8-17 11:17
我用新工程测试也没问题,可是我的工程已经修改了好多,我也不知道到底是哪一部分出现了问题,请问有哪些 ...

建议上传工程
(Created by @喵kano)


施工现场:hotege.github.io
回复

使用道具 举报

梦石
0
星屑
50
在线时间
39 小时
注册时间
2011-8-6
回帖
0
 楼主| 发表于 2014-8-17 11:54:19 | 显示全部楼层
RyanBern 发表于 2014-8-17 11:47
可能出现此问题的原因:
1.initialize被反复定义,导致有些实变量没有被初始化。
解决方法:利用alias进行 ...

十分感谢,已经解决了,确实是存档的问题,重开之后就没有这样的问题了。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部