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

Project1

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

[已经解决] 关于NoMethodError,求教(4L已给出解)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
185
在线时间
2 小时
注册时间
2012-10-3
帖子
4
跳转到指定楼层
1
发表于 2012-10-3 22:51:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 CatNDice 于 2012-10-4 21:26 编辑

几个小时前刚上手RMVX,不知道怎么逐行调试代码,只好来求教各位……
我正在针对RMVX默认提供的脚本进行修改
在游戏的起始页面初始化过程中,有一个语句$game_party = Game_Party.new
我在该语句之后修改了party的起始金钱,语句如下:
$game_party.gold = 12
则在测试时报错:
发生了NoMethodError
undifined method 'gold=' for #<Game_Party:地址>
为什么''中的内容会是gold=而非gold呢?我参考了其它引用类属性的方法,貌似没出错吧……

而且为什么会把$game_party.gold = 12这个语句理解为类方法而非为类属性赋值呢……

Lv1.梦旅人

梦石
0
星屑
185
在线时间
2 小时
注册时间
2012-10-3
帖子
4
2
 楼主| 发表于 2012-10-3 23:09:49 | 只看该作者
认真的重新看了下F1……然后发现貌似在RGSS中类中的数据应该被成为实变量……但此外貌似我没犯什么错误呀……
  1. class Person
  2.   def name
  3.     return @name
  4.   end
  5.   def name=(name)
  6.     @name = name
  7.   end
  8.   def hello
  9.     print "我是" + @name
  10.   end
  11. end
  12. alex = Person.new
  13. alex.name = "阿莱库斯"
  14. alex.hello                  # => 我是阿莱库斯
复制代码
以上代码来自帮助文档 其中更改类中实变量就是用的“实例名.实变量名 = 值”的方法额……

顺便贴下代码……
  1. #--------------------------------------------------------------------------
  2.   # * 創建遊戲物件
  3.   #--------------------------------------------------------------------------
  4.   def create_game_objects
  5.     $game_temp          = Game_Temp.new
  6.     $game_message       = Game_Message.new
  7.     $game_system        = Game_System.new
  8.     $game_switches      = Game_Switches.new
  9.     $game_variables     = Game_Variables.new
  10.     $game_self_switches = Game_SelfSwitches.new
  11.     $game_actors        = Game_Actors.new
  12.     $game_party         = Game_Party.new
  13.     $game_party.gold    = 12
  14.     $game_troop         = Game_Troop.new
  15.     $game_map           = Game_Map.new
  16.     $game_player        = Game_Player.new
  17.   end
复制代码
以上代码来自新工程自带代码的Scene_Title类的create_game_objects方法,我只增加了$game_party.gold    = 12这一句
回复 支持 反对

使用道具 举报

Lv1.梦旅人

沉睡的八宝粥 

梦石
0
星屑
64
在线时间
832 小时
注册时间
2011-4-22
帖子
2996

短篇七萝莉正太组季军

3
发表于 2012-10-4 08:19:27 | 只看该作者
虽...虽然我看不懂你的长篇大论是什么意思,
但我清楚地记得增加金钱是
  1. $game_party.gain_gold(A) #A为整数
复制代码
呀......
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
767
在线时间
1270 小时
注册时间
2011-2-14
帖子
5589
4
发表于 2012-10-4 09:04:28 | 只看该作者
本帖最后由 R-零 于 2012-10-4 09:22 编辑

Game_Party 15行 改
  1. attr_accessor :gold
复制代码
因为原来的attr_reader是只读的

自己探究问题 85
@CatNDice

评分

参与人数 3星屑 +104 收起 理由
咕噜 + 100 认可答案
怪蜀黍 + 2 我很赞同
八宝粥先生 + 2 发布到主站

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

送快递的水表员

梦石
10
星屑
4852
在线时间
3303 小时
注册时间
2012-6-27
帖子
7160

开拓者贵宾

5
发表于 2012-10-4 11:34:57 | 只看该作者
我只知道一个等号是赋值,俩等号是等于……虽然我也不知道在说什么……
不过要修改初始金钱在游戏一开始的时候自动执行一个增加金钱事件不就得了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
185
在线时间
2 小时
注册时间
2012-10-3
帖子
4
6
 楼主| 发表于 2012-10-4 21:21:34 | 只看该作者
R-零 发表于 2012-10-4 09:04
Game_Party 15行 改因为原来的attr_reader是只读的

自己探究问题 85分

谢谢……没找到关于attr_reader的说明 可能我没仔细看文档……
顺便……发言和头像很般配嘛~


‘‘──CatNDice于2012-10-4 21:22补充以下内容:

以及,貌似@什么人 似乎没啥反应?反正我这里没有任何提醒……包括被回复也是……
不过也有可能只是网速问题……
’’
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
185
在线时间
2 小时
注册时间
2012-10-3
帖子
4
7
 楼主| 发表于 2012-10-4 21:25:42 | 只看该作者
Password 发表于 2012-10-4 11:34
我只知道一个等号是赋值,俩等号是等于……虽然我也不知道在说什么……
不过要修改初始金钱在游戏一开始的 ...

其实我在做的功能是修改起始队伍成员的职业,也就是在NewGame选项后添加一个职业选单,但是遇到了上述错误……修改金钱什么的完全是为了调试方便 && 问题容易表述而已……
毫无VX基础的某人表示不能逐行调试的代码写起来略吃力……
(是不能逐行调试吧……嗯嗯)
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 10:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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