Project1

标题: 求事件运行刷新的调用函数名…… [打印本页]

作者: yeyunfeiyuyue    时间: 2011-10-26 06:22
标题: 求事件运行刷新的调用函数名……
     else  
      a = Window_Base.new(80,304,480,160)
      a.contents = Bitmap.new(a.width-32, a.height-32)
      a.contents.draw_text(0,0,240,32,"啊哈哈哈哈哈")
      a.opacity = 160
      @wait_count =100
(      for i in  1..30
        Graphics.update
       {event运行的刷新}
      end                          )
      for i in 0..10
        a.opacity -= 30
        a.contents_opacity -= 30
        Graphics.update     
      end
      a.dispose
    end

恩……没了那个刷新的话,假设我有一个并行处理的事件正在运行,当我利用括号内的内容来调节“啊哈哈哈哈哈”的显示时长时,并行处理的事件会暂停……

于是我想,在Graphics.update的同时,也让event一起updata……
问题是我哪知道它的调用函数名是什么……就这个Graphics.update我还是从别的脚本里copy的……恩,物品获得提示的脚本


我只是略学过pascal,有点编程底子……
ruby是昨天才开始接触,因为某个正在做游戏但不会写脚本的女王发下来的任务的关系……勿喷


yeyunfeiyuyue于2011-10-26 06:27补充以下内容:
差点忘了说,要是有能不碍到并行处理的事件,又可以控制哈哈哈哈显示时长的方法也行dsu_plus_rewardpost_czw
作者: 各种压力的猫君    时间: 2011-10-26 08:54
虽然同时面向对象的语言,pascal和ruby区别可是很多的。
另外别以为RGSS就是ruby,区别可是很多的。(众:你烦不烦)
另外只要把父类指定为Scene_Map就可以刷新地图事件了吧(未测试)
作者: yeyunfeiyuyue    时间: 2011-10-27 04:03
各种压力的猫君 发表于 2011-10-26 08:54
虽然同时面向对象的语言,pascal和ruby区别可是很多的。
另外别以为RGSS就是ruby,区别可是很多的。(众: ...

好吧,原来Graphics.update君出自Scene_Map……
不过大体看了一下Scene_Map里的内容……
那里面的update,似乎主要是以调用菜单、地图切换以及地图块过渡为主,不包含事件的处理……
反正我调用里面的东西是不起作用

父类是什么?


yeyunfeiyuyue于2011-10-27 04:15补充以下内容:
我看来看去觉得最理想的调用对象还是Game_Event里的refresh啦……
不过看上去好像只处理一个事件?调用它去一个一个处理每个事件的上一层又不知道在哪……
况且我也不知道这玩意怎么调用


yeyunfeiyuyue于2011-10-27 04:17补充以下内容:
好吧找到了,Game_Map里的updata,各种囊括…………
问题是这丫怎么调用?ruby的函数调用真神奇…………
作者: darkscout3000    时间: 2011-10-27 04:34
本帖最后由 darkscout3000 于 2011-10-26 15:34 编辑
yeyunfeiyuyue 发表于 2011-10-26 15:03
好吧,原来Graphics.update君出自Scene_Map……
不过大体看了一下Scene_Map里的内容……
那里面的update ...


那啥⋯⋯lz你先去学习下面向对象的编程⋯⋯ruby的方法调用一点都不诡异,诡异的是RGSS,是RMXP自带的代码⋯⋯(写的太垃圾了)
作者: yeyunfeiyuyue    时间: 2011-10-27 05:31
    # 更新地圖事件
    for event in @events.values
      event.update
    end
    # 更新公共事件
    for common_event in @common_events.values
      common_event.update
    end

我现在只想知道,values哪弄
作者: wbsy8241    时间: 2011-10-27 23:15
你不能这样写 Graphics.update 会暂停你的世界 通常你这样写只用在过度整个画面


     else  
      a = Window_Base.new(80,304,480,160)
      a.contents = Bitmap.new(a.width-32, a.height-32)
      a.contents.draw_text(0,0,240,32,"啊哈哈哈哈哈")
      a.opacity = 160
      @wait_count =100
(      for i in  1..30
        Graphics.update
       {event运行的刷新}
      end                          )
      for i in 0..10
        a.opacity -= 30
        a.contents_opacity -= 30
        Graphics.update     
      end
      a.dispose

    end

#改为(红色改蓝色)

    else  
      pop
    end

#同类(class)中 新增

def pop
  @a = Window_Base.new(80,304,480,160)
  @a.contents = Bitmap.new(a.width-32, a.height-32)
  @a.contents.draw_text(0,0,240,32,"啊哈哈哈哈哈")
  @a.opacity = 160
  @wait_pop = 30
  @wait_count =100
end

def pop_update
  @wait_pop -= 1
  if @wait_pop < 0
    @a.opacity -= 30
    @a.contents_opacity -= 30
  end
  pop_dispose if @a.opacity == 0
end

def pop_dispose
  @a.dispose
  @a = nil
end

def update
  pop_update if @a != nil  #<=在同类的update里加入这1行
end                        #  如果你的类里没有update
                           #  那需要在调用到这个类的变量的那个类的update里写上:
                           #  调用到这个类的变量.update
                           #  上面最后2句我说不清楚你自己理解



作者: yeyunfeiyuyue    时间: 2011-10-28 06:07
wbsy8241 发表于 2011-10-27 23:15
你不能这样写 Graphics.update 会暂停你的世界 通常你这样写只用在过度整个画面

恩……谢了
程序本身是很不错的参考,更重要的是终于让我注意到了,如果不去Graphics.update,显示内容就会自动消失的理由……
马币的原来我一直都在用临时变量啊!原来ruby也可以设置函数啊!
attr_accessor :cloudy,一句话拯救世界…………
总之,谢了,设置一个wait计数,在每帧刷新中判定,不错的思路啊,收下了……




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