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

Project1

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

[已经解决] 用远景图作为地图时的问题

[复制链接]

Lv1.梦旅人

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

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

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

x
大家好,游戏接近制作尾声,不过遇到了新的问题,爬了文也爬不着的
游戏的地图使用的远景图与地图一样大,但是因为他是远景图,
所以角色跑到了事件定点时,可能还会有极大的误差
关於这个问题请大家帮帮我,谢谢!
x

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21584
在线时间
9407 小时
注册时间
2012-6-19
帖子
7117

开拓者短篇九导演组冠军

2
发表于 2015-8-22 12:11:34 | 只看该作者

点评

没事了!!!!!谢谢你喵呜喵5>A<  发表于 2015-8-22 13:44
还是会发生错位的现象,是因为从游戏中途开始测试吗(开关有打开了)  发表于 2015-8-22 13:41
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
103
在线时间
156 小时
注册时间
2013-8-6
帖子
76
3
发表于 2015-8-22 12:33:12 | 只看该作者
搬运,在地图备注栏写<远景固定>
  1. #==============================================================================
  2. # +++ MOG - Parallax EX (v1.2) +++
  3. #==============================================================================
  4. # By Moghunter
  5. # http://www.atelier-rgss.com/
  6. #==============================================================================
  7. # -  添加了一些全景效果。
  8. # - 全景之间的过渡。
  9. # - 波浪效果。 (可用于创建场景沙漠。)
  10. # - 循环消逝的影响
  11. # - 循环放大的影响
  12. # - 固定的位置影响。 (要创建场景的全景图。)
  13. #
  14. #==============================================================================

  15. #==============================================================================
  16. # ● Auto Mode
  17. #==============================================================================
  18. #为了使效果
  19. #从地图的注释框中写入以下注释内容。
  20. # <远景波浪>
  21. #
  22. # <远景消逝>
  23. #
  24. # <远景扩散>
  25. #
  26. # <远景固定>
  27. #
  28. # 影响波的功率是基于自动滚屏X和Y的值
  29. #
  30. #  X - 波失真效果。 (0至9)
  31. #  Y - 速波扭曲作用。 (0至9)
  32. #
  33. #==============================================================================
  34. # ●手动模式
  35. #==============================================================================
  36. #通过使用命令脚本的事件调用命令了。
  37. #
  38. # Parallax_effect(EFFECT 1,EFFECT 2,EFFECT 3)
  39. #
  40. ##EFFECT1的设置:
  41. #0 - 滚动效应
  42. #1 - 波效应
  43. #2 - 缩放效果
  44. #
  45. ##EFFECT2的设置
  46. #
  47. #开启或关闭。
  48. #
  49. #==============================================================================
  50. #如果万一你想禁用平稳过渡使用下面的代码。
  51. #
  52. #Parallax_transition(false)
  53. #
  54. #==============================================================================

  55. #==============================================================================
  56. # ● NOTA
  57. #==============================================================================
  58. #波放大效应会取消效果滚动(默认效果)
  59. #固定效果不与其他效果的工作。
  60. #==============================================================================

  61. module MOG_PARALLAX_EX
  62.     #D屏幕的大小
  63.     SCREEN_RESOLUTION = [544,416]
  64.     #放大的倍率. de (0.1 a 0.0001)
  65.     PARALLAX_ZOOM_POWER = 0.005
  66. end  

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

  96. #==============================================================================
  97. # ■ Game Intepreter
  98. #==============================================================================
  99. class Game_Interpreter

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

  135. end   

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

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

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

  415. $mog_rgss3_parallax_ex = true
复制代码

点评

明白,但我一般不换远景...  发表于 2015-8-22 14:06
使用此脚本的同时,切换远景图会导致错误  发表于 2015-8-22 13:40
使用此脚本的同时,切换远景图会导致错误  发表于 2015-8-22 13:39
笑尽天下可笑之事。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-2 10:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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