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

Project1

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

[已经过期] 如何让远景图固定不动?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
25
在线时间
2 小时
注册时间
2018-1-22
帖子
1
跳转到指定楼层
1
发表于 2018-1-30 12:29:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是随着地图动才动的那种。。有人知道怎么解决吗?
Be Caesar, or null

Lv4.逐梦者

梦石
1
星屑
14790
在线时间
2106 小时
注册时间
2017-9-28
帖子
662
2
发表于 2018-1-30 13:22:21 | 只看该作者
  1. #==============================================================================
  2. # +++ MOG - 远景图效果 EX (v1.2) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # https://atelierrgss.wordpress.com/
  6. #==============================================================================
  7. #  为远景图添加一些效果.
  8. # - 远景图之间平滑渐变.
  9. # - 波动效果.
  10. # - 循环淡入淡出.
  11. # - 循环放大缩小.
  12. # - 固定在地图上.
  13. #
  14. #==============================================================================

  15. #==============================================================================
  16. # ● 预定义模式
  17. #==============================================================================
  18. # 在地图备注栏里放入相应备注即可生效.
  19. #
  20. # <Parallax Wave>            =>波动
  21. #
  22. # <Parallax Fade>            =>淡入淡出
  23. #
  24. # <Parallax Zoom>            =>放大缩小
  25. #
  26. # <Parallax Fixed>           =>固定
  27. #
  28. # 波动强度取决于:地图设置里,远景图横向循环和纵向循环的自动卷动大小。
  29. #
  30. #==============================================================================
  31. # ● 自定义模式
  32. #==============================================================================
  33. # 使用脚本:
  34. #
  35. # parallax_effect(效果 1,效果 2)
  36. #
  37. # 效果 1 替换为:
  38. # 0 - 滚动
  39. # 1 - 波动
  40. # 2 - 放大缩小
  41. #
  42. # 效果 2 替换为:true/false
  43. #
  44. # 设定开启或关闭该效果.
  45. #
  46. #==============================================================================
  47. # 关闭平滑渐变的脚本:
  48. #
  49. # parallax_transition(false)
  50. #
  51. #==============================================================================

  52. #==============================================================================
  53. # ● NOTA
  54. #==============================================================================
  55. # 波动和放大缩小效果会抵消掉滚动的效果。
  56. # 固定效果无法与其他效果同时使用。
  57. #==============================================================================

  58. module MOG_PARALLAX_EX
  59.     #设置屏幕大小.
  60.     SCREEN_RESOLUTION = [544,416]
  61.     #设置放大缩小的强度 (0.1 到 0.0001)
  62.     PARALLAX_ZOOM_POWER = 0.005
  63. end  

  64. #==============================================================================
  65. # ■ Game System
  66. #==============================================================================
  67. class Game_System
  68.   
  69.   attr_accessor :parallax_change_values
  70.   attr_accessor :parallax_ignore_transition
  71.   
  72.   #--------------------------------------------------------------------------
  73.   # ● Initialize
  74.   #--------------------------------------------------------------------------   
  75.   alias mog_parallax_effects_initialize initialize
  76.   def initialize
  77.       @parallax_change_values = []
  78.       @parallax_ignore_transition = false
  79.       mog_parallax_effects_initialize
  80.   end  
  81.   
  82.   #--------------------------------------------------------------------------
  83.   # ● Can Update Parallax_EX
  84.   #--------------------------------------------------------------------------        
  85.   def can_update_parallax_ex?
  86.       if $schala_battle_system != nil
  87.          return false if $game_temp.battle_phase[0]
  88.       end   
  89.       return true
  90.   end  
  91.   
  92. end  

  93. #==============================================================================
  94. # ■ Game Intepreter
  95. #==============================================================================
  96. class Game_Interpreter

  97.   #--------------------------------------------------------------------------
  98.   # ● Parallax Transition
  99.   #--------------------------------------------------------------------------     
  100.   def parallax_transition(value = false)
  101.       $game_system.parallax_ignore_transition = value
  102.   end  
  103.   
  104.   #--------------------------------------------------------------------------
  105.   # ● Effect
  106.   #--------------------------------------------------------------------------      
  107.   def parallax_effect(value = true,fade = false,zoom = false,fixed_p = false)
  108.       value2 = value == true ? 1 : 0
  109.       $game_map.parallax_effect = [value2,120,fade,0,zoom,0,fixed_p]
  110.   end  
  111.   
  112.   #--------------------------------------------------------------------------
  113.   # ● Command 284
  114.   #--------------------------------------------------------------------------   
  115.   alias mog_parallax_effects_command_284 command_284
  116.   def command_284
  117.       if $game_system.can_update_parallax_ex?
  118.          if !$game_system.parallax_ignore_transition
  119.              $game_system.parallax_change_values.clear
  120.              $game_system.parallax_change_values[0] = @params[0]
  121.              $game_system.parallax_change_values[1] = @params[1]
  122.              $game_system.parallax_change_values[2] = @params[2]
  123.              $game_system.parallax_change_values[3] = @params[3]
  124.              $game_system.parallax_change_values[4] = @params[4]     
  125.              $game_map.parallax_effect[1] = 120
  126.              return
  127.          end
  128.          $game_map.parallax_effect[1] = 0
  129.       end
  130.       mog_parallax_effects_command_284  
  131.    end

  132. end   

  133. #==============================================================================
  134. # ■ Game Map
  135. #==============================================================================
  136. class Game_Map
  137.   attr_accessor :parallax_effect
  138.   attr_accessor :parallax_sx
  139.   attr_accessor :parallax_sy
  140.   attr_accessor :parallax_loop_x
  141.   attr_accessor :parallax_loop_y
  142.   attr_accessor :parallax_sprite
  143.   
  144.   #--------------------------------------------------------------------------
  145.   # ● Setup Parallax
  146.   #--------------------------------------------------------------------------     
  147.   alias mog_parrallax_effects_setup_parallax setup_parallax
  148.   def setup_parallax
  149.       mog_parrallax_effects_setup_parallax
  150.       setup_parallax_effects  
  151.   end   

  152.   #--------------------------------------------------------------------------
  153.   # ● Setup Parallax Effects
  154.   #--------------------------------------------------------------------------      
  155.   def setup_parallax_effects
  156.       return if @map == nil
  157.       @parallax_effect = [0,0,false,0,false,0,false]
  158.       @parallax_sprite = [0,0,255,1.00,0]
  159.       if @map.note =~ /<Parallax Wave>/
  160.          @parallax_effect[0] = 1
  161.       end
  162.       if @map.note =~ /<Parallax Fade>/
  163.          @parallax_effect[2] = true
  164.       end
  165.       if @map.note =~ /<Parallax Zoom>/
  166.          @parallax_effect[4] = true
  167.       end         
  168.       if @map.note =~ /<Parallax Fixed>/
  169.          @parallax_effect[6] = true
  170.       end         
  171.   end
  172.   
  173. end
  174. #==============================================================================
  175. # ■ Spriteset Map
  176. #==============================================================================
  177. class Spriteset_Map
  178.   include MOG_PARALLAX_EX
  179.   
  180.   #--------------------------------------------------------------------------
  181.   # ● Create Parallax
  182.   #--------------------------------------------------------------------------  
  183.   def create_parallax
  184.       refresh_parallax
  185.   end
  186.   
  187.   #--------------------------------------------------------------------------
  188.   # ● Dispose Parallax
  189.   #--------------------------------------------------------------------------
  190.   def dispose_parallax
  191.       return if @parallax == nil
  192.       @parallax.bitmap.dispose if @parallax.bitmap
  193.       @parallax.dispose
  194.       @parallax_image.dispose if @parallax_image != nil
  195.   end
  196.   
  197.   #--------------------------------------------------------------------------
  198.   # ● Update Parallax
  199.   #--------------------------------------------------------------------------      
  200.   alias mog_parallax_ex_update_parallax update_parallax
  201.   def update_parallax
  202.       if $game_system.can_update_parallax_ex?
  203.          refresh_parallax if can_refresh_parallax?
  204.          update_parallax_transition_effect
  205.          update_parallax_effects
  206.          return
  207.       end
  208.       mog_parallax_ex_update_parallax
  209.   end  
  210.   
  211.   #--------------------------------------------------------------------------
  212.   # ● Can Refresh Parallax?
  213.   #--------------------------------------------------------------------------        
  214.   def can_refresh_parallax?
  215.       return false if @parallax_name == $game_map.parallax_name
  216.       return false if $game_map.parallax_effect[1] > 0
  217.       return true
  218.   end
  219.    
  220.   #--------------------------------------------------------------------------
  221.   # ● Refresh Parallax
  222.   #--------------------------------------------------------------------------         
  223.   def refresh_parallax
  224.       dispose_parallax     
  225.       @parallax_name = $game_map.parallax_name
  226.       @parallax_effect_type = $game_map.parallax_effect[0]
  227.       @parallax_zoom_effect = $game_map.parallax_effect[4]
  228.       @parallax_zoom_speed = PARALLAX_ZOOM_POWER > 0.1 ? 0.1 : PARALLAX_ZOOM_POWER
  229.       @parallax_fade_effect = $game_map.parallax_effect[2]
  230.       @parallax_fixed_position = $game_map.parallax_effect[6]
  231.       @power_1 = $game_map.parallax_loop_x == true ? $game_map.parallax_sx : 0
  232.       @power_2 = $game_map.parallax_loop_y == true ? $game_map.parallax_sy : 0
  233.       @orig = [0,0]
  234.       @range = 0
  235.       if @parallax_effect_type == 0
  236.          if !($game_map.parallax_loop_x and $game_map.parallax_loop_y) and
  237.               @parallax_zoom_effect
  238.               create_parallax_type0
  239.               mode_zoom_setup
  240.          else
  241.               create_parallax_type1
  242.          end  
  243.       else  
  244.          create_parallax_type2
  245.          mode_zoom_setup
  246.       end  
  247.       @parallax.z = -100
  248.       @parallax.opacity = $game_map.parallax_sprite[2]      
  249.       Graphics.frame_reset
  250.       @parallax_effect_type = 1 if $game_map.parallax_effect[4]
  251.       update_parallax_effects
  252.   end  
  253.   
  254.   #--------------------------------------------------------------------------
  255.   # ● Mode Zoom Setup
  256.   #--------------------------------------------------------------------------              
  257.   def mode_zoom_setup
  258.       return if !@parallax_zoom_effect
  259.       @orig[0] = (@parallax.bitmap.width / 2)
  260.       @orig[1] = (@parallax.bitmap.height / 2)
  261.       @parallax.ox = @orig[0]
  262.       @parallax.oy = @orig[1]      
  263.       @parallax.x = @orig[0] -@range
  264.       @parallax.y = @orig[1]
  265.   end
  266.       
  267.   #--------------------------------------------------------------------------
  268.   # ● Create Parallax Type 0
  269.   #--------------------------------------------------------------------------            
  270.   def create_parallax_type0
  271.       @parallax = Sprite.new(@viewport1)
  272.       @parallax_image = Cache.parallax(@parallax_name)
  273.       @parallax.bitmap = Bitmap.new(SCREEN_RESOLUTION[0],SCREEN_RESOLUTION[1])
  274.       @parallax.bitmap.stretch_blt(@parallax.bitmap.rect, @parallax_image, @parallax_image.rect)
  275.   end  
  276.   
  277.   #--------------------------------------------------------------------------
  278.   # ● Create Parallax Type 1
  279.   #--------------------------------------------------------------------------            
  280.   def create_parallax_type1
  281.       @parallax = Plane.new(@viewport1)
  282.       @parallax.bitmap = Cache.parallax(@parallax_name)        
  283.   end

  284.   #--------------------------------------------------------------------------
  285.   # ● Create Parallax Type 2
  286.   #--------------------------------------------------------------------------              
  287.   def create_parallax_type2
  288.       @parallax = Sprite.new(@viewport1)
  289.       @parallax_image = Cache.parallax(@parallax_name)         
  290.       @range = (@power_1 + 1) * 10
  291.       @range = 500 if @range > 500
  292.       speed = (@power_2 + 1) * 100
  293.       speed = 1000 if speed > 1000
  294.       @parallax.x = -@range
  295.       @parallax.wave_amp = @range
  296.       @parallax.wave_length = SCREEN_RESOLUTION[0]
  297.       @parallax.wave_speed = speed
  298.       sc_size = [SCREEN_RESOLUTION[0] + (@range * 2),SCREEN_RESOLUTION[1]]
  299.       @parallax.bitmap = Bitmap.new(sc_size[0],sc_size[1])
  300.       @parallax.bitmap.stretch_blt(@parallax.bitmap.rect, @parallax_image, @parallax_image.rect)
  301.   end  
  302.   
  303.   #--------------------------------------------------------------------------
  304.   # ● Update parallax Fade
  305.   #--------------------------------------------------------------------------            
  306.   def update_parallax_transition_effect      
  307.       return if $game_map.parallax_effect[1] == 0
  308.       if @parallax_name == ""
  309.          refresh_parallax
  310.          if @parallax != nil
  311.             @parallax.opacity = 0
  312.             $game_map.parallax_effect[1] = 61
  313.          end   
  314.       end   
  315.       $game_map.parallax_effect[1] -= 1
  316.       execute_fade_effect if @parallax != nil      
  317.   end  
  318.   
  319.   #--------------------------------------------------------------------------
  320.   # ● Execute Fade Effect
  321.   #--------------------------------------------------------------------------              
  322.   def execute_fade_effect
  323.       case $game_map.parallax_effect[1]
  324.           when 61..120
  325.              $game_map.parallax_sprite[2] -= 5
  326.           when 1..60   
  327.              parallax_transition_setup if $game_map.parallax_effect[1] == 60
  328.              $game_map.parallax_sprite[2] += 5
  329.           else
  330.              $game_map.parallax_sprite[2] = 255
  331.       end
  332.   end  
  333.   
  334.   #--------------------------------------------------------------------------
  335.   # ● Parallax Transition Setup
  336.   #--------------------------------------------------------------------------               
  337.   def parallax_transition_setup
  338.       if !$game_system.parallax_change_values.empty?
  339.           cv = $game_system.parallax_change_values
  340.           $game_map.change_parallax(cv[0],cv[1],cv[2],cv[3],cv[4])
  341.       end
  342.       refresh_parallax
  343.       $game_map.parallax_sprite[2] = 0
  344.       $game_map.parallax_effect[3] = 0
  345.       $game_map.parallax_effect[5] = 0
  346.       @parallax.zoom_x = 1.00
  347.       @parallax.zoom_y = 1.00
  348.       $game_map.parallax_sprite[3] = 1.00        
  349.   end
  350.                
  351.   #--------------------------------------------------------------------------
  352.   # ● Update Parallax Effects
  353.   #--------------------------------------------------------------------------        
  354.   def update_parallax_effects
  355.       return if @parallax == nil
  356.       update_parallax_fade_effect
  357.       update_parallax_zoom_effect   
  358.       @parallax.opacity = $game_map.parallax_sprite[2]
  359.       if @parallax_effect_type == 0
  360.          if @parallax_fixed_position
  361.             @parallax.ox = $game_map.display_x * 32
  362.             @parallax.oy = $game_map.display_y * 32
  363.          else
  364.             @parallax.ox = $game_map.parallax_ox(@parallax.bitmap)
  365.             @parallax.oy = $game_map.parallax_oy(@parallax.bitmap)
  366.          end
  367.       else
  368.          @parallax.update         
  369.       end  
  370.   end
  371.    
  372.   #--------------------------------------------------------------------------
  373.   # ● Update Parallax Fade Effect
  374.   #--------------------------------------------------------------------------         
  375.   def update_parallax_fade_effect
  376.       return if !@parallax_fade_effect
  377.       return if $game_map.parallax_effect[1] > 0
  378.       $game_map.parallax_effect[3] += 1
  379.       case $game_map.parallax_effect[3]
  380.           when 0..60
  381.               $game_map.parallax_sprite[2] = 255
  382.           when 61..189
  383.               $game_map.parallax_sprite[2] -= 2
  384.           when 190..318
  385.               $game_map.parallax_sprite[2] += 2         
  386.         else
  387.           $game_map.parallax_effect[3] = 0
  388.           $game_map.parallax_sprite[2] = 255
  389.       end
  390.   end
  391.   
  392.   #--------------------------------------------------------------------------
  393.   # ● Update Parallax Zoom Effect
  394.   #--------------------------------------------------------------------------            
  395.   def update_parallax_zoom_effect
  396.       return if !@parallax_zoom_effect
  397.       $game_map.parallax_effect[5] += 1
  398.       case $game_map.parallax_effect[5]
  399.           when 0..120
  400.               $game_map.parallax_sprite[3] += @parallax_zoom_speed
  401.           when 121..240
  402.               $game_map.parallax_sprite[3] -= @parallax_zoom_speed
  403.         else
  404.           $game_map.parallax_effect[5] = 0
  405.           $game_map.parallax_sprite[3] = 1.00
  406.       end
  407.       @parallax.zoom_x = $game_map.parallax_sprite[3]
  408.       @parallax.zoom_y = $game_map.parallax_sprite[3]        
  409.   end  
  410.   
  411. end

  412. $mog_rgss3_parallax_ex = true
复制代码

评分

参与人数 1+1 收起 理由
houyuxiaoyang + 1

查看全部评分

VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-17 09:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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