设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3796|回复: 14
打印 上一主题 下一主题

[有事请教] 动态加载地图以及同时渲染两张地图能否做到?

[复制链接]

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
跳转到指定楼层
1
发表于 2020-3-9 00:55:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 gg123wtf 于 2020-3-9 01:03 编辑

类似口袋妖怪的世界地图,比如一个城市一张地图,城市之间的每条道路各自一张地图,但是角色移动的时候感观上就是一张大地图,这种效果在mv里能否实现?

刚开始接触rpg maker,还不是很熟,至少入门教程和官方文档里没看到相关功能
网上找了一遍只找到拼接大地图的插件,N张小地图直接拼成一张大地图,运行的时候当做一张地图加载并渲染,但是这样肯定很慢,且占内存
另外还有一种做法是弄一个过渡地图,从A图进入过渡图再进入B图,这种做法很麻烦,工程量会加大很多,而且过渡图里的数据事件啥的还需要转移给相连的两张地图,感觉会有很多坑

所以mv或用其插件能否做到:
1. 任意时间点预加载任意地图
2. 同时渲染两张地图

如果已有插件能做到,能否给个插件名?
如果没有现成插件,那么插件能做到吗?我觉得mv内核是浏览器的话,那么起码js应该可以直接用官方内核的方法动态加载地图吧?两张地图同时跑会不会冲突啥的我就不知道了

求各位大佬支招

话说xp已经出过好几款口袋妖怪同人作了,不知道他们世界地图怎么做的,同样的方法mv肯定能用吧
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖

Lv4.逐梦者

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
帖子
583
15
发表于 2020-3-14 07:56:14 | 只看该作者
gg123wtf 发表于 2020-3-13 09:45
画重复部分这个方案一开始就被我否决掉了,几百张小地图每张都要处理相邻部分这个工程量增加太多了,所以 ...

简单的复制粘贴而已,如果一开始就规划好,工作量不会增加多少。当然如果是从头再改一遍那就很累了。怎么选择都可,你高兴就好。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
14
 楼主| 发表于 2020-3-13 09:45:25 | 只看该作者
梦想家大魔王 发表于 2020-3-13 09:37
相邻地图适当地画一些重复的部分,把触发切换地图的事件位置调整好。追求精细的话,地图边缘每个事件触发 ...

画重复部分这个方案一开始就被我否决掉了,几百张小地图每张都要处理相邻部分这个工程量增加太多了,所以我倾向于从底层想办法,直接改变mv的单地图渲染模式
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
帖子
583
13
发表于 2020-3-13 09:37:07 | 只看该作者
gg123wtf 发表于 2020-3-13 09:07
你这个方案似乎没有处理同时显示两张地图的问题?

口袋妖怪那种,主角始终处于屏幕正中,或者说相机一直 ...

相邻地图适当地画一些重复的部分,把触发切换地图的事件位置调整好。追求精细的话,地图边缘每个事件触发后传送的坐标都有细微的区别。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
12
 楼主| 发表于 2020-3-13 09:07:56 | 只看该作者
梦想家大魔王 发表于 2020-3-13 08:56
在地图上接近边缘的区域设置接触触发的隐形事件,预加载相邻的地图到缓冲区(变量),玩家继续移动到边缘时 ...

你这个方案似乎没有处理同时显示两张地图的问题?

口袋妖怪那种,主角始终处于屏幕正中,或者说相机一直跟随主角,所以还没走到边界,第二张地图就要显示出来了,并且跟第一张地图拼接在一起
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
帖子
583
11
发表于 2020-3-13 08:56:48 | 只看该作者
在地图上接近边缘的区域设置接触触发的隐形事件,预加载相邻的地图到缓冲区(变量),玩家继续移动到边缘时就切换到缓冲区的地图,并且把上一个地图的数据暂存。如果玩家马上回头就切换回去,否则继续上述流程。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
10
 楼主| 发表于 2020-3-13 00:30:20 | 只看该作者
本帖最后由 gg123wtf 于 2020-3-13 09:48 编辑
fux2 发表于 2020-3-9 09:29
地图本身就是动态加载的,如果是需要预加载我估计没有插件可以满足你的要求
毕竟无法得知你什么时候会离开 ...


Spriteset_Map好像只有tile的部分,我的设想是同时加载两个Game_Map,不止tile,还有事件,看了一部分官方源码,暂且还没完全理清整个加载地图的流程,还得接着啃

目前的想法是新建一个$gameMap2,跟$gameMap一起处理,应该只要把$gameMap2作为同节点加到$gameMap后面就行了吧?然后再重载一些$gameMap相关的函数,使其能够一并处理$gameMap2

主角所在的地图为$gameMap,也就是主地图,$gameMap2属于额外地图,当主角进入$gameMap2时,$gameMap2和$gameMap互换

其它地图插件就在$gameMap处理,切换地图时插件就跟mv正常切地图一样,这样应该简单点,插件跨地图感觉还有很多坑

现在主要有几个不太清楚的点
Game_Map的_displayX和_displayY设置了比如(5,5)后,对应的是屏幕的(0,0)吗?
人物要实现跨地图正常移动的话是不是还得重载人物的sprite或者object类?也就是本来应该是从地图1通过事件瞬移到地图2,现在需要“走”过去
另外对于$gameMap2的具体实现现在也没有一个很完整的思路,头疼……

----------------------------------------------------------------

前面回复的时候半夜了,发完就去睡了。。
刚才测试了一下,_displayX和_displayY对应的就是屏幕的(0,0)
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
9
 楼主| 发表于 2020-3-13 00:09:23 | 只看该作者
tseyik 发表于 2020-3-9 10:46
[搬运汉化] 多画面插件
https://rpg.blue/thread-398550-1-1.html

这个插件好像只支持一张地图多相机位?就算支持多张地图,要从地图1走到地图2的时候,需要地图2慢慢从边界一点点往屏幕中间显示,同时地图1往另一边移动退出屏幕,假设相机1对着地图1,相机2对着地图2,那也需要随着人物移动动态改变相机大小和位置,似乎不如直接处理两张地图
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22973
在线时间
8639 小时
注册时间
2011-12-31
帖子
3367
8
发表于 2020-3-9 10:46:28 | 只看该作者
[搬运汉化] 多画面插件
https://rpg.blue/thread-398550-1-1.html


回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
646
在线时间
120 小时
注册时间
2019-12-7
帖子
67
7
 楼主| 发表于 2020-3-9 10:04:43 | 只看该作者
fux2 发表于 2020-3-9 09:29
地图本身就是动态加载的,如果是需要预加载我估计没有插件可以满足你的要求
毕竟无法得知你什么时候会离开 ...

好的,谢谢,我去研究一下
新账号chyj4747,这个账号是我刚来论坛时随便填的,当时没想着要发帖
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-28 12:54

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表