Project1

标题: [已解决]]怎么在游戏中设置某个脚本有效和无效 [打印本页]

作者: devil033    时间: 2017-1-15 00:33
标题: [已解决]]怎么在游戏中设置某个脚本有效和无效
本帖最后由 devil033 于 2017-1-15 11:33 编辑

这是一个移动美化脚本,但这个脚本和软件自带的 卷动地图 功能冲突,也就是用了这个脚本后,卷动地图 功能就用不了了
所以想在特定的场景或时间,把这个脚本无效化,等过了这个场景或时间点,再又把这个脚本有效化,这要怎么改?然后怎么使用?

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 弹性滚动地图 V 1.00 BY SLICK
  3. #------------------------------------------------------------------------------
  4. #  处理主角的类。事件启动的判定、以及地图的滚动等功能。
  5. # 本类的实例请参考 $game_player。
  6. # 我:。。。这个黄金版已经被改的面目全非了
  7. #==============================================================================
  8.  
  9.  
  10. class Game_Player < Game_Character
  11.   MOVESPEA = 0.265625#这数值。。。囧
  12.   def update_scroll(last_real_x, last_real_y)
  13.     ax1 = $game_map.adjust_x(last_real_x)
  14.     ay1 = $game_map.adjust_y(last_real_y)
  15.     ax2 = $game_map.adjust_x(@real_x)
  16.     ay2 = $game_map.adjust_y(@real_y)
  17.     movespeb = (2 ** (@move_speed+1))*MOVESPEA
  18.     movesped = movespeb / Graphics.width
  19.     movespec = movespeb / Graphics.height
  20.     tmp=center_x-ax2
  21.     $game_map.scroll_left(movesped*tmp) if tmp>0
  22.     $game_map.scroll_right(-movesped*tmp) if tmp<0
  23.     tmp=center_y-ay2
  24.     $game_map.scroll_up(movespec*tmp) if tmp>0
  25.     $game_map.scroll_down(-movespec*tmp) if tmp<0   
  26.   end  
  27. end



作者: 百里_飞柳    时间: 2017-1-15 11:11
这个脚本比较简洁,可以直接改为用开关控制

不过要注意的一点是,弹性地图滚动时,会自动将主角归位为画面中心,所以这才出现了你的地图移动无效bug
如果需要修复这个bug请去找原作者,可能该精简版删去了对应的bug修复处理。

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 弹性滚动地图 V 1.00 BY SLICK
  3. #------------------------------------------------------------------------------
  4. #  处理主角的类。事件启动的判定、以及地图的滚动等功能。
  5. # 本类的实例请参考 $game_player。
  6. # 我:。。。这个黄金版已经被改的面目全非了
  7. #==============================================================================
  8.  
  9.  
  10. class Game_Player < Game_Character
  11.  
  12.   #此处更改控制地图移动方式的开关的ID
  13.   #  - 当该序号的开关开启时,为默认地图移动方式
  14.   #  - 当该序号的开关关闭时,为弹性滚动(注意:若主角不为画面中心,则地图画面会自动归位为主角中心)
  15.   S_ID = 10
  16.  
  17.   MOVESPEA = 0.265625#这数值。。。囧
  18.  
  19.   alias eagle_update_scroll_move_map update_scroll
  20.   def update_scroll(last_real_x, last_real_y)
  21.     if($game_switches[S_ID])
  22.       eagle_update_scroll_move_map(last_real_x, last_real_y)
  23.       return
  24.     end
  25.     ax1 = $game_map.adjust_x(last_real_x)
  26.     ay1 = $game_map.adjust_y(last_real_y)
  27.     ax2 = $game_map.adjust_x(@real_x)
  28.     ay2 = $game_map.adjust_y(@real_y)
  29.     movespeb = (2 ** (@move_speed+1))*MOVESPEA
  30.     movesped = movespeb / Graphics.width
  31.     movespec = movespeb / Graphics.height
  32.     tmp=center_x-ax2
  33.     $game_map.scroll_left(movesped*tmp) if tmp>0
  34.     $game_map.scroll_right(-movesped*tmp) if tmp<0
  35.     tmp=center_y-ay2
  36.     $game_map.scroll_up(movespec*tmp) if tmp>0
  37.     $game_map.scroll_down(-movespec*tmp) if tmp<0   
  38.   end  
  39.  
  40. end

作者: devil033    时间: 2017-1-15 11:32
@百里_飞柳
已解决,相当有效,非常感谢




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