Project1

标题: 2VIP 请问残像スクリプトVX ver 1.00该怎么使用? [打印本页]

作者: qllmkaen    时间: 2010-12-19 11:07
标题: 2VIP 请问残像スクリプトVX ver 1.00该怎么使用?
本帖最后由 qllmkaen 于 2010-12-19 12:24 编辑

原脚本地址:残像スクリプトVX ver 1.00
(使用这个脚本之前必须先导入マスタースクリプトVX Ver 1.02(必ず導入) 这个脚本)
残像スクリプトVX ver 1.00脚本:
  1. #◆◇◆◇◆  残像スクリプトVX ver 1・00  ◇◆◇◆◇
  2. #  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
  3. #   by みんと

  4. =begin

  5. ■ 更新履歴

  6. ○ ver 1.00(2009/05/24)
  7.   公開

  8. ■ 説明

  9. マップ上のキャラに残像を表示させます。
  10. イベントの演出に一役買ってくれるかもしれません。

  11. 残像を表示するには、
  12. フラッシュに 残像表示 という名前のSEが設定されているアニメを、
  13. 残像をつけたいキャラクターに表示してください。
  14. 以降は残像が維持されます。
  15. 1フレームのアニメに、フラッシュ[残像表示]だけで構いません。

  16. 残像を解放するには、
  17. フラッシュに 残像解放 という名前のSE設定されているアニメを、
  18. 残像を解放したいキャラクターに表示してください

  19. 残像の色はフラッシュの色がそのまま適用されます。

  20. 発生する残像の数はフラッシュの時間を使用します。
  21. ただし、あまり多くすると重くなるので、
  22. 6程度を目安にしてください。

  23. =end

  24. #==============================================================================
  25. # ☆ MINTO
  26. #------------------------------------------------------------------------------
  27. #   様々なフラグを扱うメインモジュールです。
  28. #==============================================================================

  29. module MINTO
  30.   
  31.   # 残像スクリプトVXを有効化 ( true で有効 / false で無効 )
  32.   RGSS["Blink_AnimeVX"] = true
  33.   
  34. end

  35. # 戦闘背景色調変更スクリプトVXが有効な場合に以降の処理を実行する
  36. if MINTO::RGSS["Blink_AnimeVX"] == true then
  37.   
  38. #==============================================================================
  39. # ■ Sprite
  40. #------------------------------------------------------------------------------
  41. #  スプライト表示を扱う組み込みクラスです。
  42. #==============================================================================

  43. class Sprite
  44.   #--------------------------------------------------------------------------
  45.   # ● 残像用の複製の作成
  46.   #--------------------------------------------------------------------------
  47.   def blink
  48.     # 各データをコピー
  49.     sprite = Sprite.new(self.viewport)
  50.     sprite.bitmap = self.bitmap.dup if self.bitmap
  51.     sprite.x = self.x
  52.     sprite.y = self.y
  53.     sprite.z = self.z-1
  54.     sprite.visible = false
  55.     sprite.ox = self.ox
  56.     sprite.oy = self.oy
  57.     sprite.angle = self.angle
  58.     sprite.mirror = self.mirror
  59.     sprite.opacity = self.opacity - 95
  60.     sprite.blend_type = 1
  61.     sprite.color = self.color.dup
  62.     sprite.src_rect = self.src_rect.dup
  63.     sprite.zoom_x = self.zoom_x
  64.     sprite.zoom_y = self.zoom_y
  65.     return sprite
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● データの取得
  69.   #--------------------------------------------------------------------------
  70.   def data_copy(data)
  71.     return if data.disposed? or self.disposed?
  72.     # 各データをコピー
  73.     self.x = data.x
  74.     self.y = data.y
  75.     self.z = data.z-1
  76.     self.visible = data.visible
  77.     self.ox = data.ox
  78.     self.oy = data.oy
  79.     self.angle = data.angle
  80.     self.mirror = data.mirror
  81.     self.src_rect = data.src_rect
  82.     self.zoom_x = data.zoom_x
  83.     self.zoom_y = data.zoom_y
  84.   end
  85. end
  86. #==============================================================================
  87. # ■ Blink_Sprite
  88. #------------------------------------------------------------------------------
  89. #  残像スプライト表示を扱う組み込みクラスです。
  90. #==============================================================================

  91. class Blink_Sprite
  92.   #--------------------------------------------------------------------------
  93.   # ● オブジェクト初期化
  94.   #    sprite : オリジナルの画像
  95.   #--------------------------------------------------------------------------
  96.   def initialize(sprite, size)
  97.     # 残像のサイズを取得
  98.     @size = size
  99.     # 残像用の配列を作成
  100.     @blink = Array.new(@size)
  101.     # ループ処理
  102.     (0...@size).each do |i|
  103.       # 残像スプライトを作成
  104.       @blink[i] = sprite.blink
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 可視状態の変更
  109.   #    flag : 新しい可視状態
  110.   #--------------------------------------------------------------------------
  111.   def visible=(flag)
  112.     # ループ処理
  113.     (0...@size).each do |i|
  114.       # 可視状態を変更
  115.       @blink[i].visible = flag
  116.     end
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 残像カラーの変更
  120.   #    color : 新しいカラー
  121.   #--------------------------------------------------------------------------
  122.   def color_set(color)
  123.     # ループ処理
  124.     (0...@size).each do |i|
  125.       # 残像カラーを変更
  126.       @blink[i].color = color.dup
  127.     end
  128.   end
  129.   #--------------------------------------------------------------------------
  130.   # ● 解放
  131.   #--------------------------------------------------------------------------
  132.   def dispose
  133.     # ループ処理(イテレータ)
  134.     ([email protected]).each do |i|
  135.       # 残像スプライトが存在する場合
  136.       if @blink[i] != nil then
  137.         # 残像スプライトが未解放の場合
  138.         if @blink[i].disposed? == false then
  139.           # 残像スプライトを解放
  140.           @blink[i].dispose
  141.         end
  142.       end
  143.     end
  144.   end
  145.   #--------------------------------------------------------------------------
  146.   # ● フレーム更新
  147.   #    sprite : オリジナルの画像
  148.   #--------------------------------------------------------------------------
  149.   def update(sprite)
  150.     # 残像が可視状態でない場合
  151.     if @blink[0].visible == false then
  152.       # メソッドを返す
  153.       return
  154.     end
  155.     # ループ処理
  156.     (0...@size).each do |i|
  157.       # 前の残像データを渡す
  158.       @blink[@size-1 - i].data_copy(@blink[@size-1 - (i + 1)])
  159.     end
  160.     # 残像データを更新
  161.     @blink[0].data_copy(sprite)
  162.   end
  163. end
  164. #==============================================================================
  165. # ☆ MINTO_Sprite_Battler_02
  166. #------------------------------------------------------------------------------
  167. #   Sprite_Battlerクラスの強化システムモジュールです。
  168. #==============================================================================

  169. module MINTO_Sprite_Battler_02
  170.   #--------------------------------------------------------------------------
  171.   # ● 解放
  172.   #--------------------------------------------------------------------------
  173.   def dispose
  174.     # 残像データが有効な場合
  175.     unless @blink_anime.nil? then
  176.       # 残像を解放
  177.       @blink_anime.dispose
  178.       @blink_anime = nil
  179.     end
  180.     # 継承先の処理に移行
  181.     super
  182.   end
  183.   #--------------------------------------------------------------------------
  184.   # ● アニメーション・プロセスタイミング
  185.   #    timing : SEなどのデータ
  186.   #--------------------------------------------------------------------------
  187.   def animation_process_timing(timing)
  188.     # SE "残像表示" が設定されている場合
  189.     if timing.se.name == "残像表示" then
  190.       # 残像データが有効な場合
  191.       unless @blink_anime.nil? then
  192.         # 残像を解放
  193.         @blink_anime.dispose
  194.         @blink_anime = nil
  195.       end
  196.       # 残像用のデータを定義
  197.       @blink_anime = Blink_Sprite.new(self, timing.flash_duration)
  198.       # 残像を可視状態にする
  199.       @blink_anime.visible = true
  200.       # 残像のカラーを定義
  201.       @blink_anime.color_set(timing.flash_color)
  202.       # メソッドを返す
  203.       return
  204.     # SE "残像解放" が設定されている場合
  205.     elsif timing.se.name == "残像解放" then
  206.       # 残像データが有効な場合
  207.       unless @blink_anime.nil? then
  208.         # 残像を解放
  209.         @blink_anime.dispose
  210.         @blink_anime = nil
  211.       end
  212.       # メソッドを返す
  213.       return
  214.     end
  215.     # 継承先の処理に移行
  216.     super(timing)
  217.   end
  218.   #--------------------------------------------------------------------------
  219.   # ● フレーム更新
  220.   #--------------------------------------------------------------------------
  221.   def update
  222.     # 残像データが有効な場合
  223.     unless @blink_anime.nil? then
  224.       # 残像を更新
  225.       @blink_anime.update(self)
  226.     end
  227.     # 継承先の処理に移行
  228.     super
  229.   end
  230. end
  231. #==============================================================================
  232. # ■ Sprite_Character
  233. #------------------------------------------------------------------------------
  234. #  キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを
  235. # 監視し、スプライトの状態を自動的に変化させます。
  236. #==============================================================================

  237. class Sprite_Character < Sprite_Base
  238.   #--------------------------------------------------------------------------
  239.   # ● システムインクルード
  240.   #--------------------------------------------------------------------------
  241.   include MINTO_Sprite_Battler_02         # みんとスプライトバトラー
  242. end

  243. end
复制代码
{:nm_7:} 用谷歌逐字翻译过了,也把里面的属性和开关都调用过了,但是还是不懂得该怎么用...

作者: fux2    时间: 2010-12-19 11:07
范例完成,
Project1.rar (261.34 KB, 下载次数: 153)
作者: 八云紫    时间: 2010-12-19 11:54
调用动画, 然后动画里添加一个 播放SE , SE 的文件名为: 残像表示 就可以开启功能。
SE 的文件名为:残像解放 的话, 就是关闭功能~
作者: qllmkaen    时间: 2010-12-19 12:18
{:nm_7:}我很纠结啊...还是认可fux2吧{:nm_4:}福克最有爱了(炸




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