查看: 5474|回复: 3

[原创发布] 远景图做地图,设置通行的小技巧,自动加载对应的前景图

[复制链接]
梦石
0
星屑
63
在线时间
17 小时
注册时间
2020-7-16
回帖
2
发表于 2020-8-6 23:04:45 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 xowindows 于 2020-8-8 13:56 编辑

发现了一个远景图做为地图的小技巧,自制两组通行对应的图块(一组透明、黑色,一组全透明),用直白可见的图块设置好禁止/通行,然后用事件脚本替换成全透明的图块即可。
(直接用事件中的更改地图图块,可能会出现直接消除掉禁止/通行的设置。尚不清楚和事件脚本的区别。)

0001.png
远景图用作地图命名前+“!”,例:!filename.png

0004.png
(自动执行)

(效果图如下:(借用了金庸群侠传5的素材))
0003.png 0002.png


大图片转换成图块有限制,单纯只是用远景图当做地图的话,这个方法应该算简单直白了。实际上就是避免了直接使用全透明画通行时搞混乱的情况。

注意:
这个方法应该算最简单了,而且不需要用到插件,不过也有些限制。(得另外想办法用上前景图)
最好的方法应该是用Drill的插件“多层地图背景”。



新增一个根据远景图自动加载前景图的方法:
(以下内容需要用到插件并改动,实际上只是改成自动加载前景图,主要针对地图数量多而且用远景图作为地图,还需要添加对应前景图的)
(本人无聊尝试将金庸群侠传5精简化移植到MV上,所以才作出该尝试。实际上地图数量少的直接用原插件设定参数更方便。)


需要插件Drill_LayerGround.js,https://rpg.blue/thread-409713-1-1.html(这个小插件集合对新手很友好)
需要直接在插件上添加几行。在地图初始化那,刷新当前地图的背景,Game_Map.prototype.drill_LG_initMapdata函数最后添加上

[pre lang="javascript" line="1646"]        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);
        }[/pre]


前景图命名成和远景图一样,丢进\img\Map__layer,就自动加载当前地图对应的前景图
没什么技术含量,不过方便懒人编辑。

插件没什么大改,应该不会影响正常功能。算是新人,不太了解论坛规则。没联系过Drill_up大神,就改动了他的脚本并这样发帖,如果不妥请通知我删改。

评分

参与人数 2赞 +2 收起 理由
白嫩白嫩的 + 1 精品文章
北意大利 + 1 精品文章

查看全部评分

梦石
0
星屑
25352
在线时间
1136 小时
注册时间
2019-3-5
回帖
1303
发表于 2020-8-7 11:25:06 | 显示全部楼层
意思是用原生rtp画好通行度,然后用脚本替换素材?这样做可以保留通行度?那为什么不直接用设置好通行度的素材来画可供行走的区域呢……
回复

使用道具 举报

梦石
0
星屑
63
在线时间
17 小时
注册时间
2020-7-16
回帖
2
 楼主| 发表于 2020-8-7 11:42:08 | 显示全部楼层
Zeldashu 发表于 2020-8-7 11:25
意思是用原生rtp画好通行度,然后用脚本替换素材?这样做可以保留通行度?那为什么不直接用设置好通行度的 ...

主要是针对直接用远景图作为地图的情况,不是用素材画地图,只是画通行而已。
大型图片转换成图块会有限制大小的,但用远景图就没有这个限制。
我追加了效果图,一看就清楚了。
回复

使用道具 举报

梦石
0
星屑
25352
在线时间
1136 小时
注册时间
2019-3-5
回帖
1303
发表于 2020-8-7 13:39:13 | 显示全部楼层
xowindows 发表于 2020-8-7 11:42
主要是针对直接用远景图作为地图的情况,不是用素材画地图,只是画通行而已。
大型图片转换成图块会有限 ...

对,我说的就是画通行度的情况(才看到你说是不用插件的情况)

如果是使用ULDS插件(它调用远景图作为地图)的话,直接用半透明的图块素材来标记地面通行度就可以了。因为开启这个插件就会自动隐藏图块,只显示调用的远景图图层。

不过不用插件的话你这种方法确实方便。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部