Project1

标题: 关于地图和相机画面的一点小心得 [打印本页]

作者: Trickstar    时间: 2019-3-26 22:57
标题: 关于地图和相机画面的一点小心得
可能是上算法课的时候留下的毛病,我在做游戏的时候一直有追求低复杂度地习惯。
因此在设置地图大小的时候我总是会精打细算能省则省,不多花一行一列。
但今天测试的时候突然发现相机是不会照到地图外的……因此目前在切换地图的时候经常会出现玩家位置不同步的问题。
简单来说就是“换地图的时候,角色在屏幕上的位置会变,但玩家的目光还停留在换图之前的位置,产生不连贯感”这么一个情况。
灵魂鼠绘:


这一点在有黑白过渡的时候或许还好,但在追逐战之类地图需要无缝进行切换的情况下就相当严重了,很容易干扰玩家的操作。
因此可以在设置地图大小的时候尽量给左右上下方都留下至少半个地图的空白,以保证视角的连续性。
不过关于相机位置这一点,(虽然没有搜到相关内容但)应该可以通过脚本进行改进?

不过空地图好像也不占什么空间,先就加大地图尺寸改着吧www
以上_(:з)∠)_


作者: 百里_飞柳    时间: 2019-3-27 09:50
本帖最后由 百里_飞柳 于 2019-3-27 09:52 编辑

相机位置还行,怕是unity选手偷懒用RM哦。

rpg_objects.js 中的 Game_Map.prototype.setDisplayPos 方法定义了显示位置(图块为单位)(处理了坐标的上下限)。
然后在 rpg_sprites.js 中的 Spriteset_Map.prototype.updateTilemap 使用了该显示位置,并把背景地图的显示原点定位于此。

可以看出,默认是通过修改地图的显示原点来做到地图的移动的。
但因为我没有MV所以举例VA中的显示原点在超出位图的显示范围后,是会使位图循环显示的(该效果同 Windows桌面壁纸的平铺,位图宽度不够,那么再复制一份排到后面继续显示这样子),所以默认地图才会出现固定的最小的宽度高度值,而当通过其他方式将默认的分辨率扩大后,再进入之前的最小值的地图,就会出现右边下边地图的循环显示。

所以RM中不存在相机,那么想要单独修改相机也是不可能的,更加上地图背景会有自动循环(方便做地图循环滚动效果),想要在显示原点超出范围时用黑色补充都很艰难。

最方便的还是手动给地图加上的黑色外边框(如果想要保住人物永远居中,那就加一半屏幕宽的黑色边框)。
作者: Trickstar    时间: 2019-3-28 19:03
百里_飞柳 发表于 2019-3-27 09:50
相机位置还行,怕是unity选手偷懒用RM哦。

rpg_objects.js 中的 Game_Map.prototype.setDisplayPos 方法定 ...

卧槽wwwww偷懒居然被发现了!确实我U3D和Unreal都有接触过www
不过对于以剧情和谜题为核心的恐解而言,RM的整体框架已经相当完善了。
虽然能写代码但谈不上熟练,加之是独立开发,因此选择了RM以尽可能减少耗费在代码上的时间,
把更多的功夫花在自己比较擅长的故事性和演出上面。

所以……RM即使关闭了循环选项地图也仍然会产生循环,最方便的办法还是留空……
那么我还是老老实实地去把之前的地图都改掉好了_(:з)∠)_感谢鹰大佬的指点!
作者: mr24970985    时间: 2019-3-28 20:53
之前有翻譯過一個強制中央滾動 但我還沒測試過 可以參考看看




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