Project1

标题: 关于picture.date 函数方法问题!? [打印本页]

作者: shiyatestzn    时间: 2013-9-9 17:24
标题: 关于picture.date 函数方法问题!?
本帖最后由 shiyatestzn 于 2013-9-9 18:50 编辑

说明书上抄袭来的关于each_index{|index| .... } 的用法




each_index {|index| .... }
依每个元素的索引,对区块进行计算。与下面的语句相同:

(0 ... ary.size).each {|index| .... }
返回 self





以下是ace程序自带的一行脚本及我的解释:

    @pictures.each {|picture| picture.update }    # 图片更新.
    #用pictures所指数组中的每个元素进行一次picture.date然后返回计算后的新数组.新数组的名字是picture. 注意:没有s.


请问各位大大们,我的理解对不对??
还有, picture.update是怎么运作的,picture的定义是什么,在哪里.明显搜不到啊....
作者: 喵呜喵5    时间: 2013-9-9 18:17
本帖最后由 喵呜喵5 于 2013-9-20 14:49 编辑

应该是对@pictures中的每个元素执行update方法吧

数组的each迭代器的作用如下:
a=[1,2,3]
a.each {|操作数| b +=操作数 }
等同于
b = a[0]+a[1]+a[2]
作者: shiyatestzn    时间: 2013-9-9 18:19


回复moy大大




难道update内容是这个?
  #--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    update_move
    update_tone_change
    update_rotate
  end





#--------------------------------------------------------------------------
生成新图片的脚本是$game_map.screen.pictures[23].show........

moy大大所说的update应该这么表达吧:    $game_map.screen.pictures[23].update

这里是pictures.show,而不是picture.show.

class Game_Picture 和 class Game_Pictures 下并没有picture对应的def.

对象picture也没有被实例化带入pictures   ,所以说picture到底是怎么调用update方法的??

头都大了{:2_263:}







作者: 喵呜喵5    时间: 2013-9-9 18:34
shiyatestzn 发表于 2013-9-9 18:19
回复moy大大



我的回答被华丽的无视了……

把默认的脚本写成这样你应该就能理解了吧?

pictures.each {|只是一个符号代表当前循环中的某个元素| 只是一个符号代表当前循环中的某个元素.update }
作者: shiyatestzn    时间: 2013-9-9 18:44
喵呜喵5 发表于 2013-9-9 18:34
我的回答被华丽的无视了……

把默认的脚本写成这样你应该就能理解了吧?

木有无视 只是陷入了脑内黑暗泥泞的漩涡不能自拔而已....
作者: shiyatestzn    时间: 2013-9-9 18:47
喵呜喵5 发表于 2013-9-9 18:34
我的回答被华丽的无视了……

把默认的脚本写成这样你应该就能理解了吧?

明白了 感谢大大 喵呜桑大好きです
作者: 喵呜喵5    时间: 2013-9-9 18:50
shiyatestzn 发表于 2013-9-9 18:44
木有无视 只是陷入了脑内黑暗泥泞的漩涡不能自拔而已....

总之你的理解有错,那个picture并不是什么新数组而是和下面这个for循环中的i差不多:
for i in @pictures
  i.update
end
作者: moy    时间: 2013-9-9 19:08
shiyatestzn 发表于 2013-9-9 18:19
回复moy大大

picture是pictures的属性,所以虽然没有明确写调用关系,但是确实是指它
  1.   def [](number)
  2.     @data[number] ||= Game_Picture.new(number)
  3.   end
复制代码
另外注意这段,这是pictures的一个方法,也就是说,当你调用pictures[n]时,其实是实例化了一个picture返回给你
作者: shiyatestzn    时间: 2013-9-9 19:25
moy 发表于 2013-9-9 19:08
picture是pictures的属性,所以虽然没有明确写调用关系,但是确实是指它另外注意这段,这是pictures的一 ...

调用pictures[n]时产生了一个Game_Picture的实例.恩恩.的确是这样.moy大大让我对each迭代器的理解更深了一步.感谢moy大大{:2_275:}




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