加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 xowindows 于 2020-8-8 13:56 编辑
发现了一个远景图做为地图的小技巧,自制两组通行对应的图块(一组透明、黑色,一组全透明),用直白可见的图块设置好禁止/通行,然后用事件脚本替换成全透明的图块即可。
(直接用事件中的更改地图图块,可能会出现直接消除掉禁止/通行的设置。尚不清楚和事件脚本的区别。)
远景图用作地图命名前+“!”,例:!filename.png
(自动执行)
(效果图如下:(借用了金庸群侠传5的素材))
大图片转换成图块有限制,单纯只是用远景图当做地图的话,这个方法应该算简单直白了。实际上就是避免了直接使用全透明画通行时搞混乱的情况。
注意:
这个方法应该算最简单了,而且不需要用到插件,不过也有些限制。(得另外想办法用上前景图)
最好的方法应该是用Drill的插件“多层地图背景”。
新增一个根据远景图自动加载前景图的方法:
(以下内容需要用到插件并改动,实际上只是改成自动加载前景图,主要针对地图数量多而且用远景图作为地图,还需要添加对应前景图的)
(本人无聊尝试将金庸群侠传5精简化移植到MV上,所以才作出该尝试。实际上地图数量少的直接用原插件设定参数更方便。)
需要插件Drill_LayerGround.js,https://rpg.blue/thread-409713-1-1.html(这个小插件集合对新手很友好)
需要直接在插件上添加几行。在地图初始化那,刷新当前地图的背景,Game_Map.prototype.drill_LG_initMapdata函数最后添加上
if($gameMap._parallaxName != ""){ data = {}; //清空临时数据 //当前地图 data.map = $gameMap._mapId; //所属地图 data.src_img = $gameMap._parallaxName; //资源背景 //默认参数 data.id = 201; //id data.visible = "true"; //显示 data.x = 0; //x data.y = 0; //y data.opacity = 255; //透明度 data.blendMode = 0; //混合模式 data.layer_index = "上层"; //地图层级——上层,前景图 data.zIndex = 4; //图片层级,超多层排序用(未用) data.XPer = 0.0; //位移比x data.YPer = 0.0; //位移比y data.tile_x = 0; //位移图块偏移 X data.tile_y = 0; //位移图块偏移 Y data.speedX = 0.0; //x速度 data.speedY = 0.0; //y速度 data.curX = 0; //当前x位置(速度累加的结果) data.curY = 0; // data.cameraX = 0; //实际镜头的x精确坐标 data.cameraY = 0; // data.loopX = 0; //循环地图中,走动循环的次数 data.loopY = 0; // data.loopFixX = 0; //循环地图中,把displayX取余的部分加回 data.loopFixY = 0; // data.wave_time = 0; //(暂未使用) $gameSystem._drill_LG_dataTank_map.push(data); }
if($gameMap._parallaxName != ""){
data = {}; //清空临时数据
//当前地图
data.map = $gameMap._mapId; //所属地图
data.src_img = $gameMap._parallaxName; //资源背景
//默认参数
data.id = 201; //id
data.visible = "true"; //显示
data.x = 0; //x
data.y = 0; //y
data.opacity = 255; //透明度
data.blendMode = 0; //混合模式
data.layer_index = "上层"; //地图层级——上层,前景图
data.zIndex = 4; //图片层级,超多层排序用(未用)
data.XPer = 0.0; //位移比x
data.YPer = 0.0; //位移比y
data.tile_x = 0; //位移图块偏移 X
data.tile_y = 0; //位移图块偏移 Y
data.speedX = 0.0; //x速度
data.speedY = 0.0; //y速度
data.curX = 0; //当前x位置(速度累加的结果)
data.curY = 0; //
data.cameraX = 0; //实际镜头的x精确坐标
data.cameraY = 0; //
data.loopX = 0; //循环地图中,走动循环的次数
data.loopY = 0; //
data.loopFixX = 0; //循环地图中,把displayX取余的部分加回
data.loopFixY = 0; //
data.wave_time = 0; //(暂未使用)
$gameSystem._drill_LG_dataTank_map.push(data);
}
前景图命名成和远景图一样,丢进\img\Map__layer,就自动加载当前地图对应的前景图
没什么技术含量,不过方便懒人编辑。
插件没什么大改,应该不会影响正常功能。算是新人,不太了解论坛规则。没联系过Drill_up大神,就改动了他的脚本并这样发帖,如果不妥请通知我删改。
|