首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

视线2d
EN

Stack Overflow用户
提问于 2011-03-31 06:12:21
回答 2查看 1.4K关注 0票数 2

有人能解释一下视线在2d中是如何工作的吗?这对我的2d实验真的很有帮助。工作中的实验是一个简单的二维模拟。玩家在世界上从一个地方移动到另一个地方,my world exactly looks like this。我成功地完成了角色从一个点到另一个点(A到G)的移动,我的目标是-当角色通过每个点时,它必须在离开到下一个点之前在该区域执行一些搜索。要实现我觉得路点比较好的解决方案,有没有人能帮我上this.Thanks!

编辑:玩家一进入房间/检查点,我就会带用户进入下一个场景like this

拾取的地方在画布上的一些地方,我的球员必须收集他们所有的,并离开区域-回到地图场景。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-31 06:28:18

我不理解你的段落,但为了回答你的问题(假设我们想知道在自上而下的游戏中,敌人是否能看到玩家)

我们通过计算(绝对值) angle between,敌人的视线矢量和vector spanning between the enemy and the player来实现这一点。如果它是0°,则敌人正面对玩家。如果是180°,敌人的视线从玩家身上移开。检查它是否小于30°,例如,给敌人60°的视锥(或<45°,给敌人90°的视锥)。

  1. Check表示在敌人和玩家之间没有任何东西。这归结为检查a collision between墙(或其他任何东西)和跨越敌人和玩家的线段。

请注意,如果有许多墙,则检查与所有墙的碰撞可能会非常昂贵。将搜索范围缩小到少数几个对象称为剪枝,超出了此答案的范围(有关更多information),请参阅here

票数 7
EN

Stack Overflow用户

发布于 2011-03-31 06:25:34

视线可能是一种非常昂贵的算法。目标是确定一个对象是否存在于两个点之间(您可以说是眼睛和对象)。

为此,您必须获取所有潜在对象的列表( QuadTree可能对此很有用,比如http://en.wikipedia.org/wiki/Quadtree),并测试每个对象以查看它们是否与眼睛和对象之间的线相交。

你可能想研究一下寻路:http://en.wikipedia.org/wiki/Pathfinding

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5493085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档