Project1

标题: 如何用脚本刷图做动画?(Graphics.update问题) [打印本页]

作者: kuerlulu    时间: 2013-9-18 17:59
标题: 如何用脚本刷图做动画?(Graphics.update问题)
本帖最后由 myownroc 于 2013-9-18 20:41 编辑

如题?
一个简单的刷图脚本 第5行
  1. [url=home.php?mod=space&uid=114926]@sprite[/url] = Sprite.new
  2. for i in 1..200
  3.   #省略数行定义
  4.   @sprite.bitmap = RPG::Cache.gameover("路径です" + @i.to_s)
  5.   Graphics.update
  6.   #省略数行关于后期完善
  7. end
复制代码
可是如果用这个脚本做成方法就必须拿它替换原来的Graphics.update,不然就会刷出第一张图然后不动。
求有什么好的方法,比如系统本身的[动画]是怎么播放的。  
作者: satgo1546    时间: 2013-9-18 18:01
用Graphics.update是极其偷懒的做法,正确的方法是用帧数控制+自带脚本的Graphics.update。
作者: kuerlulu    时间: 2013-9-18 18:04
satgo1546 发表于 2013-9-18 18:01
用Graphics.update是极其偷懒的做法,正确的方法是用帧数控制+自带脚本的Graphics.update。 ...

教!!
话说沙发君你真手快诶..
作者: kuerlulu    时间: 2013-9-18 18:32
@satgo1546 还是不会!!!!!
作者: 无脑之人    时间: 2013-9-18 19:08
你确定@sprite都不需要update的么?
另外刷新怎么能没有循环?
总而言之在下的看法是把update插进原来的循环中
作者: kuerlulu    时间: 2013-9-18 20:38
无脑之人 发表于 2013-9-18 19:08
你确定@sprite都不需要update的么?
另外刷新怎么能没有循环?
总而言之在下的看法是把update插进原来的循 ...

loop do
  1. #省略前段Spirit实例化和初始化@i
  2. loop do
  3.   @sprite.bitmap = BALABALABALA...
  4.   @i += 1
  5.   Graphics.update
  6.   @sprite.update
  7.   #继续省略后段完善
  8. end
复制代码
那么这样做仍然是一样的
作者: 无脑之人    时间: 2013-9-18 21:10
0.循环那句我收回……最近有点眼花了……
1.请说清楚您在哪里调用并出现了什么样的状况
2.如果是直接在顶部调用的话……请检查BALABALA……
3.在下的示例:
  1. @sprite=Sprite.new
  2. for i in 0...200
  3.   @sprite.bitmap = Cache.back("Cm#{i%5+1}") #当做正常的Bitmap即可
  4.   Graphics.update
  5.   @sprite.update
  6. end
复制代码
最终非常完美的在换图
作者: kuerlulu    时间: 2013-9-18 21:30
本帖最后由 kuerlulu 于 2013-9-18 21:33 编辑

@无脑之人 我把原来的脚本删掉然后用你那段成功了,看来是BALABALABALA的问题,嘛不过可以用真是太好了。
  1. def WDT(top="badapple20/", first=10, last=2610)
  2.   @sprite=Sprite.new
  3.   for i in first..last
  4.     @sprite.bitmap = RPG::Cache.gameover(top + i.to_s)
  5.     Graphics.update
  6.     @sprite.update
  7.   end
  8. end
复制代码
以上是阉割版本,运行时其它活动块会暂停= =b(不过这方面内容还是放后面考虑吧),这个方法看起来非常有用
配合Graphics.frame_rate的话基本上能调出同步率了
感谢无脑大神】这啥。。多次见了




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