好厉害!大佬加油! |
我知道为啥会卡了。。两张地图两套tilemap,mv在渲染时需要切换图块集(tileset),先用图块集1渲染地图1,切换成图块集2,再渲染地图2,假设地图就是按12的顺序渲染,那么上一帧渲染后,当前图块集是2,下一帧要渲染需要先切回图块集1,渲染地图1,然后再切图块集2。。 所以嘛,图块集这个东西就很大了,不停切换一直在消耗算力,只有一张地图的话只会在进入地图的时候加载一次图块集,所以无论地图多大,渲染耗时基本不变 原因找到了,要实现双地图就得改底层mv的渲染方式了,或者说要改加载图块集的方式…… ![]() 我得想想有没有别的方法。。 |
我已经确定是同时渲染两套地图时tilemap算法效率低下造成的卡顿,然而具体原因还不知道,跟地图尺寸没关系,一张17x13x2大小的地图算法只执行一遍,不会卡,两张17x13的地图,虽然跟前面一张图大小相等,但是算法执行两遍,就会卡。。 一张地图的话算法耗时大约70+ms,所以两张图就直接翻倍变成140+ms,甚至更多,因此就能感觉到卡顿了,另外FPS直接掉到6并且升不回去了 尝试过创建新的tilemap、新的sprite、新的spriteset_map,都不行,同一帧计算两张地图就是会卡,于是试了下隔帧渲染,也就是一帧渲染主地图,下一帧只渲染衔接地图,再下一帧只渲染主地图,能解决卡顿问题,但是屏幕会闪 所以最后想来想去还是只能从算法本身入手,要么看懂完整的算法流程,然后再想办法,要么把两个tilemap合并成一个,然后在算法里动手脚,让算法能够识别成两张地图,先尝试后者吧,前者太烧脑了…… ![]() |
wabcmcc 发表于 2020-3-14 21:18 你提的这两点都不行啊,之前几天搜索我都搜到了,但是没法应用,不然我也不会自己写插件了。。 ![]() 单张大地图划分的那种,首先地图得非常非常大,我要做口袋妖怪那种的,MV的256x256根本不够,再者那么大的地图加载肯定巨慢,另外单张地图的话地图块目测不够用,毕竟任何一个ABCDE类型的图块集MV都限制了素材宽高,能放的不同图块类型有限 合并的那种,最基本的,就要求两张地图使用同一套图块集,肯定不行 |
樓主如此熱誠,固執,實在忍不住多言, 單張大地圖劃分兩(多)張不同風格地圖,玩家看不出來. 如要連環地圖.請君移步將多個地圖連接到一個大地圖的插件 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2025-2-26 00:15
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.