Project1

标题: 请问怎么实现loading。。。。 [打印本页]

作者: lhbadsl    时间: 2008-9-25 10:28
标题: 请问怎么实现loading。。。。
如题。。某个游戏过场动画(用事件做的那种)背景远景图体积非常之大。。。一时间读取不进去,搞得黑屏。现在已经用等待一定帧数的办法,缓解了这个问题,可是当电脑很差劲的时候还是不能完全读取。。。我想象某些游戏那样做个loading。。。。当这个图完全读入的时候就运行下面的事件,而没有完全读取的情况下就不断等待,这个在flash中比较简单,但是在rm中不知道背景图的读取bate数值。。。比较难以实现。。请问有这种参考脚本吗?就是一个参考就可以了,其他的我会自己搞定。
作者: 塑望    时间: 2008-9-25 18:12
貌似这样的事没遇到过....一般都是刷新完才可以进入的....每个地图刷新脚本基本一样..要改...很难....最简单的办法...压缩地图...以及邪恶的等待桢
作者: 浩气青天    时间: 2008-9-25 18:13
貌似没有找到相关脚本额。
作者: 黑鏻    时间: 2008-9-25 23:56
有一个蠢方法....
在公共事件设置
显示图片
…………(中间这部分自己试试吧,就是显示一张LOADING图片,然后显示进度条,尽量弄简单,其实就是用图片的遮挡+图片移动制成进度条的)
图片消失

然后在每个场景(或者说需要的场景)的“场景移动”弄上这个公共事件


如果不好,请54....
作者: 灯笼菜刀王    时间: 2008-9-26 02:09
记得以前看到过方法~~~不过当时觉得没什么实际作用就无视了...

= =,用一个方法试试,就是在场所转移的时候全屏显示一张图片。然后再执行等待桢缓解,最后读取成功执行的时候把这张图片释放掉,应该可以了...

作者: 最後一滴淚    时间: 2008-9-26 02:17
其实就是用图片....加载的...
作者: 殲滅天使·玲    时间: 2008-9-26 02:20
之前回答过类似问题..其实 我说 RM并不是商业游戏..
进入时也不会加载太多的东西..
所以完全没必要弄这种效果,会让玩游戏的人郁闷的.
出现反效果...因为你根本不是真正的在加载数据..只是伪.等待= =
作者: 黑鏻    时间: 2008-9-26 02:21
以下引用殲滅天使·玲于2008-9-25 18:20:29的发言:

之前回答过类似问题..其实 我说 RM并不是商业游戏..
进入时也不会加载太多的东西..
所以完全没必要弄这种效果,会让玩游戏的人郁闷的.
出现反效果...因为你根本不是真正的在加载数据..只是伪.等待= =

说得不错,完全可以不弄...
作者: 灯笼菜刀王    时间: 2008-9-26 02:27
-。-玲儿说得对~~  一些商业游戏都在努力减少LODING时间和次数,为什么我们有条件不LODING却偏要弄一个-.-...

把脑筋用到LODING上还不如想办法先让内存读入图片,然后需要的时候显示不用临时加载用来提高速度或者把图片分解,用障眼法重新组合等比较实在。
作者: lhbadsl    时间: 2008-9-26 03:59
-。-玲儿说得对~~  一些商业游戏都在努力减少LODING时间和次数,为什么我们有条件不LODING却偏要弄一个-.-...

把脑筋用到LODING上还不如想办法先让内存读入图片,然后需要的时候显示不用临时加载用来提高速度或者把图片分解,用障眼法重新组合等比较实在。

这个问题是这样讲,可是有几个地方真的是没有这个东西不行啊。。。。因为读入的图片实在是太大,而脚本又过于复杂。。。如果是没有这个东西的的话那么就会出现有玩家根本看不到某些剧情的问题,如果用障眼法(我的办法就是强行等待。。。不过这个会令到游戏的流程受到影响。。。效果不是非常好)。我的电脑都是不行,其实我只要一个参考,可以做出会跳过的,这样玩家就不会要等了。。。。。我只是想给人一个选择。。。。如果大家有这方面的脚本或者事件做的也可以,给个参考来就可以了。。。不要管它是有多白痴的解决办法,有时候越简单的东西就是越好的。。。。{/cy}
现在最大的问题就是它的读入图片实在是没有办法改变了,因为这个涉及美工,只能从脚本上解决。。。。而我试过轻量化脚本,也是只能解决部分。。。。
而我本身就不想用这个的,如果不是没有办法了。。。。真的不会发这个帖子。。。。哎。。。。{/ll}
作者: 殲滅天使·玲    时间: 2008-9-26 04:05
如果是没有这个东西的的话那么就会出现有玩家根本看不到某些剧情的问题

大可以不必担心这个问题, 如地图没有图片, 你完全可以在进入时黑屏 ,当一切准备就绪了 在让他RGB恢复颜色.
如果有图片, 那么把图片变成黑色 ,当一切准备就绪了 在让他RGB恢复颜色.
如果你只是想要 LOADING这种显示图片的效果的话 ,大可以弄一个循环事件范例而已.
一点也不难

作者: lhbadsl    时间: 2008-9-26 04:09
其实就是要这种的,loading其实就是有智能的循环等待,请问有参考工程吗?谢谢,因为我是真正要用到这个。。。。不是拿来搞的。。之前已经试过了,一大段黑屏,要慢慢的等。。。。才会有图出现。。。。这种一黑到底的问题真是非常不好。。。最惨的是人物基本上都是黑的。。。。根本看不到人就看到对话。。。。。{/gg}这段精心策划的剧情就这样子报废了。。。。。。{/gg}
拎子,还有个问题就是我是事件白痴。。。。请给个工程。。。。不然我不会做啊。。。。不用一定要有loading的就是要智能等待就可以了。。。{/tp}
作者: 殲滅天使·玲    时间: 2008-9-26 22:10
以下引用lhbadsl于2008-9-25 20:09:00的发言:

其实就是要这种的,loading其实就是有智能的循环等待,请问有参考工程吗?谢谢,因为我是真正要用到这个。。。。不是拿来搞的。。之前已经试过了,一大段黑屏,要慢慢的等。。。。才会有图出现。。。。这种一黑到底的问题真是非常不好。。。最惨的是人物基本上都是黑的。。。。根本看不到人就看到对话。。。。。这段精心策划的剧情就这样子报废了。。。。。。
拎子,还有个问题就是我是事件白痴。。。。请给个工程。。。。不然我不会做啊。。。。不用一定要有loading的就是要智能等待就可以了。。。


[本贴由作者于 2008-9-25 20:23:08 最后编辑]


前辈啊..目前还真没有那种类似的脚本出现..
前辈写战斗脚本如此厉害..为什么别的脚本就没有思路来写- -
事件的话,只是达到一种假象...并不能真正解决这个问题...
所以................... - -

我想此种问题..也许不是我们这些脚本初学者们能想到的..
必须要有高手...高手来回答.
可能咱都考虑得太简单了..

作者: 塑望    时间: 2008-9-26 22:16
  1. =begin

  2. NowLonding v0.1

  3. 作者:秀秀

  4. 功能: 实现了场景转换用 NowLonding 画面来读取数据 图片可以自定义

  5.        StartNowLondingTr模块的self.start里面的 随便定义多少张图都可以
  6.       
  7.        别忘记释放= =
  8.       
  9.        默认用了黑色矩形填充

  10. 使用方法:把脚本最下面的 main 一兰里的 Graphics.freeze 注释掉

  11.            否则会因为画面冻结而显示不出标题的 NowLonding 画面

  12. =end

  13. module Graphics
  14. @@ori = method("transition")
  15. def self.transition(*args)
  16.     StartNowLondingTr.stop
  17.     @@ori.call(*args)
  18. end  
  19. end  

  20. module StartNowLondingTr
  21. def self.start
  22.    @start = Thread.new do
  23.      @nowLsprite = Sprite.new
  24.      @nowLbitmap = Bitmap.new(640,480)
  25.      @nowLsprite.bitmap = @nowLbitmap
  26.      @nowLsprite.bitmap.fill_rect(0,0,640,480,Color.new(0,0,0,255))
  27.      @nowLsprite.x = 0
  28.      @nowLsprite.y = 0
  29.      @nowLsprite.z = 99999999
  30.      @nowLsprite.visible = true
  31.      @nowLsprite.bitmap.draw_text(400,420,200,60,"NOW LONDING...")
  32.      loop do
  33.        sleep 0.001
  34.        Graphics.update
  35.      end
  36.    end
  37. end
  38. def self.stop
  39.    @start.exit
  40.    @nowLsprite.dispose
  41.    @nowLsprite.bitmap.dispose
  42. end
  43. end

  44. class Class
  45. alias ori_new new
  46. def new(*args)
  47.    if self.method_defined? :main
  48.      StartNowLondingTr.start
  49.      @obj =  ori_new(*args)
  50.      return @obj
  51.    else
  52.      return ori_new(*args)
  53.    end
  54. end
  55. end
复制代码

这个是脚本..试试..是秀秀写的 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 浩气青天    时间: 2008-9-26 22:33
可参考此帖:http://rpg.blue/viewthread.php?tid=104649有详细的说明。 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: lhbadsl    时间: 2008-9-27 10:30
这个是脚本..试试..是秀秀写的  
可参考此帖:http://rpg.blue/viewthread.php?tid=104649有详细的说明。

不错不错。。。。我试试看。。。太感谢了。。。。。。。这可省了我想的时间啊。。。分一人一半吧,本来想加分的,没想到在加分前就有回答了,还是省省吧,俺的分数也不多啊。。。。{/cy}
作者: 浩气青天    时间: 2008-9-27 15:33
呵呵,解决了就好。




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