查看: 1469|回复: 6

[已经解决] 求事件运行刷新的调用函数名……

  [复制链接]
梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-1-11
回帖
13
发表于 2011-10-26 06:22:04 | 显示全部楼层 |阅读模式

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

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

×
     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补充以下内容:
差点忘了说,要是有能不碍到并行处理的事件,又可以控制哈哈哈哈显示时长的方法也行

(?????)

梦石
0
星屑
872
在线时间
1327 小时
注册时间
2011-7-18
回帖
3036

贵宾

发表于 2011-10-26 08:54:28 | 显示全部楼层
虽然同时面向对象的语言,pascal和ruby区别可是很多的。
另外别以为RGSS就是ruby,区别可是很多的。(众:你烦不烦)
另外只要把父类指定为Scene_Map就可以刷新地图事件了吧(未测试)
回复

使用道具 举报

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-1-11
回帖
13
 楼主| 发表于 2011-10-27 04:03:24 | 显示全部楼层
各种压力的猫君 发表于 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的函数调用真神奇…………
回复

使用道具 举报

梦石
0
星屑
270
在线时间
227 小时
注册时间
2009-7-26
回帖
207
发表于 2011-10-27 04:34:23 | 显示全部楼层
本帖最后由 darkscout3000 于 2011-10-26 15:34 编辑
yeyunfeiyuyue 发表于 2011-10-26 15:03
好吧,原来Graphics.update君出自Scene_Map……
不过大体看了一下Scene_Map里的内容……
那里面的update ...


那啥⋯⋯lz你先去学习下面向对象的编程⋯⋯ruby的方法调用一点都不诡异,诡异的是RGSS,是RMXP自带的代码⋯⋯(写的太垃圾了)
不要吐槽我⋯⋯
回复

使用道具 举报

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-1-11
回帖
13
 楼主| 发表于 2011-10-27 05:31:56 | 显示全部楼层
    # 更新地圖事件
    for event in @events.values
      event.update
    end
    # 更新公共事件
    for common_event in @common_events.values
      common_event.update
    end

我现在只想知道,values哪弄
回复

使用道具 举报

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
回帖
550
发表于 2011-10-27 23:15:40 | 显示全部楼层
你不能这样写 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句我说不清楚你自己理解


回复

使用道具 举报

梦石
0
星屑
50
在线时间
15 小时
注册时间
2011-1-11
回帖
13
 楼主| 发表于 2011-10-28 06:07:31 | 显示全部楼层
wbsy8241 发表于 2011-10-27 23:15
你不能这样写 Graphics.update 会暂停你的世界 通常你这样写只用在过度整个画面

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

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部