本帖最后由 viktor 于 2012-5-30 11:21 编辑 我更倾向于用17楼@禾西的办法,递推。 分四个方向, 一个格子的不透明度是相邻两个格子的平均数。墙的不透明度按照0算。然后当不透明度小于一个固定值(比如60)的时候,就认为他看不见了。 再加上修改Tilemap 给格子加上一个透明度,就能实现更加自然的Tilemap了 至于哪些是墙 哪些是地面 可以通过地图标记,方便地制定 像这个样子 红色的是墙(墙体显示出来,背后的东西不会显示), 黄色的是竖直墙(墙体和在其上方的墙体要显示出来,但是背后的东西不会显示) 绿色的是可以通行的地方 数字是透明度(亮度) 缺点是没法并行,只能一点点推过去 当然@kimu 直接按照直线计算似乎也不错 最近有时间的话希望能把两个都实现以下。 我想参考下楼主的脚本呢 |
测试完毕,的确不会有任何卡,即使不优化视野调到10也不会有任何卡 工程很乱就不发了 |
不用想了,没有比我提出的方法更优化的,不过我那方法改一下,就是从主角往边上发射线更快。 计算量 (长+宽)的平方最坏的情况,每次计算量极小,每次只有一个简单的赋值。不牵扯任何math函数。 |
站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作
GMT+8, 2024-11-23 12:37
Powered by Discuz! X3.1
© 2001-2013 Comsenz Inc.