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

Project1

 找回密码
 注册会员
搜索
123
返回列表 发新帖
楼主: Kimu
打印 上一主题 下一主题

[已经解决] 【讨论】关于视野判定这种东西

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1323
在线时间
831 小时
注册时间
2007-12-25
帖子
1558
21
发表于 2012-1-6 23:30:05 | 只看该作者
Kimu 发表于 2012-1-6 22:02
@IamI
哎?我好像没说过我想要一个O(n)的,原来我想的是看看有没有比O(n^2)低的算法,现在发现好像不可能实现 ...

从来都是讲只枚举边上的线。
为什么我不会建议你去判断一个点是否已经被判断过了, 然后再运算呢?

因为运算量比一个if语句还要小。
精卫赤龙腾   
总是存在一种强大,去完成似乎不可能的事情.
无畏战乾程   
或是需要一种勇气,去挑战几乎不存在的胜利.
一味玄真魂     
这是拥有一种恒心,去化解根本没有解的困难.
烈卫开天径    
只是带着一种决心,去争取残存的最后的希望。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

追从自然的旅行者
奇特空·煦

梦石
0
星屑
107
在线时间
1387 小时
注册时间
2010-12-31
帖子
4944

开拓者贵宾

22
 楼主| 发表于 2012-1-7 00:10:20 | 只看该作者
本帖最后由 Kimu 于 2012-1-7 00:10 编辑
九夜神尊 发表于 2012-1-6 23:30
从来都是讲只枚举边上的线。
为什么我不会建议你去判断一个点是否已经被判断过了, 然后再运算呢?


正在写,刚才把一个简略的地图类写完了,主角移动也解决了,不早了,明天来晚上算法,看看时间效率

p.s.我对帧的时间及计算量效率不是很清楚
回复 支持 反对

使用道具 举报

Lv1.梦旅人

追从自然的旅行者
奇特空·煦

梦石
0
星屑
107
在线时间
1387 小时
注册时间
2010-12-31
帖子
4944

开拓者贵宾

23
 楼主| 发表于 2012-1-7 16:10:07 | 只看该作者
测试完毕,的确不会有任何卡,即使不优化视野调到10也不会有任何卡

工程很乱就不发了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

24
发表于 2012-5-28 14:00:46 | 只看该作者
魔塔样板直接采用事件+图片,只涉及到少量脚本但是视野范围有问题(方格范围,1*1、3*3、5*5、7*7···)

点评

这坟挖的  发表于 2012-5-28 22:05
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
25
发表于 2012-5-30 11:15:35 | 只看该作者
本帖最后由 viktor 于 2012-5-30 11:21 编辑

我更倾向于用17楼@禾西的办法,递推。
分四个方向, 一个格子的不透明度是相邻两个格子的平均数。墙的不透明度按照0算。然后当不透明度小于一个固定值(比如60)的时候,就认为他看不见了。

再加上修改Tilemap 给格子加上一个透明度,就能实现更加自然的Tilemap了
至于哪些是墙 哪些是地面 可以通过地图标记,方便地制定

像这个样子
红色的是墙(墙体显示出来,背后的东西不会显示),
黄色的是竖直墙(墙体和在其上方的墙体要显示出来,但是背后的东西不会显示)
绿色的是可以通行的地方
数字是透明度(亮度)

缺点是没法并行,只能一点点推过去

当然@kimu 直接按照直线计算似乎也不错 最近有时间的话希望能把两个都实现以下。
我想参考下楼主的脚本呢

评分

参与人数 1星屑 +100 收起 理由
Kimu + 100 这个思想是很好的

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

追从自然的旅行者
奇特空·煦

梦石
0
星屑
107
在线时间
1387 小时
注册时间
2010-12-31
帖子
4944

开拓者贵宾

26
 楼主| 发表于 2012-5-30 11:47:51 | 只看该作者
本帖最后由 Kimu 于 2012-5-30 11:48 编辑
viktor 发表于 2012-5-30 11:15
我更倾向于用17楼@禾西的办法,递推。
分四个方向, 一个格子的不透明度是相邻两个格子的平均数。墙的不透 ...


思想是很好的,但是还是存在不科学的地方,

不透明度下限的值不好取,比如说最靠左下角的那个"64"理论上是无法被猪脚看到的,但是却会显示.
而该点右上方的80乃至88也应该是被一个竖直墙挡住了而看不见,
所以这个方法还是要修改一下(我暂时没有什么思路)

理论上还是直线最靠谱,以距离判定不透明度,
或许我应该去看看war3的视野判定
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
27
发表于 2012-5-30 16:14:21 | 只看该作者
这个是自己凹的办法……果然不科学
不过效率上应该不差。我先熟悉下Tilemap这个类吧。

我也想看看War3的视野判定。求资料啊

点评

正在某小众we论坛询问  发表于 2012-5-30 22:30
效率这种东西.......如果地图很大而且一马平川绝对卡- =  发表于 2012-5-30 22:16
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 16:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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