Project1

标题: 这段脚本是什么意思? [打印本页]

作者: mnkjoilhk    时间: 2007-8-27 19:53
标题: 这段脚本是什么意思?
1、下面的脚本是什么意思?   
    for i in @map.events.keys
      @events = Game_Event.new(@map_id, @map.events)
    end
2、 下面的脚本为什么会出错?  
    for i in 1..$game_map.events.size
      name=$game_map.events.name
    end
  提示方法name未被定义。

谢谢
作者: mnkjoilhk    时间: 2007-8-27 19:53
标题: 这段脚本是什么意思?
1、下面的脚本是什么意思?   
    for i in @map.events.keys
      @events = Game_Event.new(@map_id, @map.events)
    end
2、 下面的脚本为什么会出错?  
    for i in 1..$game_map.events.size
      name=$game_map.events.name
    end
  提示方法name未被定义。

谢谢
作者: 柳柳    时间: 2007-8-27 20:51
1、把所有@map里面存在的事件,建立出一个实例来。

2、如你所言,name未被定义。因为正常游戏时候不需要读取这个name,所以普通脚本没有定义它。如果需要定义也很简单,在Game_Map里:
  def name
    return @event.name
  end

那么$game_map.events[某ID].name就可以返回这个ID的事件名字了。

[LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: mnkjoilhk    时间: 2007-8-27 23:31
首先谢谢66解答我的问题
不过
    1、为什么要用@map.events.keys而不用@map.events.size,下面的公
       共事件就是用的.size
    2、我把def....end那段脚本加入我的工程里,但还是提示方法name未
       被定义。{/fd}
       然后,我又建了一个新工程,正确加入那段脚本后,在地图上使用
       name=$game_map.events[1].name还是会提示方法name未定义。
希望能得到进一步解答。

作者: mnkjoilhk    时间: 2007-8-27 23:42
哦,第二个问题我已经解决了
   应该是在Game_Event下加入那段脚本,66不会是打错了吧。。。。。
不过还是谢谢66
作者: 柳柳    时间: 2007-8-27 23:53
关于第一个问题,keys就去掉了没有的节点。

举个例子,你在地图建立了20个事件。然后删除5-15号事件。这样地图上剩下1、2、3、4、16、17、18、19、20这几个。

用.size的话,因为size是9,那么会去找1、2、3、4、5、6、7、8、9号事件,而实际上5-9号并不存在。

换言之,这是为了防止本身内容不连续而使用的方法。



2应该是Game_Event,不好意思,说错了{/gg} [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: mnkjoilhk    时间: 2007-8-27 23:56
原来是这样,十分感谢!!{/wx}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1