有人能解释一下视线在2d中是如何工作的吗?这对我的2d实验真的很有帮助。工作中的实验是一个简单的二维模拟。玩家在世界上从一个地方移动到另一个地方,my world exactly looks like this。我成功地完成了角色从一个点到另一个点(A到G)的移动,我的目标是-当角色通过每个点时,它必须在离开到下一个点之前在该区域执行一些搜索。要实现我觉得路点比较好的解决方案,有没有人能帮我上this.Thanks!
编辑:玩家一进入房间/检查点,我就会带用户进入下一个场景like this
拾取的地方在画布上的一些地方,我的球员必须收集他们所有的,并离开区域-回到地图场景。
发布于 2011-03-31 06:28:18
我不理解你的段落,但为了回答你的问题(假设我们想知道在自上而下的游戏中,敌人是否能看到玩家)
我们通过计算(绝对值) angle between,敌人的视线矢量和vector spanning between the enemy and the player来实现这一点。如果它是0°,则敌人正面对玩家。如果是180°,敌人的视线从玩家身上移开。检查它是否小于30°,例如,给敌人60°的视锥(或<45°,给敌人90°的视锥)。
请注意,如果有许多墙,则检查与所有墙的碰撞可能会非常昂贵。将搜索范围缩小到少数几个对象称为剪枝,超出了此答案的范围(有关更多information),请参阅here
发布于 2011-03-31 06:25:34
视线可能是一种非常昂贵的算法。目标是确定一个对象是否存在于两个点之间(您可以说是眼睛和对象)。
为此,您必须获取所有潜在对象的列表( QuadTree可能对此很有用,比如http://en.wikipedia.org/wiki/Quadtree),并测试每个对象以查看它们是否与眼睛和对象之间的线相交。
你可能想研究一下寻路:http://en.wikipedia.org/wiki/Pathfinding
https://stackoverflow.com/questions/5493085
复制相似问题