Project1
标题:
求个弹性滚动脚本
[打印本页]
作者:
耶和华
时间:
2011-5-29 13:37
标题:
求个弹性滚动脚本
RT,比如
忧雪の伤
的这个
http://rpg.blue/thread-177264-1-4.html
不过她这个是整合了好几个内容。
能否帮忙去掉其他的内容,只留下弹性滚动?或者重新写一个 ,囧。
作者:
忧雪の伤
时间:
2011-5-29 13:37
#==============================================================================
# ■ 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
fastmove = (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
#==============================================================================
# ■ 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
复制代码
作者:
耶和华
时间:
2011-5-29 14:58
忧雪の伤 发表于 2011-5-29 13:56
忧雪。。你不是没时间么。。{:nm_7:}
还得逼我出这招。。{:nm_6:}
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1