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

Project1

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

[已经解决] 求该脚本的优化

[复制链接]

Lv1.梦旅人

梦石
0
星屑
49
在线时间
177 小时
注册时间
2011-7-3
帖子
235
跳转到指定楼层
1
发表于 2012-8-17 12:05:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 TheRebirth 于 2012-8-18 19:04 编辑

优化前弊病:进入画质设置(标题画面中第三个选项(此时$index = 2))界面时FPS会明显降低
Ex:为防止剽窃,图像素材和音乐素材都未放出

  1. class Scene_Title < Scene_Base
  2.   
  3.   def start
  4.     @sprite1 = TitleSprite1.new
  5.     @sprite2 = TitleSprite2.new
  6.     $index = 0
  7.   end
  8.   
  9.   def update
  10.     if $switch == 1
  11.       @sprite3 = TitleSprite3.new
  12.       @sprite32 = TitleSprite32.new
  13.       @sprite4 = TitleSprite4.new
  14.       @sprite5 = TitleSprite5.new
  15.       @sprite6 = TitleSprite6.new
  16.       @sprite7 = TitleSprite7.new
  17.       @sprite8 = TitleSprite8.new
  18.       @sprite9 = TitleSprite9.new
  19.       @sprite10 = TitleSprite10.new
  20.       @sprite10.x = 500
  21.       @sprite10.y = 120
  22.       $switch = 4
  23.       Audio.bgm_play("Audio/BGM/Title.ogg") #LOOP;START=6027890;LENGTH=6027310
  24.     elsif $switch == 4
  25.       @sprite3.update
  26.       @sprite32.update
  27.       @sprite4.update
  28.       @sprite5.update
  29.       @sprite6.update
  30.       @sprite7.update
  31.       @sprite8.update
  32.       @sprite9.update
  33.       @sprite10.update if @sprite6.opacity == 255
  34.       if Input.trigger?(Input::UP)
  35.         Audio.se_play("Audio/SE/Switch.ogg", 100, 100)
  36.         $index -= 1
  37.         $index = 3 if $index < 0
  38.         case $index
  39.         when 0
  40.           @sprite10.x = 500
  41.           @sprite10.y = 120
  42.         when 1
  43.           @sprite10.x = 475
  44.           @sprite10.y = 170
  45.         when 2
  46.           @sprite10.x = 450
  47.           @sprite10.y = 220
  48.         when 3
  49.           @sprite10.x = 425
  50.           @sprite10.y = 270
  51.         end
  52.       elsif Input.trigger?(Input::DOWN)
  53.         Audio.se_play("Audio/SE/Switch.ogg", 100, 100)
  54.         $index += 1
  55.         $index = 0 if $index > 3
  56.         case $index
  57.         when 0
  58.           @sprite10.x = 500
  59.           @sprite10.y = 120
  60.         when 1
  61.           @sprite10.x = 475
  62.           @sprite10.y = 170
  63.         when 2
  64.           @sprite10.x = 450
  65.           @sprite10.y = 220
  66.         when 3
  67.           @sprite10.x = 425
  68.           @sprite10.y = 270
  69.         end
  70.       elsif Input.trigger?(Input::C)
  71.         case $index
  72.         when 0
  73.           $switch = 6
  74.           @sprite10.opacity = 0
  75.           @sprite13 = TitleSprite13.new
  76.           $index2 = 0
  77.           $page = 1
  78.           @sprite12 = TitleSprite12.new
  79.           @sprite12.x = 48
  80.           @sprite12.y = 115
  81.         when 1
  82.           $switch = 7
  83.           @sprite10.opacity = 0
  84.           @sprite13 = TitleSprite13.new
  85.           $index2 = 0
  86.           $page = 1
  87.           @sprite12 = TitleSprite12.new
  88.           @sprite12.x = 48
  89.           @sprite12.y = 115
  90.         when 2
  91.           @sprite10.opacity = 0
  92.           $index3 = 0
  93.           @time = 0
  94.           @sprite6.vx = 0
  95.           @sprite7.vx = 0
  96.           @sprite8.vx = 0
  97.           @sprite9.vx = 0
  98.           for i in 0...64
  99.             @time += 1
  100.             Graphics.wait(1)
  101.             @sprite4.x -= 1 if @sprite4.opacity != 0
  102.             @sprite5.x += 3 if @sprite4.opacity != 0
  103.             @sprite6.vx += 4 if @sprite6.opacity != 0
  104.             @sprite7.vx += 4 if @sprite7.opacity != 0
  105.             @sprite8.vx += 4 if @sprite8.opacity != 0
  106.             @sprite9.vx += 4 if @sprite9.opacity != 0
  107.             @sprite3.opacity -= 8
  108.             @sprite4.opacity -= 8
  109.             @sprite5.opacity -= 8
  110.             @sprite6.opacity -= 8
  111.             @sprite7.opacity -= 8
  112.             @sprite8.opacity -= 8
  113.             @sprite9.opacity -= 8
  114.             @sprite32.opacity -= 4
  115.             if @time == 64
  116.               @sprite4.dispose
  117.               @sprite5.dispose
  118.               @sprite12 = TitleSprite12.new
  119.               @sprite12.zoom_y = 0.90
  120.               @sprite14 = TitleSprite14.new
  121.               @sprite15 = TitleSprite15.new
  122.               @sprite16 = TitleSprite16.new
  123.               @sprite12.x = 94
  124.               @sprite12.y = 144
  125.               $switch = 8
  126.             end
  127.           end
  128.         when 3
  129.           @sprite10.opacity = 0
  130.           Audio.bgm_fade(750)
  131.           @sprite6.vx = 0
  132.           @sprite7.vx = 0
  133.           @sprite8.vx = 0
  134.           @sprite9.vx = 0
  135.           @sprite6.sx = @sprite6.x << 5
  136.           @sprite7.sx = @sprite7.x << 5
  137.           @sprite8.sx = @sprite8.x << 5
  138.           @sprite9.sx = @sprite9.x << 5
  139.           $switch = 999
  140.           loop do
  141.             Graphics.wait(1)
  142.             @sprite6.update
  143.             @sprite7.update
  144.             @sprite8.update
  145.             @sprite9.update
  146.             @sprite4.x -= 1
  147.             @sprite5.x += 2
  148.             @sprite6.vx += 2
  149.             @sprite7.vx += 2
  150.             @sprite8.vx += 2
  151.             @sprite9.vx += 2
  152.             @sprite32.opacity -= 8
  153.             @sprite4.opacity -= 8
  154.             @sprite5.opacity -= 8
  155.             @sprite6.opacity -= 8
  156.             @sprite7.opacity -= 8
  157.             @sprite8.opacity -= 8
  158.             @sprite9.opacity -= 8
  159.             exit if @sprite6.opacity == 0
  160.           end
  161.         end
  162.       end
  163.     elsif $switch == 6
  164.       @sprite13.update
  165.       @sprite12.update if @sprite13.opacity == 255
  166.       @sprite12.x = 45
  167.       @sprite12.y = 112 + $index2 * 30
  168.       if Input.repeat?(Input::UP)
  169.         $index2 -= 1
  170.         $index2 = 0 if $index2 > 9
  171.         $index2 = 9 if $index2 < 0
  172.       elsif Input.repeat?(Input::DOWN)
  173.         $index2 += 1
  174.         $index2 = 0 if $index2 > 9
  175.         $index2 = 9 if $index2 < 0
  176.       elsif Input.trigger?(Input::LEFT)
  177.         $page -= 1
  178.         $page = 2 if $page < 1
  179.         @sprite13.bitmap = Cache.load_bitmap("Title#{3+$page}-2")
  180.       elsif Input.repeat?(Input::RIGHT)
  181.         $page += 1
  182.         $page = 1 if $page > 2
  183.         @sprite13.bitmap = Cache.load_bitmap("Title#{3+$page}-2")
  184.       elsif Input.repeat?(Input::C)
  185.         if $page == 1
  186.           case $index2
  187.           when 0
  188.           when 1
  189.           when 2
  190.           when 3
  191.           when 4
  192.           when 5
  193.           when 6
  194.           when 7
  195.           when 8
  196.           when 9
  197.           end
  198.         elsif $page == 2
  199.           case $index2
  200.           when 0
  201.           when 1
  202.           when 2
  203.           when 3
  204.           when 4
  205.           when 5
  206.           when 6
  207.           when 7
  208.           when 8
  209.           when 9
  210.             @sprite12.dispose
  211.             @sprite13.dispose
  212.             @sprite10.x = 500
  213.             @sprite10.y = 120
  214.             $index = 0
  215.             $index2 = 0
  216.             $switch = 4
  217.             GC.start
  218.           end
  219.         end
  220.       end
  221.     elsif $switch == 7
  222.       @sprite13.update
  223.       @sprite12.update if @sprite13.opacity == 255
  224.       @sprite12.x = 45
  225.       @sprite12.y = 112 + $index2 * 30
  226.       if Input.repeat?(Input::UP)
  227.         $index2 -= 1
  228.         $index2 = 0 if $index2 > 9
  229.         $index2 = 9 if $index2 < 0
  230.       elsif Input.repeat?(Input::DOWN)
  231.         $index2 += 1
  232.         $index2 = 0 if $index2 > 9
  233.         $index2 = 9 if $index2 < 0
  234.       elsif Input.trigger?(Input::LEFT)
  235.         $page -= 1
  236.         $page = 2 if $page < 1
  237.         @sprite13.bitmap = Cache.load_bitmap("Title#{3+$page}")
  238.       elsif Input.repeat?(Input::RIGHT)
  239.         $page += 1
  240.         $page = 1 if $page > 2
  241.         @sprite13.bitmap = Cache.load_bitmap("Title#{3+$page}")
  242.       elsif Input.repeat?(Input::C)
  243.         if $page == 1
  244.           case $index2
  245.           when 0
  246.           when 1
  247.           when 2
  248.           when 3
  249.           when 4
  250.           when 5
  251.           when 6
  252.           when 7
  253.           when 8
  254.           when 9
  255.           end
  256.         elsif $page == 2
  257.           case $index2
  258.           when 0
  259.           when 1
  260.           when 2
  261.           when 3
  262.           when 4
  263.           when 5
  264.           when 6
  265.           when 7
  266.           when 8
  267.           when 9
  268.             @sprite12.dispose
  269.             @sprite13.dispose
  270.             @sprite10.x = 500
  271.             @sprite10.y = 170
  272.             $index = 1
  273.             $index2 = 0
  274.             $switch = 4
  275.             GC.start
  276.           end
  277.         end
  278.       end
  279.     elsif $switch == 8
  280.       @sprite14.update
  281.       @sprite12.update if @sprite16.opacity == 255
  282.       @sprite15.update if @sprite14.opacity == 255
  283.       @sprite16.update if @sprite14.opacity == 255
  284.       if @sprite16.opacity == 255
  285.         if Input.repeat?(Input::UP)
  286.           $index3 -= 1
  287.           $index3 = 6 if $index3 < 0
  288.           case $index3
  289.           when 0
  290.             @sprite12.x = 94
  291.             @sprite12.y = 144
  292.             @sprite12.zoom_y = 0.90
  293.           when 1
  294.             @sprite12.y = 176
  295.             @sprite12.zoom_y = 0.90
  296.           when 2
  297.             @sprite12.y = 208
  298.             @sprite12.zoom_y = 0.70
  299.           when 3
  300.             @sprite12.y = 232
  301.             @sprite12.zoom_y = 0.70
  302.           when 4
  303.             @sprite12.y = 256
  304.             @sprite12.zoom_y = 0.70
  305.           when 5
  306.             @sprite12.y = 280
  307.             @sprite12.zoom_y = 0.70
  308.           when 6
  309.             @sprite12.x = 80
  310.             @sprite12.y = 330
  311.             @sprite12.zoom_y = 1.50
  312.           end
  313.         elsif Input.repeat?(Input::DOWN)
  314.           $index3 += 1
  315.           $index3 = 0 if $index3 > 6
  316.           case $index3
  317.           when 0
  318.             @sprite12.x = 94
  319.             @sprite12.y = 144
  320.             @sprite12.zoom_y = 0.90
  321.           when 1
  322.             @sprite12.y = 176
  323.             @sprite12.zoom_y = 0.90
  324.           when 2
  325.             @sprite12.y = 208
  326.             @sprite12.zoom_y = 0.70
  327.           when 3
  328.             @sprite12.y = 232
  329.             @sprite12.zoom_y = 0.70
  330.           when 4
  331.             @sprite12.y = 256
  332.             @sprite12.zoom_y = 0.70
  333.           when 5
  334.             @sprite12.y = 280
  335.             @sprite12.zoom_y = 0.70
  336.           when 6
  337.             @sprite12.x = 80
  338.             @sprite12.y = 330
  339.             @sprite12.zoom_y = 1.50
  340.           end
  341.         elsif Input.trigger?(Input::LEFT)
  342.         elsif Input.trigger?(Input::RIGHT)
  343.         elsif Input.trigger?(Input::C)
  344.           case $index3
  345.           when 0
  346.           when 1
  347.           when 2
  348.           when 3
  349.           when 4
  350.           when 5
  351.           when 6
  352.             $switch = 81
  353.             @sprite12.dispose
  354.             @time = 0
  355.           end
  356.         end
  357.       end
  358.     elsif $switch == 81
  359.       @sprite15.update
  360.       @sprite16.update
  361.       @time += 1
  362.       @sprite15.x -= 2 if @sprite15.opacity != 0
  363.       @sprite15.opacity -= 8
  364.       @sprite16.opacity -= 8
  365.       if @time == 64
  366.         $switch = 82
  367.       end
  368.     elsif $switch == 82
  369.       @sprite14.update
  370.       @sprite14.opacity -= 8
  371.       if @sprite14.opacity == 0
  372.         $index = 2
  373.         @sprite6.vx = -128
  374.         @sprite7.vx = -128
  375.         @sprite8.vx = -128
  376.         @sprite9.vx = -128
  377.         @sprite6.x = 628
  378.         @sprite7.x = 603
  379.         @sprite8.x = 578
  380.         @sprite9.x = 553
  381.         @sprite6.sx = @sprite6.x << 5
  382.         @sprite7.sx = @sprite7.x << 5
  383.         @sprite8.sx = @sprite8.x << 5
  384.         @sprite9.sx = @sprite9.x << 5
  385.         $switch = 83
  386.         @sprite14.dispose
  387.         @sprite4 = TitleSprite4.new
  388.         @sprite5 = TitleSprite5.new
  389.       end
  390.     elsif $switch == 83
  391.       @sprite3.update
  392.       @sprite4.update
  393.       @sprite5.update
  394.       @sprite6.update
  395.       @sprite7.update
  396.       @sprite8.update
  397.       @sprite9.update
  398.       @sprite4.x += 1
  399.       @sprite5.x -= 1
  400.       @sprite6.vx += 2
  401.       @sprite7.vx += 2
  402.       @sprite8.vx += 2
  403.       @sprite9.vx += 2
  404.       @sprite3.opacity += 4
  405.       @sprite32.opacity += 1
  406.       @sprite6.opacity += 4
  407.       @sprite7.opacity += 4
  408.       @sprite8.opacity += 4
  409.       @sprite9.opacity += 4
  410.       if @sprite9.opacity == 255
  411.         $switch = 4
  412.         GC.start
  413.       end
  414.     else
  415.       @sprite1.update
  416.       @sprite2.update
  417.     end
  418.   end
  419.   
  420. end
复制代码

  1. class TitleSprite1 < Sprite
  2.   
  3.   def initialize
  4.     super(nil)
  5.     self.bitmap = Cache.load_bitmap("Logo1")
  6.     self.ox = 64
  7.     self.oy = 64
  8.     self.x = 320
  9.     self.y = 240
  10.     self.z = 1
  11.     self.opacity = 0
  12.     @time = 0
  13.   end
  14.   
  15.   def update
  16.     if not disposed?
  17.       self.opacity += 2 if self.opacity < 255 and @time <= 240
  18.       self.angle -= 3
  19.       @time += 1
  20.       if @time > 240
  21.         self.opacity -= 8 if self.opacity > 0
  22.         dispose if self.opacity <= 0
  23.       end
  24.     end
  25.   end
  26.   
  27. end

  28. class TitleSprite2 < Sprite
  29.   
  30.   def initialize
  31.     super(nil)
  32.     self.bitmap = Cache.load_bitmap("Logo2")
  33.     self.ox = 200
  34.     self.oy = 64
  35.     self.x = 320
  36.     self.y = 240
  37.     self.z = 2
  38.     self.opacity = 0
  39.     @time = 0
  40.   end
  41.   
  42.   def update
  43.     self.opacity += 3 if self.opacity < 255 and @time <= 240
  44.     @time += 1
  45.     if @time > 240
  46.       self.opacity -= 3 if self.opacity > 0
  47.       $switch = 1 if self.opacity <= 0
  48.       dispose if self.opacity <= 0
  49.     end
  50.   end
  51.   
  52. end

  53. class TitleSprite3 < Sprite
  54.   
  55.   def initialize
  56.     super(nil)
  57.     self.bitmap = Cache.load_bitmap("Title1.jpg")
  58.     self.x = 0
  59.     self.y = 0
  60.     self.z = 1
  61.     self.opacity = 0
  62.   end
  63.   
  64.   def update
  65.     super
  66.     self.opacity += 3 if self.opacity < 255
  67.   end
  68.   
  69. end

  70. class TitleSprite32 < Sprite
  71.   
  72.   def initialize
  73.     super(nil)
  74.     self.bitmap = Cache.load_bitmap("Title1-2.png")
  75.     self.x = 0
  76.     self.y = 0
  77.     self.z = 2
  78.     self.opacity = 0
  79.     @time = 0
  80.   end
  81.   
  82.   def update
  83.     super
  84.     @time += 1
  85.     @time = 0 if @time > 360
  86.     self.opacity += 2 if self.opacity < 96 and @time < 330
  87.     if @time < 360 and @time > 330
  88.       self.x = rand(64) - 32
  89.       self.opacity = rand(48) + 48
  90.     elsif @time == 0
  91.       self.x = 0
  92.     end
  93.   end
  94.   
  95. end

  96. class TitleSprite4 < Sprite
  97.   
  98.   def initialize
  99.     super(nil)
  100.     self.bitmap = Cache.load_bitmap("Title2.png")
  101.     self.x = -128
  102.     self.y = 0
  103.     self.z = 5
  104.     self.opacity = 0
  105.     @sx = self.x << 4
  106.     @vx = 128
  107.   end
  108.   
  109.   def update
  110.     @sx += @vx if @vx > 0
  111.     @vx -= 4 if @vx > 0
  112.     self.x = @sx >> 4
  113.     self.opacity += 3 if self.opacity < 255
  114.   end
  115.   
  116. end

  117. class TitleSprite5 < Sprite
  118.   
  119.   def initialize
  120.     super(nil)
  121.     self.bitmap = Cache.load_bitmap("Title3.png")
  122.     self.ox = 320
  123.     self.oy = 240
  124.     self.x = 380
  125.     self.y = 240
  126.     self.z = 3
  127.     self.opacity = 0
  128.   end
  129.   
  130.   def update
  131.     self.opacity += 4 if self.opacity < 255
  132.     self.x -= 1 if self.x > 320
  133.   end
  134.   
  135. end

  136. class TitleSprite6 < Sprite
  137.   
  138.   attr_accessor :vx
  139.   attr_accessor :sx
  140.   
  141.   def initialize
  142.     super(nil)
  143.     self.bitmap = Cache.load_bitmap("TitleSet1")
  144.     self.ox = 128
  145.     self.oy = 24
  146.     self.x = 628
  147.     self.y = 120
  148.     self.z = 3
  149.     self.opacity = 0
  150.     @sx = self.x << 5
  151.     @vx = -128
  152.   end
  153.   
  154.   def update
  155.     if self.opacity < 255 and $switch < 10
  156.       @sx += @vx
  157.       self.x = @sx >> 5
  158.       self.opacity += 4
  159.       @vx += 2
  160.     elsif self.opacity < 255 and $switch >= 5
  161.       @sx += @vx
  162.       self.x = @sx >> 5
  163.     elsif $switch == 999
  164.       @sx += @vx
  165.       self.x = @sx >> 5
  166.       self.opacity -= 8
  167.     end
  168.   end
  169.   
  170. end

  171. class TitleSprite7 < Sprite
  172.   
  173.   attr_accessor :vx
  174.   attr_accessor :sx
  175.   
  176.   def initialize
  177.     super(nil)
  178.     self.bitmap = Cache.load_bitmap("TitleSet2")
  179.     self.ox = 128
  180.     self.oy = 24
  181.     self.z = 3
  182.     self.x = 603
  183.     self.y = 170
  184.     self.opacity = 0
  185.     @sx = self.x << 5
  186.     @vx = -128
  187.   end
  188.   
  189.   def update
  190.     if self.opacity < 255 and $switch < 10
  191.       @sx += @vx
  192.       self.x = @sx >> 5
  193.       self.opacity += 4
  194.       @vx += 2
  195.     elsif self.opacity < 255 and $switch >= 5
  196.       @sx += @vx
  197.       self.x = @sx >> 5
  198.     elsif $switch == 999
  199.       @sx += @vx
  200.       self.x = @sx >> 5
  201.       self.opacity -= 8
  202.     end
  203.   end
  204.   
  205. end

  206. class TitleSprite8 < Sprite
  207.   
  208.   attr_accessor :vx
  209.   attr_accessor :sx
  210.   
  211.   def initialize
  212.     super(nil)
  213.     self.bitmap = Cache.load_bitmap("TitleSet3")
  214.     self.ox = 128
  215.     self.oy = 24
  216.     self.z = 3
  217.     self.x = 578
  218.     self.y = 220
  219.     self.opacity = 0
  220.     @sx = self.x << 5
  221.     @vx = -128
  222.   end
  223.   
  224.   def update
  225.     if self.opacity < 255 and $switch < 10
  226.       @sx += @vx
  227.       self.x = @sx >> 5
  228.       self.opacity += 4
  229.       @vx += 2
  230.     elsif self.opacity < 255 and $switch >= 5
  231.       @sx += @vx
  232.       self.x = @sx >> 5
  233.     elsif $switch == 999
  234.       @sx += @vx
  235.       self.x = @sx >> 5
  236.       self.opacity -= 8
  237.     end
  238.   end
  239.   
  240. end

  241. class TitleSprite9 < Sprite
  242.   
  243.   attr_accessor :vx
  244.   attr_accessor :sx
  245.   
  246.   def initialize
  247.     super(nil)
  248.     self.bitmap = Cache.load_bitmap("TitleSet4")
  249.     self.ox = 128
  250.     self.oy = 24
  251.     self.x = 553
  252.     self.y = 270
  253.     self.z = 3
  254.     self.opacity = 0
  255.     @sx = self.x << 5
  256.     @vx = -128
  257.   end
  258.   
  259.   def update
  260.     if self.opacity < 255 and $switch < 5
  261.       @sx += @vx
  262.       self.x = @sx >> 5
  263.       self.opacity += 4
  264.       @vx += 2
  265.     elsif self.opacity < 255 and $switch >= 5
  266.       @sx += @vx
  267.       self.x = @sx >> 5
  268.     elsif $switch == 999
  269.       @sx += @vx
  270.       self.x = @sx >> 5
  271.       self.opacity -= 8
  272.     end
  273.   end
  274.   
  275. end

  276. class TitleSprite10 < Sprite
  277.   
  278.   def initialize
  279.     super(nil)
  280.     self.bitmap = Cache.load_bitmap("Selection1")
  281.     self.ox = 96
  282.     self.oy = 24
  283.     self.x = 0
  284.     self.y = 0
  285.     self.opacity = 0
  286.     self.z = 4
  287.     @time = 0
  288.   end
  289.   
  290.   def update
  291.     @time += 3
  292.     @time = 0 if @time > 180
  293.     if $switch % 4 == 0
  294.       self.opacity = (@time - 90.00).abs / 90.00 * 255.00
  295.     end
  296.   end
  297.   
  298. end

  299. class TitleSprite11 < Sprite
  300.   
  301.   def initialize
  302.     super(nil)
  303.     self.bitmap = Cache.load_bitmap("LoadSign")
  304.     self.ox = 168
  305.     self.oy = 60
  306.     self.x = 640
  307.     self.y = 480
  308.     self.opacity = 0
  309.   end
  310.   
  311.   def update
  312.   end
  313.   
  314. end

  315. class TitleSprite12 < Sprite
  316.   
  317.   def initialize
  318.     super(nil)
  319.     self.bitmap = Cache.load_bitmap("Selection2")
  320.     self.x = 0
  321.     self.y = 0
  322.     self.opacity = 0
  323.     self.z = 12
  324.     @time = 0
  325.   end
  326.   
  327.   def update
  328.     @time += 1
  329.     @time = 0 if @time > 60
  330.     self.opacity = (@time - 30.00).abs / 30.00 * 255.00
  331.   end
  332.   
  333. end

  334. class TitleSprite13 < Sprite
  335.   
  336.   def initialize
  337.     super(nil)
  338.     if $switch == 6
  339.       self.bitmap = Cache.load_bitmap("Title4-2")
  340.     else
  341.       self.bitmap = Cache.load_bitmap("Title4")
  342.     end
  343.     self.x = 0
  344.     self.y = 0
  345.     self.z = 11
  346.     self.opacity = 0
  347.     self.blend_type = 0
  348.   end
  349.   
  350.   def update
  351.     self.opacity += 8 if self.opacity < 255
  352.   end
  353.   
  354. end

  355. class TitleSprite14 < Sprite
  356.   
  357.   def initialize
  358.     super(nil)
  359.     self.bitmap = Cache.load_bitmap("Title6")
  360.     self.x = 0
  361.     self.y = 0
  362.     self.z = 11
  363.     self.opacity = 0
  364.   end
  365.   
  366.   def update
  367.     self.opacity += 4 if self.opacity < 255 and $switch == 8
  368.   end
  369.   
  370. end


  371. class TitleSprite15 < Sprite
  372.   
  373.   def initialize
  374.     super(nil)
  375.     self.bitmap = Cache.load_bitmap("Title7")
  376.     self.x = -128
  377.     self.y = 0
  378.     self.z = 12
  379.     self.opacity = 0
  380.     @sx = self.x << 4
  381.     @vx = 64
  382.   end
  383.   
  384.   def update
  385.     if self.opacity < 255
  386.       @sx += @vx
  387.       @vx -= 1
  388.       self.opacity += 4
  389.     end
  390.     self.x = @sx >> 4
  391.   end
  392.   
  393. end


  394. class TitleSprite16 < Sprite
  395.   
  396.   def initialize
  397.     super(nil)
  398.     self.bitmap = Cache.load_bitmap("Title8")
  399.     self.x = 0
  400.     self.y = 0
  401.     self.z = 13
  402.     self.opacity = 0
  403.   end
  404.   
  405.   def update
  406.     self.opacity += 4 if self.opacity < 255 and $switch == 8
  407.   end
  408.   
  409. end

  410. class TitleSprite < Sprite
  411.   
  412.   def initialize
  413.     super(nil)
  414.   end
  415.   
  416.   def update
  417.   end
  418.   
  419. end
复制代码

点评

还有多处错误。。。load_bitmap的方法用错了。。还有folder_name  发表于 2012-8-17 13:00
除了精灵比较多以外。。我看不出其他特别的。。。  发表于 2012-8-17 12:59
这脚本是做什么用的啊?一个注释都没有呢?  发表于 2012-8-17 12:14

Lv1.梦旅人

梦石
0
星屑
50
在线时间
148 小时
注册时间
2012-7-2
帖子
157
2
发表于 2012-8-17 13:20:53 | 只看该作者
本帖最后由 limaolinghu 于 2012-8-17 13:23 编辑

1个建议,update函数太长了,最好分几个函数写
2个建议,变量名称毫无意义啊,都是1,2,3,4结尾,也没有注释,这个以后自己再看得时候也会很痛苦的。

另外,update里面和重绘的时候,能不做的属性赋值就不做,可以记录下之前的sprite状态,如果一致就不设置属性,频繁设置属性,也会减少fps

评分

参与人数 1星屑 +120 收起 理由
Luciffer + 120 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

百合乡の蕾咪

梦石
0
星屑
55
在线时间
151 小时
注册时间
2011-1-12
帖子
198
3
发表于 2012-8-17 13:58:03 | 只看该作者
一堆毫无意义的类, 其实都是可以合并在一起的.

然后是合并之后其实可以去掉一些全局变量.

请尽量不要在 Update 里初始化一个类. 这个函数每帧调用一次, 而且在初始化之前或者在函数调用之后都会隐式的先释放这个类然后才初始化.


TitleSprite 这个只定义然后没有使用到. 不知道到底是做啥的?


最后就是, 这脚本到底是做什么的啊, 想修改都难.

点评

大小姐贵安,不去修复一下称号吗?XD  发表于 2012-8-17 22:08
TitleSprite 这个类其实纯粹是为了复制时方便  发表于 2012-8-17 15:41

评分

参与人数 1星屑 +200 收起 理由
Luciffer + 200 东方万岁XD

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
37 小时
注册时间
2012-7-30
帖子
147
4
发表于 2012-8-17 21:35:37 | 只看该作者
好吧,我是不会说我一句话也没看懂的,其实完全可以放出素材啊,这个代码就是最好的加密器了
功能应该类似那种光标在哪,那个选项就特别大其他选项淡化之类的,只不过某编译君为了方便把所有的东西全部合到一块了。单论机能问题,几个sprite的更新是没问题的,index==2的处理也没有太大的问题,用sideview的都知道spriteset_battle里也是对所有的sprite更新,因为本人对sprite不熟悉,看描述的状况应该是sprite的多重opacity更新所产生的fps降低吧。
刚才自己做了个实验,战斗中7个sprite不停透明再不透明感觉会有一点点慢,应该是电脑机能的问题吧。
p.s.通读一遍代码,刚才看的时候发现一个sprite5写成sprite4的,这些小错也可能导致loop下不来

评分

参与人数 1星屑 +200 收起 理由
Luciffer + 200 我很赞同

查看全部评分

想回复我的话请呼(@)我一下。
准备执行人体盗图计划,copyright的诸君赶紧藏好咧~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
177 小时
注册时间
2011-7-3
帖子
235
5
 楼主| 发表于 2012-8-18 19:02:59 | 只看该作者
本帖最后由 TheRebirth 于 2012-8-18 19:04 编辑

脚本优化完成,感谢各位的解答

另:回复 铅笔描绘的思念 : 系统默认脚本已被作了改动,因此这种用法应该是没问题的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-2 03:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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