加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 mariofans 于 2013-12-30 15:09 编辑
地图事件库也就是类似的复制提取事件。我用了很多种方法,但是在提取的瞬间总是会卡一下。对于我正在制作的演示类游戏来说影响是非常大的。
这是我现在用的脚本:
module EventHelper def self.get_rpg_event(event_id, map_id=$game_map.map_id) map = $game_map.instance_variable_get(:@map) if map_id != $game_map.map_id map = load_data(sprintf("Data/Map%03d.rxdata", map_id)) end return map.events[event_id] end end class Game_Map # rpg_evt:需要刷新的事件RPG::Event, 用上面的get_rpg_event获得 # xy:坐标 # ss:需要打开的独立开关列表("ABCD") def spawn_event(rpg_evt, x, y, ss="") new_id = 1 + @map.events.keys.max new_evt = RPG::Event.new(x, y) new_evt.id = new_id new_evt.pages = rpg_evt.pages @map.events[new_id] = new_evt @events[new_id] = Game_Event.new(@map_id, new_evt) #@events[new_id].set_direction(dir)# $game_self_switches[[@map_id, new_id, ss]] = true # 刷新图块 refresh #$scene.instance_eval { @spriteset.update } $scene.instance_eval { @spriteset.dispose } $scene.instance_eval { @spriteset = Spriteset_Map.new } end end
module EventHelper
def self.get_rpg_event(event_id, map_id=$game_map.map_id)
map = $game_map.instance_variable_get(:@map)
if map_id != $game_map.map_id
map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
end
return map.events[event_id]
end
end
class Game_Map
# rpg_evt:需要刷新的事件RPG::Event, 用上面的get_rpg_event获得
# xy:坐标
# ss:需要打开的独立开关列表("ABCD")
def spawn_event(rpg_evt, x, y, ss="")
new_id = 1 + @map.events.keys.max
new_evt = RPG::Event.new(x, y)
new_evt.id = new_id
new_evt.pages = rpg_evt.pages
@map.events[new_id] = new_evt
@events[new_id] = Game_Event.new(@map_id, new_evt)
#@events[new_id].set_direction(dir)#
$game_self_switches[[@map_id, new_id, ss]] = true
# 刷新图块
refresh
#$scene.instance_eval { @spriteset.update }
$scene.instance_eval { @spriteset.dispose }
$scene.instance_eval { @spriteset = Spriteset_Map.new }
end
end
求教怎样才能让提取不卡。 |