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

Project1

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

[已经过期] 怎样设置镜子的反射效果

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
33 小时
注册时间
2012-10-3
帖子
25
跳转到指定楼层
1
发表于 2012-10-6 20:07:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
玩别人的游戏时,发现镜子可以反射影像,自己做游戏不知道怎么弄。请问该如何处理

Lv3.寻梦者

梦石
0
星屑
3582
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
2
发表于 2012-10-6 21:51:09 | 只看该作者
  1. #◆◇◆◇◆ 鏡床スクリプト ver 1.02 ◇◆◇◆◇
  2. #  サポート掲示板 http://www2.ezbbs.net/21/minto-aaa/
  3. #   by みんと

  4. =begin

  5. 更新履历

  6. ver 1.02
  7. 修改在特定条件下错误落下的错误。

  8. ver 1.01
  9. 修改雪碧解放时的错误。

  10. 说明

  11. 现在人物正站着在数据库·图块·地形标志,需倒影的设为“1”
  12. 「一步下」的瓷砖当地形标签,特定的数值的情况,
  13. 在一步下的瓷砖上映出人物的半透明的影像。

  14. 适合水面等演出。

  15. 活动的情况,「最初的」实行内容
  16. 由于「注释」,注释的内容只有影描写的情况,同样地映出。
  17. 没有设立的情况不[没] 映出因为,
  18. 想映出的活动在只有请设立。

  19. 引进地点的注意
  20. 用别名被构成因为,
  21. 尽可能下的方面引进,请给我。
  22. =end

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

  28. module MINTO
  29.   
  30.   # 鏡床スクリプトを有効化 ( true で有効 / false で無効 )
  31.   #RGSS["Mirror_Tile"] = true
  32.   RGSS_SZ_A = true
  33. end

  34. #if MINTO::RGSS["Mirror_Tile"] == true then
  35. if MINTO::RGSS_SZ_A == true then

  36. #==============================================================================
  37. # ☆ カスタマイズ
  38. #------------------------------------------------------------------------------
  39. #   機能のカスタマイズを行うモジュールです。
  40. #==============================================================================

  41. module MINTO
  42.   
  43.   # 鏡床のタイルとして扱う地形タグのID
  44.   Mirror_Tile_ID = 1
  45.   
  46. end
  47. #==============================================================================
  48. # ■ Sprite
  49. #------------------------------------------------------------------------------
  50. #  スプライト表示を扱う組み込みクラスです。
  51. #==============================================================================

  52. class Sprite
  53.   #--------------------------------------------------------------------------
  54.   # ● 複製の作成
  55.   #--------------------------------------------------------------------------
  56.   def dup
  57.     # 各データをコピー
  58.     sprite = Sprite.new(self.viewport)
  59.     sprite.bitmap = self.bitmap
  60.     sprite.x = self.x
  61.     sprite.y = self.y
  62.     sprite.z = self.z
  63.     sprite.visible = self.visible
  64.     sprite.ox = self.ox
  65.     sprite.oy = self.oy
  66.     sprite.angle = self.angle
  67.     sprite.mirror = self.mirror
  68.     sprite.opacity = self.opacity
  69.     sprite.blend_type = self.blend_type
  70.     sprite.color = self.color
  71.     rect = self.src_rect
  72.     sprite.src_rect.set(rect.x, rect.y, rect.width, rect.height)
  73.     sprite.zoom_x = self.zoom_x
  74.     sprite.zoom_y = self.zoom_y
  75.     return sprite
  76.   end
  77. end
  78. #==============================================================================
  79. # ■ Sprite_Character
  80. #------------------------------------------------------------------------------
  81. #  キャラクター表示用のスプライトです。
  82. #   Game_Character クラスのインスタンスを監視し、
  83. #   スプライトの状態を自動的に変化させます。
  84. #==============================================================================

  85. class Sprite_Character < RPG::Sprite
  86.   #--------------------------------------------------------------------------
  87.   # ● 解放
  88.   #--------------------------------------------------------------------------
  89.   def dispose
  90.     # 影が存在する場合
  91.     if @shadow_sprite != nil then
  92.       # 影を解放
  93.       @shadow_sprite.bitmap.dispose
  94.       @shadow_sprite.dispose
  95.     end
  96.     # スーパークラスを実行
  97.     super
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 地形タグの取得
  101.   #--------------------------------------------------------------------------
  102.   def terrain_tag(x, y)
  103.     # 地形タグの情報を返す
  104.     return $game_map.terrain_tag(x, y)
  105.   end
  106.   #--------------------------------------------------------------------------
  107.   # ● 影の作成
  108.   #--------------------------------------------------------------------------
  109.   def shadow_set
  110.     # 影用のスプライトを生成
  111.     @shadow_sprite = self.dup
  112.     # 座標を調節する
  113.     @shadow_sprite.y = self.y - (self.oy / 6)
  114.     @shadow_sprite.z = self.z
  115.     # 色を白っぽくする
  116.     @shadow_sprite.tone.red = 64
  117.     @shadow_sprite.tone.green = 64
  118.     @shadow_sprite.tone.blue = 64
  119.     # 半透明にする
  120.     @shadow_sprite.opacity = 160
  121.     # 180度回転させる
  122.     @shadow_sprite.angle = 180
  123.     # 左右を反転させる
  124.     @shadow_sprite.mirror = (not self.mirror == true)
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 影の更新
  128.   #--------------------------------------------------------------------------
  129.   def update_shadow
  130.     # キャラクターの現在位置を取得
  131.     x = @character.x
  132.     y = @character.y
  133.     # 元々影が存在しない場合
  134.     if @shadow_sprite == nil then
  135.       # 処理を終了
  136.       return
  137.     end
  138.     # 下のタイルの地形タグのIDが Mirror_Tile_ID 以外の場合
  139.     if terrain_tag(x, y+1) != MINTO::Mirror_Tile_ID then
  140.       # 影を不可視状態にする
  141.       @shadow_sprite.visible = false
  142.       # 処理を終了
  143.       return
  144.     # 下のタイルの地形タグのIDが Mirror_Tile_ID の場合
  145.     else
  146.       # Y座標補正値を初期化する
  147.       @y_plus = 0
  148.     end
  149.     # 各情報を更新する
  150.     rect = self.src_rect
  151.     @shadow_sprite.src_rect.set(rect.x, rect.y, rect.width, rect.height)
  152.     @shadow_sprite.x = self.x
  153.     @shadow_sprite.y = self.y - (self.oy / 6) + @y_plus
  154.     @shadow_sprite.opacity = self.opacity - 95
  155.     @shadow_sprite.z = self.z - 1
  156.     @shadow_sprite.visible = self.visible
  157.   end
  158.   #--------------------------------------------------------------------------
  159.   # ● フレーム更新
  160.   #    alias : update_MINTO_Mirror_Tile
  161.   #--------------------------------------------------------------------------
  162.   alias update_MINTO_Mirror_Tile update
  163.   def update
  164.     # 元の処理を実行
  165.     update_MINTO_Mirror_Tile
  166.     # まだ影を作成していない場合
  167.     if @shadow == nil then
  168.       # キャラクターがイベントの場合
  169.       if @character.is_a?(Game_Event) == true then
  170.         # 有効なイベントの場合
  171.         if @character.list != nil then
  172.           # 最初の内容が注釈の場合
  173.           if @character.list[0].code == 108 then
  174.             # 注釈の内容が「影描写」だった場合
  175.             if @character.list[0].parameters == ["影描写"] then
  176.               # 影を作成
  177.               shadow_set
  178.               # 作成済みフラグをオン
  179.               @shadow = true
  180.             end
  181.           end
  182.         end
  183.       # キャラクターがプレイヤーの場合
  184.       else
  185.         # 影を作成
  186.         shadow_set
  187.         # 作成済みフラグをオン
  188.         @shadow = true
  189.       end
  190.     end
  191.     # 影を更新
  192.     update_shadow
  193.   end
  194. end

  195. end
复制代码

评分

参与人数 1星屑 +100 收起 理由
hcm + 100 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
33 小时
注册时间
2012-10-3
帖子
25
3
 楼主| 发表于 2012-10-7 07:32:17 | 只看该作者
谢谢您的回答,我研究看看
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
35 小时
注册时间
2012-1-21
帖子
21
4
发表于 2012-10-17 16:24:55 | 只看该作者
yagami 发表于 2012-10-6 21:51

@yagami我用过啦 这似乎是地面的反射啊 不是镜子的{:2_286:}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 11:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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