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

Project1

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

[已经解决] 求助给地图滚动增加一个开关

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-12
帖子
83
跳转到指定楼层
1
发表于 2013-1-13 12:49:03 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 ctvip 于 2013-1-13 13:23 编辑

#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
#   处理主角的类。事件启动的判定、以及地图的滚动等功能。
#    本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
  
  #--------------------------------------------------------------------------
  # ● 画面更新
  #--------------------------------------------------------------------------
  #def update
  ## 本地变量记录移动信息
  #last_moving = moving?
  ## 移动中、事件执行中、强制移动路线中、
  ## 信息窗口一个也不显示的时候
  #unless moving? or #$game_system.map_interpreter.running? or
  #@move_route_forcing #or $game_temp.message_window_showing
  ## 如果方向键被按下、主角就朝那个方向移动
  #case Input.dir4
  #when 2
  #move_down
  #when 4
  #move_left
  #when 6
  #move_right
  #when 8
  #move_up
  #end
  #end
  ## 本地变量记忆坐标
  #last_real_x = @real_x
  #last_real_y = @real_y
  #super
  #update_scroll(last_real_x, last_real_y)
  ## 不在移动中的情况下
  #unless moving?
  ## 上次主角移动中的情况
  #if last_moving
  ## 与同位置的事件接触就判定为事件启动
  #result = check_event_trigger_here([1,2])
  ## 没有可以启动的事件的情况下
  #if result == false
  ## 调试模式为 ON 并且按下 CTRL 键的情况下除外
  #unless $DEBUG and Input.press?(Input::CTRL)
  ## 遇敌计数下降
  #if @encounter_count > 0
  #@encounter_count -= 1
  #end
  #end
  #end
  #end
  ## 按下 C 键的情况下
  #if Input.trigger?(Input::C)
  ## 判定为同位置以及正面的事件启动
  #check_event_trigger_here ([0])
  #check_event_trigger_there([0,1,2])
  #end
  #end
  #end
  #--------------------------------------------------------------------------
  # ● 更新滚动
  #--------------------------------------------------------------------------
  def update_scroll(last_real_x, last_real_y)
  ax1 = $game_map.adjust_x(last_real_x)
  ay1 = $game_map.adjust_y(last_real_y)
  ax2 = $game_map.adjust_x(@real_x)
  ay2 = $game_map.adjust_y(@real_y)
  slowmove = (2 ** (@move_speed - 1)).to_i # 有一项为 0 不变
  fastmove = (2 **  @move_speed).to_i
  length   = (2 ** (@move_speed + 4)).to_i # 有一项为 0 不变
  if  ax2 < CENTER_X - 8
  if (ax2 - CENTER_X) <= -length
  $game_map.scroll_left(fastmove)
  else
  $game_map.scroll_left(slowmove)
  end
  elsif ax2 > CENTER_X + 8
  if   (ax2 - CENTER_X) >= length
  $game_map.scroll_right(fastmove)
  else
  $game_map.scroll_right(slowmove)
  end
  end
  if  ay2 < CENTER_Y - 8
  if (ay2 - CENTER_Y) <= -length
  $game_map.scroll_up(fastmove)
  else
  $game_map.scroll_up(slowmove)
  end
  elsif ay2 > CENTER_Y + 8
  if   (ay2 - CENTER_Y) >= length
  $game_map.scroll_down(fastmove)
  else
  $game_map.scroll_down(slowmove)
  end
  end   
  end

end

#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
#   处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
#==============================================================================

class Game_Map
  
  #--------------------------------------------------------------------------
  # ● 计算 X 座标减去显示座标
  #     x : X 座标
  #--------------------------------------------------------------------------
  def adjust_x(x)
  return x - @display_x
  end
  #--------------------------------------------------------------------------
  # ● 计算 Y 座标减去显示座标
  #     y : Y 座标
  #--------------------------------------------------------------------------
  def adjust_y(y)
  return y - @display_y
  end

end



以上是脚本,希望哪位朋友可以帮我解决下。上面的判断我没用,好象也用不起,想增加一个开关控制,可行否。

Lv1.梦旅人

梦石
0
星屑
50
在线时间
47 小时
注册时间
2012-12-12
帖子
83
3
 楼主| 发表于 2013-1-13 13:23:12 | 只看该作者
暂时还没发现什么大问题,呵呵

谢了,朋友。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
19819
在线时间
3118 小时
注册时间
2013-1-11
帖子
1292
2
发表于 2013-1-13 13:10:07 | 只看该作者
#==============================================================================
# ■ 弹性滚动地图 V 1.00 BY SLICK
#------------------------------------------------------------------------------
#  处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================

class Game_Player < Game_Character
  #--------------------------------------------------------------------------
  # ● 处理滚动
  #--------------------------------------------------------------------------
  def update_scroll(last_real_x, last_real_y)
    if $game_switches[1] == true    # 当1号开关打开,弹性滚动地图就关闭
      ax1 = $game_map.adjust_x(last_real_x)
      ay1 = $game_map.adjust_y(last_real_y)
      ax2 = $game_map.adjust_x(@real_x)
      ay2 = $game_map.adjust_y(@real_y)
      if ay2 > ay1 and ay2 > CENTER_Y
        $game_map.scroll_down(ay2 - ay1)
      end
      if ax2 < ax1 and ax2 < CENTER_X
        $game_map.scroll_left(ax1 - ax2)
      end
      if ax2 > ax1 and ax2 > CENTER_X
        $game_map.scroll_right(ax2 - ax1)
      end
      if ay2 < ay1 and ay2 < CENTER_Y
        $game_map.scroll_up(ay1 - ay2)
      end
    else
      ax1 = $game_map.adjust_x(last_real_x)
      ay1 = $game_map.adjust_y(last_real_y)
      ax2 = $game_map.adjust_x(@real_x)
      ay2 = $game_map.adjust_y(@real_y)
      slowmove = (2 ** (@move_speed - 1)).to_i
      fastmove = $game_variables[7]+(2 ** @move_speed).to_i
      length = (2 ** (@move_speed + 4)).to_i
      if ax2 < CENTER_X - 8
        if (ax2 - CENTER_X) <= -length
          $game_map.scroll_left(fastmove)
        else
          $game_map.scroll_left(slowmove)
        end
      elsif ax2 > CENTER_X + 8
        if (ax2 - CENTER_X) >= length
          $game_map.scroll_right(fastmove)
        else
          $game_map.scroll_right(slowmove)
        end
      end
      if ay2 < CENTER_Y - 8
        if (ay2 - CENTER_Y) <= -length
          $game_map.scroll_up(fastmove)
        else
          $game_map.scroll_up(slowmove)
        end
      elsif ay2 > CENTER_Y + 8
        if (ay2 - CENTER_Y) >= length
          $game_map.scroll_down(fastmove)
        else
        $game_map.scroll_down(slowmove)
        end
      end
    end
  end  
end

评分

参与人数 1星屑 +90 收起 理由
咕噜 + 90 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 12:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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