Project1

标题: 弹性滚动地图使得事件中地图卷动失效的解决办法 [打印本页]

作者: 我是老A    时间: 2016-2-9 22:49
标题: 弹性滚动地图使得事件中地图卷动失效的解决办法
本帖最后由 我是老A 于 2016-2-9 22:53 编辑

在使用弹性地图滚动后,会发现在事件中的地图滚动失效了,只会稍微滚动一下就弹回主角了。对于我们这些脚本盲我们不会大改脚本,但我们玩小手段。
对这个脚本(话说脚本框怎么用为啥找不到了,为啥不能插图片)
  1. =========================================================================
  2. # ■ 弹性滚动地图 V 1.00 BY SLICK
  3. #------------------------------------------------------------------------------
  4. #  处理主角的类。事件启动的判定、以及地图的滚动等功能。
  5. # 本类的实例请参考 $game_player。
  6. # 我:。。。这个黄金版已经被改的面目全非了
  7. #==============================================================================


  8. class Game_Player < Game_Character

  9.   MOVESPEA=  0.265625                                                   #这里改
  10.   def update_scroll(last_real_x, last_real_y)
  11.      

  12.       ax1 = $game_map.adjust_x(last_real_x)
  13.       ay1 = $game_map.adjust_y(last_real_y)
  14.       ax2 = $game_map.adjust_x(@real_x)
  15.       ay2 = $game_map.adjust_y(@real_y)
  16.       movespeb = (2 ** (@move_speed+1))*MOVESPEA  #这里改
  17.       movesped = movespeb / Graphics.width
  18.       movespec = movespeb / Graphics.height
  19.    
  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
复制代码
把里面的MOVESPEA前加上个$
变成
  1. $MOVESPEA
复制代码
话说这是不是变成了全局变量?不懂,只知道这么能办。

在需要卷动时在前面插入脚本
  1. $MOVESPEA = 1
复制代码
卷动结束后在后面再恢复
  1. $MOVESPEA = 0.265625
复制代码
这样只是在卷动时不会有弹性效果,实现共存了。

如果忘记恢复,地图就不会卷动了,所以务必要恢复。
不知道你们明白不,我也不知道原理,随便蒙的。如果有大神愿意给我讲讲,我也谢谢了。我搜了一下大概没有重复的吧。



作者: 我是老A    时间: 2016-2-10 23:45
这个还有个好处,当你把$MOVESPEA改回成0.265625,画面会自动弹回去,就免去了再卷动回去的麻烦。
作者: duzine    时间: 2016-2-13 12:53
剛好很需要!  終於有人注意到這個問題
不過看起來樓主也不是很懂原理,就看有沒有大神路過抓幾隻蟲子走再用用看
(先收藏了




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