本帖最后由 andrewx 于 2016-1-5 23:09 编辑 (this._isTableTile(upperTileId1) && !this._isTableTile(tileId1)) 这一部分是绘制柜台图块下面那一块,因为按照F1所说,(柜台图块)绘制时,底部的12像素会有向下的偏移。也就是桌子边和腿那一部分会延伸到下面一块tile,当然如果下面的图块是墙壁类(A3A4会产生自动阴影的)或者本身还是柜台,则不会往下延伸。用tableEdgeVirtualId + upperTileId1后,下面绘制的时候如果发现tileId大于tableEdgeVirtualId,就知道应该绘制柜台边缘(以及这一块本来的内容)了。 shadowBits就是一个tile上四个位置阴影的分布,按照右下-左下-右上-左上的顺序的四个比特位。然后根据比特位的值生成对应阴影的图像。这里用负值,下面在绘制的时候遇到tileId<0的就知道是阴影了。 那个OverpassPosition 我也不清楚,我查到的_isOverpassPosition只能返回false,总感觉是永远执行不到的语句块ORZ |
......对mv的地图太不熟悉了,求教几个语句 为什么这里是 -shadowBits lowerTiles.push(-shadowBits); (this._isTableTile(upperTileId1) && !this._isTableTile(tileId1)) 这个什么意思,实现什么效果? if (this._isTableTile(upperTileId1) && !this._isTableTile(tileId1)) { if (!Tilemap.isShadowingTile(tileId0)) { 这句又是要干啥.................. lowerTiles.push(tableEdgeVirtualId + upperTileId1); 完全看不懂这个要做啥 } } 这是啥东西..... this._isOverpassPosition (想通过sprite实现 tilemap中....) |
本帖最后由 andrewx 于 2016-1-4 10:23 编辑 对的,是不止一格,按理说墙壁多高就应该能往下几格,然而这默认地图就给房顶这个元件做了一格的星形通行,也是很奇怪。 如果用了半透明遮挡的话最后那张图尽管露不出头也是能看到角色位置,实际跑起来感觉还是可以的。 MV这次地图图块数据在同一格内做了六层,0是A类基础图块,1是A类装饰图快,2,3是B~E类图块叠加,4是阴影bit,5是区域id,而这个默认阴影bit又是编辑器自动算出来的,如果要改算法大概要对编辑器本身动刀了。另外自动阴影对于常用Shift画地图的简直是摧残啊Orz 我对V系地图编辑器都是垃圾这句话不能同意更多,这次所谓的六层地图数据依然被xp完爆。且不论自动原件没了解析窗口,当我发现v系自动元件精度从3*3变成了2*2,我真想骂这tm什么鬼。。。 |
其实细究起来第一张截图的房子阴影也有问题,然后角色应该也不止能走进去一格…… 以前用XP画地图时碰到这种地方的处理我一般都被迫抛弃常识不管多高的墙后面永远设成只能走进一格 就游戏性的角度来考虑还是能接受的…… 楼主加油吧,期待你想出能解决这个问题的方法 |
本帖最后由 死伤殆尽 于 2016-1-3 22:23 编辑 我知道,所以我才说只能走进去一格的系统预设细想起来是有问题的 但这个预设又是为了确保默认设置下角色在被墙壁遮盖时能至少露出一个头顶 虽然VX开始的地图编辑器功能弱化导致连一格都走不进去 但自动阴影的算法也跟着这个预设走 然后这又导致了自动阴影在很多情况下违和感十分严重 而VX系的地图图层功能又无法在没有自动阴影的情况下解决地图阴影问题 因此VX Ace开始增加了阴影笔这个功能用来修改自动生成的阴影 这样解释之后不知道你能不能理解VX系地图编辑器在这方面有多混乱 如果要针对其中一点下手的话,其他牵连到的要素也要一并解决才行 屏蔽自动阴影其实没有太大必要,毕竟这方面的问题靠阴影笔也能解决就是了…… 改造自动阴影的算法又不知道可行性有多少…… 顺带一提RM默认地图图块素材的光线基本上预设是从左向右直射的,不需要去考虑什么斜方向阳光 总而言之还是那句话,我不是针对MV,但VX系的地图编辑器真的都是垃圾啊! |
在这个思路基础上想到可以不管tile的分层而是直接多创建一层upperLayer并添加对其的更新,这样似乎兼容性更好一点点 JAVASCRIPT 代码复制
|
本帖最后由 andrewx 于 2016-1-2 22:54 编辑 我在墙壁同行插件里的算法是对于同一纵列连续墙壁自动元件,如果从上面数有n块顶部元素,那么从下面数n块不能通行。实际上正方体斜上方透视不也是这样的么,顶面宽度=底面宽度,允许行走的部分正好等于墙壁正面高度。 本身VX之后墙壁根本就不给通行,xp也只是墙壁往下一格,但我觉得不是很科学。 对于阴影...你可以认为是光线与地面135度夹角投影后偏移了,但是系统又画不出斜向的阴影什么的。说真的,自动阴影这个设计蠢爆了,又不智能又丑。你可以试着画一个顶面一格,正面多格的柱子,你会发现自动阴影还是那么愚蠢地产生一条。。。。 我都准备开插件全程屏蔽这东西。。。。 |
本帖最后由 死伤殆尽 于 2016-1-2 22:06 编辑 这个插件的想法好 但是楼主你有没有发现最后一张截图里,角色和宝箱的位置,跟右边的阴影位置是矛盾的? 虽然细究起来有点问题,但软件预设墙体上方是只可以往下走进一格的 再结合角色高度啊等等问题,我觉得这些需要统合起来考虑一下 |
是说满两格及更高的角色会被切头吗?噫这是痛处 附带插件里面有个CP_Large_Sprite_Fix可以解决,但是用了以后帧速明显会拖慢。。。。。 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-28 21:38
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.