Project1

标题: 请教双远景图的通行设计问题 [打印本页]

作者: 3103924369    时间: 2021-8-5 21:33
标题: 请教双远景图的通行设计问题
本帖最后由 3103924369 于 2021-8-5 21:38 编辑

翻阅了论坛实现双远景图相关的内容,发现有两种实现双远景图的方法(这两种方法,双远景脚本有一些细微差别),我现在使用的是第二种。

第一种是直接将全景图和遮挡图(xx_2)全都放在Graphics/Panoramas文件夹里,交由双远景脚本直接调用。
        该方法在rmxp地图设计界面是看不到场景的,由于看不到,因此设置事件很不方便,而其通行块设计我看到别人是用一个通行的公共事件,进入调式模式的游戏,按键盘上的按键来设定各个区域是否可通行
公共事件调用脚本之一:
$game_map.map.data[$game_player.x,$game_player.y,0]=0  
save_data($game_map.map,sprintf("Data/Map%03d.rxdata", @map_id))

第二种是将原来的全景图切片(按照256像素切割),再拼接,变成图块里的地图元件(放在Graphics/Tilesets文件夹),将遮挡图(也就是xx_2,放在Graphics/Panoramas文件夹)当作图块里的全景图形。
        该方法在地图设计界面可以直接看到场景(自己一个区域一个区域组装上去的),因此在设置事件时比较方便,但是设置通行就很麻烦,要么在图块里OOXX一个方格一个方格的点(而且由于切割了原图,此事看起来巨麻烦),要么用透明事件作遮挡(缺点是复杂大地形就要贴上去很多的透明事件,比如我的某张图就贴了800多个,但是听说一个场景的事件数目是有999上限的,而且透明事件多了,对于整体感观很不好,特别是在编辑自己的剧情事件时)


综上考虑,我想在第二种实现双远景图方法的基础上(因为编写事件方便),寻找一种简便实现双远景图通行的方法,
我的想法有两个
一个是仿照着第一种实现双远景方案的通行设计方法,写一个公共事件脚本,进入调试模式的游戏,通过按键将某块区域变成不可通行的,但是该公共事件的脚本我没有搞懂,没法用,也不知道我想的方法的可不可行,现在的情况是按了按键后会说noMethodError通行公共事件




第二个是先用透明事件作遮挡,完成后再写一个脚本方法,使用该方法后能自动将地图上所有有着相同特点的通行透明事件所在的区域对应的地图元件的图块区域,将它数据库里的通行O改成X,同时删去所有透明事件,这样不仅实现了通行区域设计,而且场景界面也清爽了。

就想请教各位网友,我想的两种方法能否实现,或者是不是还有别的更简单的方法?

作者: Im剑侠客    时间: 2021-8-6 06:19
有更简单的方法,有一个前提,我想知道你的地图层实际运用上了几层?
作者: 3103924369    时间: 2021-8-6 09:33
Im剑侠客 发表于 2021-8-6 06:19
有更简单的方法,有一个前提,我想知道你的地图层实际运用上了几层?

遮挡层xx_2是数据库图块里的全景图形,遮挡层不算的话,实际三层的地图层就只用了一层,所有东西都在第一层贴上去了
作者: Im剑侠客    时间: 2021-8-6 16:11
3103924369 发表于 2021-8-6 09:33
遮挡层xx_2是数据库图块里的全景图形,遮挡层不算的话,实际三层的地图层就只用了一层,所有东西都在第一 ...

那没问题了。
具体方法:在可视的地图层以上,选择一层作为通行度描绘使用,在tilemap选择其中的一个原件,设置好它的通行度,然后返回地图层操作,当描完通行之后,将原件的图像设置为无,即可。
作者: 3103924369    时间: 2021-8-6 22:16
Im剑侠客 发表于 2021-8-6 16:11
那没问题了。
具体方法:在可视的地图层以上,选择一层作为通行度描绘使用,在tilemap选择其中的一个原件 ...

有道理,确实是一种更简单的方法,多谢啦




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1