设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1810|回复: 5
打印 上一主题 下一主题

[已经解决] 关于代码的优化

[复制链接]

Lv1.梦旅人

小小的百鬼夜行<

梦石
0
星屑
54
在线时间
579 小时
注册时间
2010-7-29
帖子
2682

贵宾

跳转到指定楼层
1
发表于 2010-8-29 20:13:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
求简化,或者给个并行等待的代码 - - 就是说如果这个脚本中等待,但动画剧情什么的还是继续走 - -
  1. @pic1.visible = true

  2.         2.times{ Graphics.update }

  3.         @pic1.visible =false

  4.         @pic2.visible = true

  5.         2.times{ Graphics.update }

  6.         @pic2.visible = false

  7.         @pic3.visible = true

  8.         2.times{ Graphics.update }

  9.         @pic3.visible =false

  10.         @pic4.visible = true

  11.         2.times{ Graphics.update }

  12.         @pic4.visible =false

  13.         @pic5.visible = true

  14.         2.times{ Graphics.update }

  15.         @pic5.visible =false

  16.         @pic6.visible = true

  17.         2.times{ Graphics.update }

  18.         @pic6.visible =false

  19.         @pic7.visible = true

  20.         2.times{ Graphics.update }

  21.         @pic7.visible =false

  22.         @pic8.visible = true

  23.         2.times{ Graphics.update }

  24.         @pic8.visible =false

  25.         @pic9.visible = true

  26.         2.times{ Graphics.update }

  27.         @pic9.visible = false
复制代码

点评

麻烦说明 - - 我试过ALIAS 不行 - -  发表于 2010-8-29 20:17
用数组和迭代  发表于 2010-8-29 20:16
菜鸟飞呀飞 该用户已被删除
2
发表于 2010-8-29 20:44:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6855
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

3
发表于 2010-8-29 22:45:25 | 只看该作者
这个是像你那样更改不同的 sprite?window? 的 visible

  1. class Abc
  2.   def initialize
  3.     @sprites = []
  4.     for i in 0..9
  5.       sprite = Sprite.new
  6.       sprite.visible = false
  7.       sprite.z = 6000
  8.       sprite.y = 448
  9.       sprite.bitmap = Bitmap.new(640, 32)
  10.       sprite.bitmap.fill_rect(0,0,640,32,Color.new(i*30+15,255,0,(5-i).abs*50+5))
  11.       @sprites.push(sprite)
  12.     end
  13.     @wait_count = 3
  14.     @src_index = 0
  15.     @sprites[@src_index].visible = true
  16.   end
  17.   def update
  18.     @sprites[@src_index].update
  19.     if @wait_count > 0
  20.       @wait_count -= 1
  21.       return
  22.     end
  23.     @sprites[@src_index].visible = false
  24.     @wait_count = 3
  25.     @src_index += 1
  26.     @src_index %= @sprites.size
  27.     @sprites[@src_index].visible = true
  28.     return
  29.   end
  30.   def dispose
  31.     for sprite in @sprites
  32.       sprite.bitmap.dispose
  33.       sprite.dispose
  34.     end
  35.   end
  36. end
  37. class Scene_Map
  38.   alias old_main main
  39.   def main
  40.     @abc = Abc.new
  41.     old_main
  42.     @abc.dispose
  43.   end
  44.   alias old_update update
  45.   def update
  46.     @abc.update
  47.     old_update
  48.   end
  49. end
复制代码
.
.这个是 只使用一个 sprite 不停的改变他的 bitmap

  1. $__logo_jump__.call if $__logo_jump__
  2. class Sprite_Logo < Sprite
  3.   def initialize
  4.     super
  5.     self.x = 512
  6.     self.z = 10000
  7.     self.visible = true
  8.     @bitmaps = Array.new
  9.     for i in 0..9
  10.       r = (5 - i).abs * 50 + 5
  11.       g = 255
  12.       b = 255 - (5 - i).abs * 50 + 5
  13.       a = (5 - i).abs * 50 + 5
  14.       clr = Color.new(r, g, b, a)
  15.       bmp = Bitmap.new(128, 32)
  16.       bmp.font.color = clr
  17.       bmp.font.bold = true
  18.       bmp.draw_text(0, 0, 128, 32, "66RPG", 1)
  19.       @bitmaps.push(bmp)
  20.     end
  21.     @src_index = 0
  22.     self.bitmap = @bitmaps[@src_index]
  23.     @wait_count = 3
  24.   end
  25.   def update
  26.     super
  27.     if @wait_count > 0
  28.       @wait_count -= 1
  29.       return
  30.     end
  31.     @wait_count = 3
  32.     @src_index += 1
  33.     @src_index %= @bitmaps.size
  34.     self.bitmap = @bitmaps[@src_index]
  35.     return
  36.   end
  37.   def dispose
  38.     for bitmap in @bitmaps
  39.       bitmap.dispose
  40.     end
  41.     super
  42.   end
  43. end
  44. module Kernel
  45.   alias old_exit exit
  46.   def exit(*args)
  47.     $logo.dispose
  48.     old_exit(*args)
  49.   end
  50. end
  51. class << Graphics
  52.   alias old_update update
  53.   def update
  54.     old_update
  55.     $logo.update
  56.   end
  57. end
  58. $logo = Sprite_Logo.new
  59. callcc{|$__logo_jump__|}
复制代码
当然啦,这2个脚本其实是一个原理.
我做的是无限的循环.不知道你是不是要的这种动画的效果.
这2个脚本可以同时运行.放到新工程里看看吧.

评分

参与人数 1星屑 +300 收起 理由
六祈 + 300 认可答案

查看全部评分












你知道得太多了

回复 支持 反对

使用道具 举报

Lv5.捕梦者 (管理员)

老黄鸡

梦石
0
星屑
42339
在线时间
7598 小时
注册时间
2009-7-6
帖子
13506

开拓者贵宾

4
发表于 2010-8-30 07:42:36 | 只看该作者
回复 退屈£无聊 的帖子

啊,我脚本里写等待也完全失效……   
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

5
发表于 2010-8-30 07:45:56 | 只看该作者
  1. for i in 0..9
  2.   g = eval("@pic#{i}")
  3.   g.visible = true
  4.   Graphics.update
  5.   Graphics.update
  6.   g.visible = false
  7. end
复制代码
方法有危险,使用需谨慎= =b

评分

参与人数 1星屑 +200 收起 理由
六祈 + 200 eval威武

查看全部评分

菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

Lv1.梦旅人

小小的百鬼夜行<

梦石
0
星屑
54
在线时间
579 小时
注册时间
2010-7-29
帖子
2682

贵宾

6
 楼主| 发表于 2010-8-30 09:13:39 | 只看该作者
我用用看吧
某只PHP/HTML小白鼠→退屈の间


Cause I knew you were trouble when you walked in
So shame is on me now
I flow me to place i ve never been
till you put me down oh
Now Im lying on the cold hard ground
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-14 15:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表