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

Project1

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

[已经解决] 怎样做一个完美的镜像事件?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1525
在线时间
308 小时
注册时间
2011-7-23
帖子
150
跳转到指定楼层
1
发表于 2014-8-11 15:21:30 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
想做一个镜像的效果 角色动镜像也会动
但是如果是用按钮被按下时移动的话 镜像和角色的移动很容易就不同步了 怎么解决 - -


Lv1.梦旅人

梦石
0
星屑
50
在线时间
269 小时
注册时间
2014-5-9
帖子
127

开拓者

2
发表于 2014-8-11 19:11:22 | 只看该作者
泉眼无声惜细流,树阴照水爱晴柔。
小荷才露尖尖角,早有蜻蜓立上头。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1525
在线时间
308 小时
注册时间
2011-7-23
帖子
150
3
 楼主| 发表于 2014-8-11 19:44:30 | 只看该作者
泉塚四季 发表于 2014-8-11 19:11
https://rpg.blue/home.php?mod=space&uid=291206&do=blog&id=13465

return unless $game_variables[M5MoveTogether::VAR].is_a?(Array)

为什么这一行会报错?除了变量那个我改成VAR=11以外就没动了

点评

请问报错内容是什么呢?  发表于 2014-8-11 21:41
难道是把VAR或者M5MoveTogether 改掉了,然后这行报错?  发表于 2014-8-11 20:24
……这行怎么看都不像是能报错的样子…… 报什么错?  发表于 2014-8-11 20:13
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10014
在线时间
5019 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

4
发表于 2014-9-19 13:03:27 | 只看该作者
如果你会PS的话,不妨看看这个VA镜像脚本
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
89
在线时间
900 小时
注册时间
2012-11-13
帖子
893
5
发表于 2014-9-20 10:02:27 | 只看该作者
镜像脚本

RGSS 代码复制
  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

RGSS 代码复制
  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
废弃
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22391
在线时间
8597 小时
注册时间
2011-12-31
帖子
3364
6
发表于 2014-9-20 10:45:39 | 只看该作者
本帖最后由 tseyik 于 2014-9-20 10:48 编辑

http://galvs-scripts.com/2013/02/21/character-effects/
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

7
发表于 2014-9-20 12:09:07 | 只看该作者
墓雷 发表于 2014-8-11 02:44
return unless $game_variables[M5MoveTogether::VAR].is_a?(Array)

为什么这一行会报错?除了变量那个 ...

变量用1试试看
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-2-22 18:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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