Project1
标题:
交通工具 - 码头系统
[打印本页]
作者:
图灵
时间:
2017-3-16 12:05
标题:
交通工具 - 码头系统
本帖最后由 图灵 于 2017-3-16 12:07 编辑
所有交通工具只能在码头进行起降以及乘坐下船
如果有什么意见欢迎提出 我尽力完善
#==============================================================================
# ■ 码头系统
#------------------------------------------------------------------------------
# By:图灵
# 使用方法:将事件命名为码头即可。
# 码头影响范围默认为2 在下方 WHARTDIS 更改
#==============================================================================
#==============================================================================
# ■ Vector2
#------------------------------------------------------------------------------
# 处理二维向量的类。
#==============================================================================
class Vector2
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :x
attr_accessor :y
#--------------------------------------------------------------------------
# ● 初始化对像
#--------------------------------------------------------------------------
def initialize(x = 0, y = 0)
@x = x
@y = y
end
#--------------------------------------------------------------------------
# ● 计算距离
#--------------------------------------------------------------------------
def self.dis(x,y)
return Math.hypot(x,y)
end
end
#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
# 处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_reader :wharts
alias old_setup setup
def setup(map_id)
old_setup(map_id)
set_whart
end
#--------------------------------------------------------------------------
# ● 设置码头
#--------------------------------------------------------------------------
def set_whart
@wharts = []
@map.events.each_value do |event|
if event.name == "码头"
port = Vector2.new(event.x,event.y)
@wharts.push(port)
end
end
end
end
#==============================================================================
# ■ Game_Player
#------------------------------------------------------------------------------
# 处理主角的类。事件启动的判定、以及地图的滚动等功能。
# 本类的实例请参考 $game_player。
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ● 常量
# WHARTDIS = 码头影响范围
#--------------------------------------------------------------------------
WHARTDIS = 2
#--------------------------------------------------------------------------
# ● 上下交通工具
#--------------------------------------------------------------------------
def get_on_off_vehicle
return false unless movable?
can = false
$game_map.wharts.each do |i|
can = true if Vector2.dis(i.x-x,i.y-y)<WHARTDIS
end
if can
if in_vehicle?
return get_off_vehicle
else
return get_on_vehicle
end
end
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1