加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
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大神,就改动了他的脚本并这样发帖,如果不妥请通知我删改。 
 
 |