Project1

标题: 这个光效脚本怎么停止 [打印本页]

作者: lottesong    时间: 2015-12-15 07:04
标题: 这个光效脚本怎么停止
出自回想領域,效果很漂亮。
光效开启脚本是    ancient_light
但是怎么关闭呢?把xx值设定为false ??  日文看不懂。
这个只是简单的问问,过几天再发有偿帖子,欢迎帮忙。


  
RUBY 代码复制
  1. =begin
  2.       RGSS3
  3.       
  4.    ★ 古の光 ★
  5.  
  6.       天候と同じように利用できる演出素材です。
  7.       
  8.       ● 準備 ●==========================================================
  9.       「Graphics\System\」に下記の2ファイルを入れます
  10.        ancient_00.png
  11.        ancient_01.png
  12.       ====================================================================
  13.       
  14.       ● エフェクトの開始 ●==============================================
  15.       イベントコマンドで次のスクリプトを実行します
  16.       --------------------------------------------------------------------
  17.       ancient_light
  18.       ====================================================================
  19.       
  20.       ● エフェクトの終了 ●==============================================
  21.       イベントコマンドの「天候の設定」で「なし」を実行します
  22.       ====================================================================
  23.       
  24.       ver1.00
  25.       
  26.       Last Update : 2015/03/19
  27.       3/19 : 新規
  28.       
  29.       ろかん   [url]http://kaisou-ryouiki.sakura.ne.jp/[/url]
  30. =end
  31.  
  32. $rsi ||= {}
  33. $rsi["古の光"] = true
  34.  
  35. class Game_Interpreter
  36.   #--------------------------------------------------------------------------
  37.   # ● 天候:舞い上がる光の開始
  38.   #--------------------------------------------------------------------------
  39.   def ancient_light
  40.     screen.change_weather(:ancient_light, 3, 0)
  41.   end
  42. end
  43.  
  44. class Spriteset_Weather
  45.   #--------------------------------------------------------------------------
  46.   # ● 公開インスタンス変数
  47.   #--------------------------------------------------------------------------
  48.   attr_reader   :viewport
  49.   attr_reader   :sprites
  50.   #--------------------------------------------------------------------------
  51.   # ● 天候の種類を設定
  52.   #--------------------------------------------------------------------------
  53.   def type=(type)
  54.     if @type != type
  55.       @sprites.each{|sprite| sprite.dispose}
  56.       @sprites = []
  57.       if type == :ancient_light
  58.         5.times{@sprites << Ancient_Light.new(self)}
  59.       end
  60.     end
  61.     @type = type
  62.   end
  63.   #--------------------------------------------------------------------------
  64.   # ● 天候の強さを設定
  65.   #--------------------------------------------------------------------------
  66.   alias ancient_light_power= power=
  67.   def power=(power)
  68.     if @type != :ancient_light
  69.       self.ancient_light_power = power
  70.     else
  71.       @power = power
  72.     end
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● フレーム更新
  76.   #--------------------------------------------------------------------------
  77.   alias ancient_light_update update
  78.   def update
  79.     if @type == :ancient_light
  80.       update_screen
  81.       @sprites << Ancient_Light.new(self) if (Graphics.frame_count % 100).zero?
  82.       @sprites.each{|sprite| sprite.update}
  83.     else
  84.       ancient_light_update
  85.     end
  86.   end
  87. end
  88.  
  89. class Ancient_Light
  90.   #--------------------------------------------------------------------------
  91.   # ● オブジェクト初期化
  92.   #--------------------------------------------------------------------------
  93.   def initialize(owner)
  94.     @owner = owner
  95.     @exist_counter = 1200
  96.     @origin_ox = @owner.ox
  97.     @origin_oy = @owner.oy
  98.     @x = rand(Graphics.width + 192) - 96
  99.     @y = rand(Graphics.height + 192) - 96
  100.     @angle_speed = rand(7) / 10.0 * (rand(2).zero? ? 1 : -1)
  101.     @vector_x = rand(2).zero? ? 1 : -1
  102.     @vector_y = rand(2).zero? ? 1 : -1
  103.     create_sprite
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● スプライトの生成
  107.   #--------------------------------------------------------------------------
  108.   def create_sprite
  109.     @sprites = [Sprite.new(@owner.viewport), Sprite.new(@owner.viewport)]
  110.     @sprites[0].bitmap = Cache.system("ancient_00")
  111.     @sprites[1].bitmap = Cache.system("ancient_01")
  112.     @sprites[0].blend_type = @sprites[1].blend_type = 1
  113.     @sprites[0].angle = @sprites[1].angle = rand(360)
  114.     @sprites[0].ox = @sprites[1].ox = @sprites[0].bitmap.width / 2
  115.     @sprites[0].oy = @sprites[1].oy = @sprites[0].bitmap.height / 2
  116.     @sprites[0].x = @sprites[1].x = @x + (@origin_ox - @owner.ox)
  117.     @sprites[0].y = @sprites[1].y = @y + (@origin_oy - @owner.oy)
  118.     @sprites[0].z = rand(2)
  119.     @sprites[0].zoom_x = rand(11).next / 10.0 - 0.3
  120.     @sprites[0].zoom_y = rand(11).next / 10.0 - 0.3
  121.     @sprites[1].zoom_x = [0.2, @sprites[0].zoom_x].max
  122.     @sprites[1].zoom_y = [0.2, @sprites[0].zoom_y].max
  123.     @sprites[0].opacity = @sprites[1].opacity = 0
  124.   end
  125.   #--------------------------------------------------------------------------
  126.   # ● X 軸方向の速度を取得
  127.   #--------------------------------------------------------------------------
  128.   def x_speed
  129.     (@sprites[0].zoom_x + @sprites[0].zoom_y) / 3.0 * @vector_x
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● Y 軸方向の速度を取得
  133.   #--------------------------------------------------------------------------
  134.   def y_speed
  135.     x_speed / 2.0 * @vector_y
  136.   end
  137.   #--------------------------------------------------------------------------
  138.   # ● 解放
  139.   #--------------------------------------------------------------------------
  140.   def dispose
  141.     @sprites[0].dispose
  142.     @sprites[1].dispose
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● フレーム更新
  146.   #--------------------------------------------------------------------------
  147.   def update
  148.     case @exist_counter
  149.     when 1141..1200
  150.       @sprites[0].zoom_x += 0.005
  151.       @sprites[0].zoom_y += 0.005
  152.       @sprites[1].zoom_x += 0.005
  153.       @sprites[1].zoom_y += 0.005
  154.       @sprites[0].opacity = @sprites[1].opacity += 5
  155.     else
  156.       if (Graphics.frame_count % 2).zero?
  157.         @sprites[0].opacity = @sprites[1].opacity = @exist_counter
  158.         @sprites[1].opacity -= rand(200)
  159.         @sprites[0].angle = @sprites[1].angle += @angle_speed
  160.       end
  161.     end
  162.     @x += x_speed
  163.     @y += y_speed
  164.     @sprites[0].x = @sprites[1].x = @x.to_i + (@origin_ox - @owner.ox)
  165.     @sprites[0].y = @sprites[1].y = @y.to_i + (@origin_oy - @owner.oy)
  166.     @exist_counter -= 1
  167.     if @exist_counter.zero?
  168.       dispose
  169.       @owner.sprites.delete(self)
  170.     else
  171.       out_screen_process
  172.     end
  173.   end
  174.   #--------------------------------------------------------------------------
  175.   # ● 画面外に出た場合の処理(ループさせて画面内に戻す)
  176.   #--------------------------------------------------------------------------
  177.   def out_screen_process
  178.     if @sprites[0].x < -96
  179.       while @sprites[0].x < -96
  180.         @sprites[0].x = @sprites[1].x += Graphics.width + 192
  181.       end
  182.     elsif @sprites[0].x > Graphics.width + 96
  183.       while @sprites[0].x > Graphics.width + 96
  184.         @sprites[0].x = @sprites[1].x -= Graphics.width + 192
  185.       end
  186.     end
  187.     if @sprites[0].y < -96
  188.       while @sprites[0].y < -96
  189.         @sprites[0].y = @sprites[1].y += Graphics.height + 192
  190.       end
  191.     elsif @sprites[0].y > Graphics.height + 96
  192.       while @sprites[0].y > Graphics.height + 96
  193.         @sprites[0].y = @sprites[1].y -= Graphics.height + 192
  194.       end
  195.     end
  196.   end
  197. end

作者: 猪衰衰    时间: 2015-12-15 07:32
在事件指令中的设置天气效果里选择“无”




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