Project1
标题:
【翻译】让VX图层无穷无尽!(BUG已解决)
[打印本页]
作者:
仲秋启明
时间:
2010-10-31 14:00
标题:
【翻译】让VX图层无穷无尽!(BUG已解决)
本帖最后由 仲秋启明 于 2011-2-13 20:11 编辑
好的,既然要出地图教程了,就应该关注一下地图加强,于是,搜到了,翻译了
原版的图片宣传:
(, 下载次数: 252)
上传
点击文件名下载附件
自己改后的使用方法:
(, 下载次数: 240)
上传
点击文件名下载附件
可以无穷无尽,最多我也不知道会到多少
直接上脚本:
#==============================================================================
# ■ VX图层无穷无尽
#------------------------------------------------------------------------------
# 原作BY:S. F. LaValle 翻译、修改BY:仲秋启明
# 使用方法:在子地图名的最后加上“LX”(X为第几添加层)
# 更新手记:2011.2.13 解决战斗渐变问题
#==============================================================================
class Scene_Map < Scene_Base
alias start_2 start
alias update_2 update
attr_reader :map_layer_spritesets
def start
start_2
setup_map_layers
end
def update
for i in 0...@map_layer_spritesets.size
@map_layers[i].update
@map_layer_spritesets[i].update
end
update_2
end
def update_transfer_player
return unless $game_player.transfer?
fade = (Graphics.brightness > 0)
fadeout(30) if fade
@spriteset.dispose
for i in 0...@map_layer_spritesets.size
@map_layer_spritesets[i].dispose
end
$game_player.perform_transfer
$game_map.autoplay
$game_map.update
Graphics.wait(15)
@spriteset = Spriteset_Map.new
setup_map_layers
fadein(30) if fade
Input.update
end
def call_battle
@spriteset.update
Graphics.update
$game_player.make_encounter_count
$game_player.straighten
for i in 0...@map_layer_spritesets.size
@map_layer_spritesets[i].dispose
end
$game_temp.map_bgm = RPG::BGM.last
$game_temp.map_bgs = RPG::BGS.last
RPG::BGM.stop
RPG::BGS.stop
Sound.play_battle_start
$game_system.battle_bgm.play
$game_temp.next_scene = nil
$scene = Scene_Battle.new
end
def setup_map_layers
maps = load_data("Data/MapInfos.rvdata")
game_map_name = maps[$game_map.map_id].name
@map_layers = []
@map_layer_spritesets = []
map_names = []
layer_map_names = []
layer_index = []
c = maps.keys
d = c.max
for i in 1..d
unless maps[i] == nil
a = nil
map_names.push(maps[i].name)
a = maps[i].name =~ /(l|L)\d+/
layer_map_names.push(maps[i].name) if a != nil
layer_index.push(maps.index(maps[i])) if a != nil
end
end
for string in layer_map_names
string.chop! until string == game_map_name or string == ""
end
if layer_map_names.include?(game_map_name)
for i in 0...layer_map_names.size
if layer_map_names[i] != ""
map = Game_Map.new
map.setup(layer_index[i])
@map_layer_spritesets.push(Spriteset_Map_2.new(map))
@map_layers.push(map)
end
end
end
end
end
class Spriteset_Map_2 < Spriteset_Map
def initialize(layer)
@layer = layer
create_viewports
create_tilemap
update
end
def update
update_tilemap
update_viewports
end
def dispose
@tilemap.dispose
end
def create_tilemap(a1 = nil, a2 = nil, a3 = nil, a4 = nil, a5 = nil, b = nil, c = nil, d = nil, e = nil)
@tilemap = Tilemap.new(@viewport1)
@tilemap.bitmaps[0] = (a1 == nil ? Cache.system("TileA1") : a1)
@tilemap.bitmaps[1] = (a2 == nil ? Cache.system("TileA2") : a2)
@tilemap.bitmaps[2] = (a3 == nil ? Cache.system("TileA3") : a3)
@tilemap.bitmaps[3] = (a4 == nil ? Cache.system("TileA4") : a4)
@tilemap.bitmaps[4] = (a5 == nil ? Cache.system("TileA5") : a5)
@tilemap.bitmaps[5] = (b == nil ? Cache.system("TileB") : b)
@tilemap.bitmaps[6] = (c == nil ? Cache.system("TileC") : c)
@tilemap.bitmaps[7] = (d == nil ? Cache.system("TileD") : d)
@tilemap.bitmaps[8] = (e == nil ? Cache.system("TileE") : e)
@tilemap.map_data = @layer.data
@tilemap.passages = @layer.passages
end
def update_viewports
@viewport1.tone = @layer.screen.tone
@viewport1.ox = @layer.screen.shake
@viewport2.color = @layer.screen.flash_color
@viewport3.color.set(0, 0, 0, 255 - @layer.screen.brightness)
@viewport1.update
@viewport2.update
@viewport3.update
end
end
复制代码
范例工程不提供,很简单的
作者:
夕阳武士
时间:
2010-10-31 14:10
嗯,看明白了,这个相当于xp的图层吧。学长加油。
作者:
李光兆
时间:
2010-10-31 14:20
恩,GOOD!
作者:
新坦克君
时间:
2010-10-31 14:24
是个好东西=。=
作者:
狠、陌生
时间:
2010-10-31 14:42
提示:
作者被禁止或删除 内容自动屏蔽
作者:
px.凤翔九天
时间:
2010-10-31 14:47
无知的我想问:这个对XP有效吗?以前一直是用SHIFT加个图层,要是有效,那就省事多了。
作者:
N.K
时间:
2010-10-31 14:48
提示:
作者被禁止或删除 内容自动屏蔽
作者:
zhushimin10
时间:
2010-10-31 15:03
真是个不错的脚本……不过用地图名来控制的话……某些地图名控制的脚本就会冲突了……比如地图名显示
作者:
越前リョーマ
时间:
2010-10-31 15:12
依旧是很烦人才能让VX稍微加强一些的东西囧,和图块扩充一样……
作者:
企鹅达达
时间:
2010-10-31 20:10
强大,太强大了!虽说我默认的两层加事件做的第三层已经够用了……
作者:
38571240
时间:
2010-10-31 20:55
太有趣了.... 这样可以让人从高楼后面走过去了!看上去被挡住的部分都可以这样
想想还有什么其他的用法
作者:
红灯
时间:
2010-10-31 21:32
哇!太强大了啊!
作者:
高须小龙
时间:
2010-10-31 22:55
老物,不过楼主还是应该拿好人卡得。
作者:
八云紫
时间:
2010-11-3 12:30
其实可以一张地图一个图层, 然后实现伪 2.5D , 咱的之前的工程就是这么设计的~~
作者:
38571240
时间:
2010-11-3 22:40
刚才发现进入战斗时,子图层的图像没有及时刷掉,不过ARPG表示无压力
作者:
zx991
时间:
2010-11-14 16:59
{:2_33:} 关键是图块的扩充啊
作者:
风雪优游
时间:
2010-11-14 21:11
泪……这样子画地图更加复杂了,果然还是需要专业支持的……
作者:
仲秋启明
时间:
2011-2-13 20:14
BUG已解决
作者:
pl03424626
时间:
2011-5-5 02:30
{:4_84:}换地图无淡出淡入脚本冲突,快速换图的话副层地图刷新不到。
作者:
821496632
时间:
2011-8-15 14:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
candy2266
时间:
2011-8-25 13:42
虽然不是很懂= =但是留着,希望有天能用好
作者:
1370528656
时间:
2011-10-1 10:14
谁能帮忙翻译成XP的?
感激不尽
!
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X5.0