Project1

标题: 请问如何做出镜像的效果? [打印本页]

作者: 冰之滄月    时间: 2014-3-29 19:12
标题: 请问如何做出镜像的效果?
就是说主角站到一个地图上的时候会显示倒影。用脚本也可以,只不过要告诉我粘贴到哪里就行了!真的万分感谢!
作者: @npc    时间: 2014-3-29 21:35
VA超级整合镜床镜壁,把水地形标志设为1
作者: 冰之滄月    时间: 2014-3-30 08:13
@NPC 发表于 2014-3-29 21:35
VA超级整合镜床镜壁,把水地形标志设为1


哦?我是新手,VA超级整合是什么?求抛链接。
作者: @npc    时间: 2014-3-30 08:38
http://rpg.blue/forum.php?mod=viewthread&tid=247817
作者: 布里蓝    时间: 2014-3-31 00:09
水面反射和墙壁反射,LS提到的超级整合里的脚本




水面反射
RUBY 代码复制
  1. #◆◇◆◇◆  鏡床スクリプトVXA ver 1.00  ◇◆◇◆◇
  2. #  サポート掲示板 [url]http://www2.ezbbs.net/21/minto-aaa/[/url]
  3. #   by みんと
  4.  
  5. =begin
  6.  
  7. ■ 更新履歴
  8.  
  9. ○ ver 1.00(2010/11/23)
  10. 公開
  11.  
  12. ■ 説明
  13.  
  14. 現在キャラクターが立っている
  15. 「一歩下」のタイルが、特定のタイルだった場合、
  16. 一歩下のタイルにキャラクターの半透明の映像を映し出します。
  17. 水面などの演出に向いています。
  18.  
  19. 鏡床とみなされるタイルの登録には地形タグを使用します。
  20. タイルセットの地形タグを任意の値に設定してください。
  21.  
  22. イベントの場合は、「最初の」実行内容が
  23. 「注釈」で、注釈の内容が 鏡床描写 のみの場合、同様に映し出します。
  24. 設定していない場合は映し出さないので、
  25. 映し出したいイベントにだけ設定してください。
  26.  
  27. 導入場所の注意
  28. エイリアスで構成されていますので、
  29. 出来るだけ下のほうに導入してください。
  30.  
  31. =end
  32.  
  33. #==============================================================================
  34. # ☆ MINTO
  35. #------------------------------------------------------------------------------
  36. #   様々なフラグを扱うメインモジュールです。
  37. #==============================================================================
  38.  
  39. module MINTO
  40.  
  41.   # 鏡床スクリプトVXを有効化 ( true で有効 / false で無効 )
  42.   RGSS["鏡床スクリプトVX"] = true
  43.  
  44.   # 鏡床のタイルとして扱う地形タグのID
  45.   # キャラクターが立っている一歩下のレイヤー1~3の中で、
  46.   # 1つでも該当する地形タグがあれば鏡床を作成します
  47.   Mirror_Tile_ID = 1
  48.  
  49.   # 鏡床無効のタイルとして扱う地形タグのID
  50.   # キャラクターが立っている一歩下のレイヤー1~3の中で、
  51.   # 1つでも該当する地形タグがあれば鏡床を無効化します
  52.   # 無効化タイルを使用しない場合は nil を収納してください
  53.   Not_Mirror_Tile_ID = 2
  54.  
  55.   # 機能を一時的に無効化するスイッチ
  56.   # このスイッチが オン の時、機能を無効化します
  57.   Not_Mirror_Switch = 0
  58.  
  59. end
  60.  
  61. # 鏡床スクリプトVXが有効な場合に以降の処理を実行する
  62. if MINTO::RGSS["鏡床スクリプトVX"] == true then
  63.  
  64. #==============================================================================
  65. # ■ Game_Map
  66. #------------------------------------------------------------------------------
  67. #  マップを扱うクラスです。スクロールや通行可能判定などの機能を持っています。
  68. # このクラスのインスタンスは $game_map で参照されます。
  69. #==============================================================================
  70.  
  71. class Game_Map
  72.   #--------------------------------------------------------------------------
  73.   # ● 公開インスタンス変数
  74.   #--------------------------------------------------------------------------
  75.   attr_reader   :map                      # マップの情報
  76.   #--------------------------------------------------------------------------
  77.   # ● 地形タグの取得
  78.   #    x   : 指定 X 座標
  79.   #    y   : 指定 Y 座標
  80.   #    tag : 指定地形タグ
  81.   #--------------------------------------------------------------------------
  82.   def terrain_tag_include?(x, y, tag)
  83.     # 無効なタイルの場合
  84.     unless valid?(x, y)
  85.       # メソッドを返す
  86.       return false
  87.     end
  88.     # 全レイヤーを検索
  89.     for tile_id in layered_tiles(x, y) do
  90.       # タグを取得
  91.       t = tileset.flags[tile_id] >> 12
  92.       # 地系タグが一致した場合
  93.       if tag == t
  94.         # メソッドを返す
  95.         return true
  96.       end
  97.     end
  98.     # メソッドを返す
  99.     return false
  100.   end
  101. end
  102. #==============================================================================
  103. # ■ Sprite_Character
  104. #------------------------------------------------------------------------------
  105. #  キャラクター表示用のスプライトです。
  106. #   Game_Character クラスのインスタンスを監視し、
  107. #   スプライトの状態を自動的に変化させます。
  108. #==============================================================================
  109.  
  110. class Sprite_Character < Sprite_Base
  111.   #--------------------------------------------------------------------------
  112.   # ● 解放
  113.   #    alias : dispose_MINTO_Mirror_Tile
  114.   #--------------------------------------------------------------------------
  115.   alias :dispose_MINTO_Mirror_Tile :dispose
  116.   def dispose
  117.     # 鏡床が存在する場合
  118.     if @mirror_tile_sprite != nil then
  119.       # 鏡床を解放
  120.       @mirror_tile_sprite.bitmap.dispose
  121.       @mirror_tile_sprite.dispose
  122.     end
  123.     # 元の処理を実行
  124.     dispose_MINTO_Mirror_Tile
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 鏡床有効判定
  128.   #    x  : X 座標
  129.   #    y  : Y 座標
  130.   #--------------------------------------------------------------------------
  131.   def mirror_tile_include?(x, y)
  132.     # 目標のタイルが鏡床の場合
  133.     if $game_map.terrain_tag_include?(x, y, MINTO::Mirror_Tile_ID)
  134.       # 鏡床無効化タイルが有効な場合
  135.       unless MINTO::Not_Mirror_Tile_ID.nil?
  136.         # 鏡床が無効化されていない場合
  137.         unless $game_map.terrain_tag_include?(x, y, MINTO::Not_Mirror_Tile_ID)
  138.           # メソッドを返す
  139.           return true
  140.         end
  141.       # 無効化タイルを使用していない場合
  142.       else
  143.         # メソッドを返す
  144.         return true
  145.       end
  146.     end
  147.     # メソッドを返す
  148.     return false
  149.   end
  150.   #--------------------------------------------------------------------------
  151.   # ● 鏡床の作成
  152.   #--------------------------------------------------------------------------
  153.   def mirror_tile_set
  154.     # 鏡床が存在する場合
  155.     if @mirror_tile_sprite != nil then
  156.       # 鏡床を解放
  157.       @mirror_tile_sprite.bitmap.dispose
  158.       @mirror_tile_sprite.bitmap = nil
  159.       @mirror_tile_sprite.dispose
  160.       @mirror_tile_sprite = nil
  161.     end
  162.     # 最終ファイル名を更新
  163.     @last_tile_id = @character.tile_id
  164.     @last_character_name = @character.character_name.dup
  165.     # 鏡床用のスプライトを生成
  166.     @mirror_tile_sprite = self.dup
  167.     # 座標を調節する
  168.     @mirror_tile_sprite.y = self.y - (self.oy / 6)
  169.     @mirror_tile_sprite.z = self.z
  170.     # 色を白っぽくする
  171.     @mirror_tile_sprite.tone.red = 64
  172.     @mirror_tile_sprite.tone.green = 64
  173.     @mirror_tile_sprite.tone.blue = 64
  174.     # 半透明にする
  175.     @mirror_tile_sprite.opacity = self.opacity * 62 / 100
  176.     # 180度回転させる
  177.     @mirror_tile_sprite.angle = 180
  178.     # 左右を反転させる
  179.     @mirror_tile_sprite.mirror = (not self.mirror == true)
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 鏡床の更新
  183.   #--------------------------------------------------------------------------
  184.   def update_mirror_tile
  185.     # キャラクターの現在位置を取得
  186.     x = @character.x
  187.     y = @character.y
  188.     # 元々鏡床が存在しない場合
  189.     if @mirror_tile_sprite == nil then
  190.       # メソッドを返す
  191.       return
  192.     end
  193.     # 機能が無効化されている場合
  194.     if $game_switches[MINTO::Not_Mirror_Switch] == true then
  195.       # 不可視状態にする
  196.       @mirror_tile_sprite.visible = false
  197.       # メソッドを返す
  198.       return
  199.     end
  200.     # プレイヤーの場合
  201.     unless @character.is_a?(Game_Event) then
  202.       # 機能が無効化されている場合
  203.       if $game_map.airship.driving == true then
  204.         # 不可視状態にする
  205.         @mirror_tile_sprite.visible = false
  206.         # メソッドを返す
  207.         return
  208.       end
  209.     end
  210.     # 下のタイルが鏡床以外の場合
  211.     if mirror_tile_include?(x, (y + 1)) == false then
  212.       # 鏡床を不可視状態にする
  213.       @mirror_tile_sprite.visible = false
  214.       # メソッドを返す
  215.       return
  216.     # 下のタイルが鏡床の場合
  217.     else
  218.       # Y座標補正値を初期化する
  219.       @y_plus = 6
  220.       #@mirror_tile_sprite.wave_amp = 1
  221.       #@mirror_tile_sprite.wave_length = 60
  222.       #@mirror_tile_sprite.wave_speed = 320
  223.     end
  224.     # 各情報を更新する
  225.     @mirror_tile_sprite.src_rect = self.src_rect.dup
  226.     @mirror_tile_sprite.x = self.x
  227.     @mirror_tile_sprite.y = self.y - (self.oy / 6) + @y_plus
  228.     @mirror_tile_sprite.opacity = self.opacity * 62 / 100
  229.     @mirror_tile_sprite.z = self.z - 1
  230.     @mirror_tile_sprite.visible = self.visible
  231.     @mirror_tile_sprite.update
  232.   end
  233.   #--------------------------------------------------------------------------
  234.   # ● フレーム更新
  235.   #    alias : update_MINTO_Mirror_Tile
  236.   #--------------------------------------------------------------------------
  237.   alias :update_MINTO_Mirror_Tile :update
  238.   def update
  239.     # ファイル名、色相のどれかが現在のものと異なる場合
  240.     if @last_tile_id != @character.tile_id or
  241.       @last_character_name != @character.character_name
  242.       # 鏡床が存在する場合
  243.       if @mirror_tile_sprite != nil then
  244.         # 元の処理を実行
  245.         update_MINTO_Mirror_Tile
  246.         # 鏡床を再作成
  247.         mirror_tile_set
  248.         # 鏡床を更新
  249.         update_mirror_tile
  250.         # メソッドを返す
  251.         return
  252.       end
  253.     end
  254.     # 元の処理を実行
  255.     update_MINTO_Mirror_Tile
  256.     # まだ鏡床を作成していない場合
  257.     if @mirror_tile == nil then
  258.       # キャラクターがイベントの場合
  259.       if @character.is_a?(Game_Event) == true then
  260.         # 有効なイベントの場合
  261.         if @character.list != nil then
  262.           # 最初の内容が注釈の場合
  263.           if @character.list[0].code == 108 then
  264.             # 注釈の内容が「鏡床描写」だった場合
  265.             if @character.list[0].parameters == ["鏡床描写"] then
  266.               # 鏡床を作成
  267.               mirror_tile_set
  268.               # 作成済みフラグをオン
  269.               @mirror_tile = true
  270.             end
  271.           end
  272.         end
  273.       # キャラクターがプレイヤーの場合
  274.       else
  275.         # 鏡床を作成
  276.         mirror_tile_set
  277.         # 作成済みフラグをオン
  278.         @mirror_tile = true
  279.       end
  280.     end
  281.     # 鏡床を更新
  282.     update_mirror_tile
  283.   end
  284. end
  285.  
  286. end



墙壁
RUBY 代码复制
  1. #◆◇◆◇◆  鏡の壁スクリプトVXA ver 1.00  ◇◆◇◆◇
  2. #  サポート掲示板 [url]http://www2.ezbbs.net/21/minto-aaa/[/url]
  3. #   by みんと
  4.  
  5. =begin
  6.  
  7. ■ 更新履歴
  8.  
  9. ○ ver 1.00(2010/11/28)
  10. 公開
  11.  
  12. ■ 説明
  13.  
  14. 鏡床スクリプトVX専用の拡張スクリプトです。
  15. このスクリプト素材を使用する場合は、
  16. 鏡床スクリプトVXが必須となります。
  17.  
  18. キャラクターの「一歩上」のタイルが特定のタイルだった場合、
  19. そのタイルにキャラクターの鏡写し映像を描写します。
  20.  
  21. イベントの場合は、鏡床スクリプトのものをそのまま継承します。
  22.  
  23. 氷のダンジョン等に向いているかもしれません。
  24.  
  25. 鏡の壁とみなされるタイルの登録には、専用のマップを別に使います。
  26. 詳しい設定方法はスクリーンショットを参照してください。
  27.  
  28. ◆ 鏡の壁イベントの設定
  29.  
  30. 鏡の壁とみなすイベントには、
  31. まず移動タイプを 固定 にし、
  32. 名前に 鏡 の文字を含ませてください。
  33. そのイベントは鏡の壁とみなされます。
  34. (途中でそのイベントを動かしても、
  35. 鏡の壁の判定は更新されません。
  36. あくまで絶対に動かないイベント専用の機能です)
  37.  
  38. 導入場所の注意
  39. エイリアスで構成されていますので、
  40. 出来るだけ下のほうに導入してください。
  41.  
  42. =end
  43.  
  44. #==============================================================================
  45. # ☆ MINTO
  46. #------------------------------------------------------------------------------
  47. #   様々なフラグを扱うメインモジュールです。
  48. #==============================================================================
  49.  
  50. module MINTO
  51.  
  52.   # 鏡の壁スクリプトVXAを有効化 ( true で有効 / false で無効 )
  53.   RGSS["鏡の壁スクリプトVXA"] = true
  54.  
  55.   # 鏡の壁タイルとして扱う地形タグのID
  56.   # キャラクターが立っている一歩上のレイヤー1~3の中で、
  57.   # 1つでも該当する地形タグがあれば鏡の壁を作成します
  58.   Mirror_Wall_ID = 3
  59.  
  60.   # 鏡の壁無効化タイルとして扱う地形タグのID
  61.   # キャラクターが立っている一歩上のレイヤー1~3の中で、
  62.   # 1つでも該当する地形タグがあれば鏡の壁を無効化します
  63.   # 無効化タイルを使用しない場合は nil を収納してください
  64.   Not_Mirror_Wall_ID = nil
  65.  
  66.  
  67.   # 機能を一時的に無効化するスイッチ
  68.   # このスイッチが オン の時、機能を無効化します
  69.   Not_MirrorWall_Switch = 0
  70.  
  71. end
  72.  
  73. # 鏡の壁スクリプトVXAが有効な場合に以降の処理を実行する
  74. if MINTO::RGSS["鏡の壁スクリプトVXA"] == true then
  75.  
  76. #==============================================================================
  77. # ■ Game_Character (分割定義 1)
  78. #------------------------------------------------------------------------------
  79. #  キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event
  80. # クラスのスーパークラスとして使用されます。
  81. #==============================================================================
  82.  
  83. class Game_Character
  84.   #--------------------------------------------------------------------------
  85.   # ● 公開インスタンス変数
  86.   #--------------------------------------------------------------------------
  87.   attr_reader   :move_type                # 移動タイプ
  88. end
  89. #==============================================================================
  90. # ■ Game_Event
  91. #------------------------------------------------------------------------------
  92. #  イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理
  93. # イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。
  94. #==============================================================================
  95.  
  96. class Game_Event < Game_Character
  97.   #--------------------------------------------------------------------------
  98.   # ● 公開インスタンス変数
  99.   #--------------------------------------------------------------------------
  100.   attr_reader   :event                    # イベント
  101. end
  102. #==============================================================================
  103. # ■ Spriteset_Map
  104. #------------------------------------------------------------------------------
  105. #  マップ画面のスプライトやタイルマップなどをまとめたクラスです。このクラスは
  106. # Scene_Map クラスの内部で使用されます。
  107. #==============================================================================
  108.  
  109. class Spriteset_Map
  110.   #--------------------------------------------------------------------------
  111.   # ● 公開インスタンス変数
  112.   #--------------------------------------------------------------------------
  113.   attr_accessor :mirror_wall              # 鏡の壁イベントの位置情報
  114.   #--------------------------------------------------------------------------
  115.   # ● オブジェクト初期化
  116.   #    alias : initialize_Mirror_Wall
  117.   #--------------------------------------------------------------------------
  118.   alias :initialize_Mirror_Wall :initialize
  119.   def initialize
  120.     # 鏡の壁イベントの位置情報を定義
  121.     @mirror_wall = Table.new($game_map.map.width, $game_map.map.height)
  122.     # 元の処理を実行
  123.     initialize_Mirror_Wall
  124.     # ループ処理
  125.     for character in @character_sprites do
  126.       # キャラクターがイベントの場合
  127.       if character.character.class == Game_Event then
  128.         # キャラクターの移動タイプが固定の場合
  129.         if character.character.move_type == 0 then
  130.           # イベント名に 鏡 が含まれる場合
  131.           if character.character.event.name.include?("鏡") == true then
  132.             # 位置を取得
  133.             x = character.character.x
  134.             y = character.character.y
  135.             # 位置を保存
  136.             @mirror_wall[x, y] = 1
  137.           end
  138.         end
  139.       end
  140.     end
  141.   end
  142. end
  143. #==============================================================================
  144. # ■ Sprite_Character (分割定義 2)
  145. #------------------------------------------------------------------------------
  146. #  キャラクター表示用のスプライトです。
  147. # Game_Character クラスのインスタンスを監視し、
  148. # スプライトの状態を自動的に変化させます。
  149. #==============================================================================
  150.  
  151. class Sprite_Character < Sprite_Base
  152.   #--------------------------------------------------------------------------
  153.   # ● 解放
  154.   #    alias : dispose_Mirror_Wall
  155.   #--------------------------------------------------------------------------
  156.   alias :dispose_Mirror_Wall :dispose
  157.   def dispose
  158.     # 鏡が存在する場合
  159.     if @mirror_sprite != nil then
  160.       # 鏡を解放
  161.       @mirror_sprite.bitmap.dispose
  162.       @mirror_sprite.dispose
  163.     end
  164.     # 元の処理を実行
  165.     dispose_Mirror_Wall
  166.   end
  167.   #--------------------------------------------------------------------------
  168.   # ● 鏡床の作成
  169.   #    alias : mirror_tile_set_Mirror_Wall
  170.   #--------------------------------------------------------------------------
  171.   alias :mirror_tile_set_Mirror_Wall :mirror_tile_set
  172.   def mirror_tile_set
  173.     # 元の処理を実行
  174.     mirror_tile_set_Mirror_Wall
  175.     # 鏡を作成
  176.     mirror_set
  177.   end
  178.   #--------------------------------------------------------------------------
  179.   # ● 鏡の作成
  180.   #--------------------------------------------------------------------------
  181.   def mirror_set
  182.     # 鏡用のスプライトを生成
  183.     @mirror_sprite = self.dup
  184.     # 座標を調節する
  185.     @mirror_sprite.y = self.y + (self.oy / 6)
  186.     @mirror_sprite.z = self.z
  187.     # 色を白っぽくする
  188.     @mirror_sprite.tone.red = 64
  189.     @mirror_sprite.tone.green = 64
  190.     @mirror_sprite.tone.blue = 64
  191.     # 不透明にする
  192.     @mirror_sprite.opacity = 0
  193.     # 左右を反転させる
  194.     @mirror_sprite.mirror = (self.mirror == false)
  195.     # タイル ID が有効な値の場合
  196.     if @tile_id >= 1 then
  197.       # メソッドを返す
  198.       return
  199.     end
  200.     # キャラクターの向きに応じて分岐
  201.     case @character.direction
  202.     # 下
  203.     when 2 then
  204.       direction = 8
  205.     # 左
  206.     when 4 then
  207.       direction = 6
  208.     # 右
  209.     when 6 then
  210.       direction = 4
  211.     # 上
  212.     when 8 then
  213.       direction = 2
  214.     end
  215.     index = @character.character_index
  216.     pattern = @character.pattern < 3 ? @character.pattern : 1
  217.     sx = (index % 4 * 3 + pattern) * @cw
  218.     sy = (index / 4 * 4 + (direction - 2) / 2) * @ch
  219.     @mirror_sprite.src_rect.set(sx, sy, @cw, @ch)
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 鏡の壁有効判定
  223.   #    x : X 座標
  224.   #    y : Y 座標
  225.   #--------------------------------------------------------------------------
  226.   def mirror_wall_include?(x, y)
  227.     # 目標のタイルが鏡の壁の場合
  228.     if $game_map.terrain_tag_include?(x, y, MINTO::Mirror_Wall_ID)
  229.       # 鏡の壁無効化タイルが有効な場合
  230.       unless MINTO::Not_Mirror_Wall_ID.nil?
  231.         # 鏡の壁が無効化されていない場合
  232.         unless $game_map.terrain_tag_include?(x, y, MINTO::Not_Mirror_Wall_ID)
  233.           # メソッドを返す
  234.           return true
  235.         end
  236.       # 無効化タイルを使用していない場合
  237.       else
  238.         # メソッドを返す
  239.         return true
  240.       end
  241.     end
  242.     # メソッドを返す
  243.     return false
  244.   end
  245.   #--------------------------------------------------------------------------
  246.   # ● 影の更新
  247.   #    alias : update_mirror_tile_Mirror_Wall
  248.   #--------------------------------------------------------------------------
  249.   alias :update_mirror_tile_Mirror_Wall :update_mirror_tile
  250.   def update_mirror_tile
  251.     # 元の処理を実行
  252.     update_mirror_tile_Mirror_Wall
  253.     # 鏡を更新
  254.     update_mirror
  255.   end
  256.   #--------------------------------------------------------------------------
  257.   # ● 鏡の更新
  258.   #--------------------------------------------------------------------------
  259.   def update_mirror
  260.     # 現在の位置を取得
  261.     x = @character.x
  262.     y = @character.y
  263.     @z_plus = -1
  264.     # 元々鏡が存在しない場合
  265.     if @mirror_sprite == nil then
  266.       # 処理を終了
  267.       return
  268.     end
  269.     # 機能が無効化されている場合
  270.     if $game_switches[MINTO::Not_MirrorWall_Switch] == true then
  271.       # 不可視状態にする
  272.       @mirror_sprite.visible = false
  273.       # メソッドを返す
  274.       return
  275.     end
  276.     # マップで無い場合
  277.     unless SceneManager.scene.is_a?(Scene_Map)
  278.       # メソッドを返す
  279.       return
  280.     end
  281.     # スプライトセットの有効判定
  282.     effective = (SceneManager.scene.spriteset != nil)
  283.     # スプライトセットが有効で、且つ一歩上に鏡の壁イベントが存在する場合
  284.     if effective and SceneManager.scene.spriteset.mirror_wall[x, y-1] == 1 then
  285.       # Y座標補正値を初期化する
  286.       @y_plus = -48
  287.       # 透明度を調節
  288.       @mirror_sprite.opacity = (@mirror_sprite.opacity + 6).to_m(160)
  289.       @z_plus = 999
  290.       #@mirror_sprite.wave_amp = 1
  291.       #@mirror_sprite.wave_length = 40
  292.       #@mirror_sprite.wave_speed = 320
  293.     # 一歩上のタイルが鏡の壁以外の場合
  294.     elsif mirror_wall_include?(x, (y - 1)) == false then
  295.       # 不透明にする
  296.       @mirror_sprite.opacity = 0
  297.       # 鏡を不可視状態にする
  298.       @mirror_sprite.visible = false
  299.       #@mirror_sprite.wave_amp = 0
  300.       #@mirror_sprite.wave_length = 0
  301.       #@mirror_sprite.wave_speed = 0
  302.       # 処理を終了
  303.       return
  304.     # 一歩上のタイルが鏡の壁の場合
  305.     else
  306.       # Y座標補正値を初期化する
  307.       @y_plus = -32
  308.       # 透明度を調節
  309.       @mirror_sprite.opacity = (@mirror_sprite.opacity + 6).to_m(160)
  310.       #@mirror_sprite.wave_amp = 0
  311.       #@mirror_sprite.wave_length = 0
  312.       #@mirror_sprite.wave_speed = 0
  313.     end
  314.     # タイル ID が有効な値の場合
  315.     if @tile_id >= 1 then
  316.       # 各情報を更新する
  317.       @mirror_sprite.src_rect = self.src_rect
  318.       @mirror_sprite.x = self.x
  319.       @mirror_sprite.y = self.y + (self.oy / 6) + @y_plus
  320.       @mirror_sprite.z = self.z - 1
  321.       @mirror_sprite.visible = self.visible
  322.       # メソッドを返す
  323.       return
  324.     end
  325.     # キャラクターの向きに応じて分岐
  326.     case @character.direction
  327.     # 下
  328.     when 2 then
  329.       direction = 8
  330.     # 左
  331.     when 4 then
  332.       direction = 6
  333.     # 右
  334.     when 6 then
  335.       direction = 4
  336.     # 上
  337.     when 8 then
  338.       direction = 2
  339.     end
  340.     # 各情報を更新する
  341.     index = @character.character_index
  342.     pattern = @character.pattern < 3 ? @character.pattern : 1
  343.     sx = (index % 4 * 3 + pattern) * @cw
  344.     sy = (index / 4 * 4 + (direction - 2) / 2) * @ch
  345.     @mirror_sprite.src_rect.set(sx, sy, @cw, @ch)
  346.     @mirror_sprite.x = self.x
  347.     @mirror_sprite.y = self.y + (self.oy / 6) + @y_plus
  348.     @mirror_sprite.z = self.z + @z_plus
  349.     @mirror_sprite.visible = self.visible
  350.     @mirror_sprite.update
  351.   end
  352. end
  353. #==============================================================================
  354. # ■ Scene_Map
  355. #------------------------------------------------------------------------------
  356. #  マップ画面の処理を行うクラスです。
  357. #==============================================================================
  358.  
  359. class Scene_Map
  360.   #--------------------------------------------------------------------------
  361.   # ● 公開インスタンス変数
  362.   #--------------------------------------------------------------------------
  363.   attr_accessor :spriteset                  # スプライトセット
  364. end
  365.  
  366. end
反射

作者: tseyik    时间: 2014-3-31 09:21
本帖最后由 tseyik 于 2014-3-31 09:24 编辑

http://galvs-scripts.com/categor ... l-effects/#post-662
Character Effects

脚本+範例
http://galvs-scripts.com/galvs-character-effects/
作者: 冰之滄月    时间: 2014-3-31 17:02
tseyik 发表于 2014-3-31 09:21
http://galvs-scripts.com/category/rmvxa-scripts/audiovisual-effects/#post-662
Character Effects

那请问把脚本复制到插件栏目后还需要做些什么才能做到以上的四种效果呢?
作者: tseyik    时间: 2014-3-31 17:20
脚本1〜180行就是説明
狐狗機翻(1~100行)
# ------------------------------------------------- ----------------------------- #
#腳本調用:
# ------------------------------------------------- ----------------------------- #

# char_effects ( X,X ,X ,狀態)

# ------------------------------------------------- ----------------------------- #
# #每個效果可以為true或false來啟用/遊戲過程中禁用它們。
# #你可以一次改變效果的倍數, x是影響數
# # 0 =反映1 =陰影2 =鏡3 =圖標
# ------------------------------------------------- ----------------------------- #
#示例:
# char_effects ( 0 , TRUE) #反過來思考
# char_effects ( 0,2 ,TRUE)依次反射和鏡面上
# char_effects ( 1,3 , FALSE) #把陰影和圖標關閉
# ------------------------------------------------- ----------------------------- #

# reflect_sprite ( actor_id ,文件名, POS ) #改變演員的反映字符集

# reflect_esprite (事項標識,文件名, POS ) # Change事件的反映字符集

# reflect_vsprite ( vehicle_id ,文件名, POS ) #改變車輛的反映字符集

# ------------------------------------------------- ----------------------------- #
#示例:
# reflect_sprite ( 1 , “ ACTOR2 ” , 2 ) #變演員1的字符集使用精靈
# #在“ ACTOR2 ”字符集位置2 。
# reflect_esprite ( 3 , “ Actor4 ” , 5 ) #事件3將使用雪碧的位置5
# # “ Actor4 ”字符集。
# reflect_vsprite ( 1 , “車輛” , 5 ) #船舶將使用雪碧的位置5
# # “車輛”的字符集。
# ------------------------------------------------- ----------------------------- #

# ------------------------------------------------- ----------------------------- #
#腳本調用打開效果ON或OFF選擇的事項
# ------------------------------------------------- ----------------------------- #

#reflect( X,X ,X ,狀態) #狀態可以是true或false來打開或關閉
# #使用這個指定鏡像和反映。
#shadow( X,X ,X ,狀態) #其中x是您要更改的事件ID
# #更改所有事件使用:所有
#icon( X,X ,X , icon_id ) #集出現上述字符的圖標ID 。使
# # ,0為無圖標。
作者: 冰之滄月    时间: 2014-3-31 17:32
冰之滄月 发表于 2014-3-31 17:02
那请问把脚本复制到插件栏目后还需要做些什么才能做到以上的四种效果呢? ...

@tseyik 谢谢。不过镜子的图块在哪里?




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